@liveblocks/react-tiptap 3.18.0-rc1 → 3.18.0-rc2
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.
|
@@ -138,7 +138,7 @@ const MentionsList = react.forwardRef(
|
|
|
138
138
|
onClick: handleClick(index),
|
|
139
139
|
children: mention.kind === "user" ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
140
140
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
141
|
-
_private$1.
|
|
141
|
+
_private$1.UserAvatar,
|
|
142
142
|
{
|
|
143
143
|
userId: mention.id,
|
|
144
144
|
className: "lb-tiptap-mention-suggestion-avatar"
|
|
@@ -153,7 +153,7 @@ const MentionsList = react.forwardRef(
|
|
|
153
153
|
)
|
|
154
154
|
] }) : mention.kind === "group" ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
155
155
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
156
|
-
_private$1.
|
|
156
|
+
_private$1.GroupAvatar,
|
|
157
157
|
{
|
|
158
158
|
groupId: mention.id,
|
|
159
159
|
className: "lb-tiptap-mention-suggestion-avatar",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MentionsList.cjs","sources":["../../src/mentions/MentionsList.tsx"],"sourcesContent":["import {\n autoUpdate,\n flip,\n hide,\n limitShift,\n offset,\n shift,\n size,\n useFloating,\n} from \"@floating-ui/react-dom\";\nimport { assertNever, createInboxNotificationId } from \"@liveblocks/core\";\nimport { useRoom } from \"@liveblocks/react\";\nimport {\n useLayoutEffect,\n useMentionSuggestions,\n} from \"@liveblocks/react/_private\";\nimport {\n Avatar,\n Group,\n GroupDescription,\n User,\n UsersIcon,\n} from \"@liveblocks/react-ui/_private\";\nimport type { HTMLAttributes, MouseEvent } from \"react\";\nimport { forwardRef, useEffect, useImperativeHandle, useState } from \"react\";\n\nimport type { TiptapMentionData } from \"../types\";\n\nexport const SUGGESTIONS_COLLISION_PADDING = 10;\n\nexport interface MentionsListProps extends HTMLAttributes<HTMLDivElement> {\n query: string;\n command: (otps: TiptapMentionData) => void;\n clientRect: () => DOMRect;\n hide: boolean;\n}\n\nexport type MentionsListHandle = {\n onKeyDown: ({ event }: { event: KeyboardEvent }) => boolean;\n};\n\nexport const MentionsList = forwardRef<MentionsListHandle, MentionsListProps>(\n (props, ref) => {\n const [selectedIndex, setSelectedIndex] = useState(0);\n const room = useRoom();\n const suggestions = useMentionSuggestions(room.id, props.query);\n const { onMouseEnter, onClick } = props;\n const {\n refs: { setReference, setFloating },\n strategy,\n x,\n y,\n } = useFloating({\n strategy: \"fixed\",\n placement: \"top-start\",\n middleware: [\n flip({ padding: SUGGESTIONS_COLLISION_PADDING, crossAxis: false }),\n offset(10),\n hide({ padding: SUGGESTIONS_COLLISION_PADDING }),\n shift({\n padding: SUGGESTIONS_COLLISION_PADDING,\n limiter: limitShift(),\n }),\n size({ padding: SUGGESTIONS_COLLISION_PADDING }),\n ],\n whileElementsMounted: (...args) => {\n return autoUpdate(...args, {\n animationFrame: true,\n });\n },\n });\n\n useLayoutEffect(() => {\n setReference({\n getBoundingClientRect: props.clientRect,\n });\n }, [setReference, props.clientRect]);\n\n const selectItem = (index: number) => {\n const mention = (suggestions ?? [])[index];\n\n if (!mention) {\n return;\n }\n\n const notificationId = createInboxNotificationId();\n\n switch (mention.kind) {\n case \"user\":\n props.command({\n kind: \"user\",\n id: mention.id,\n notificationId,\n });\n break;\n\n case \"group\":\n props.command({\n kind: \"group\",\n id: mention.id,\n userIds: mention.userIds,\n notificationId,\n });\n break;\n\n default:\n return assertNever(mention, \"Unhandled mention kind\");\n }\n };\n\n const upHandler = () => {\n setSelectedIndex(\n (selectedIndex + (suggestions?.length ?? 0) - 1) %\n (suggestions?.length ?? 0)\n );\n };\n\n const downHandler = () => {\n setSelectedIndex((selectedIndex + 1) % (suggestions?.length ?? 0));\n };\n\n const enterHandler = () => {\n selectItem(selectedIndex);\n };\n\n useEffect(() => setSelectedIndex(0), [suggestions]);\n\n useImperativeHandle(ref, () => ({\n onKeyDown: ({ event }: { event: KeyboardEvent }) => {\n if (event.key === \"ArrowUp\") {\n upHandler();\n return true;\n }\n\n if (event.key === \"ArrowDown\") {\n downHandler();\n return true;\n }\n\n if (event.key === \"Enter\") {\n enterHandler();\n return true;\n }\n\n return false;\n },\n }));\n\n const handleClick =\n (index: number) => (event: MouseEvent<HTMLDivElement>) => {\n onClick?.(event);\n\n if (event.isDefaultPrevented()) return;\n selectItem(index);\n };\n const handleMouseEnter =\n (index: number) => (event: MouseEvent<HTMLDivElement>) => {\n onMouseEnter?.(event);\n\n if (event.isDefaultPrevented()) return;\n\n setSelectedIndex(index);\n };\n\n if (suggestions === undefined || suggestions.length === 0) {\n return null;\n }\n\n return (\n <div\n className=\"lb-root lb-portal lb-elevation lb-tiptap-suggestions lb-tiptap-mention-suggestions\"\n ref={setFloating}\n style={{\n position: strategy,\n top: 0,\n left: 0,\n transform: `translate3d(${Math.round(x)}px, ${Math.round(y)}px, 0)`,\n minWidth: \"max-content\",\n display: props.hide ? \"none\" : \"block\",\n }}\n >\n <div className=\"lb-tiptap-suggestions-list lb-tiptap-mention-suggestions-list\">\n {suggestions.map((mention, index) => {\n return (\n <div\n className=\"lb-tiptap-suggestions-list-item lb-tiptap-mention-suggestion\"\n key={index}\n role=\"option\"\n data-highlighted={index === selectedIndex || undefined}\n onMouseEnter={handleMouseEnter(index)}\n onClick={handleClick(index)}\n >\n {mention.kind === \"user\" ? (\n <>\n <Avatar\n userId={mention.id}\n className=\"lb-tiptap-mention-suggestion-avatar\"\n />\n <User\n userId={mention.id}\n className=\"lb-tiptap-mention-suggestion-user\"\n />\n </>\n ) : mention.kind === \"group\" ? (\n <>\n <Avatar\n groupId={mention.id}\n className=\"lb-tiptap-mention-suggestion-avatar\"\n icon={<UsersIcon />}\n />\n <Group\n groupId={mention.id}\n className=\"lb-tiptap-mention-suggestion-group\"\n >\n <GroupDescription\n groupId={mention.id}\n className=\"lb-tiptap-mention-suggestion-group-description\"\n />\n </Group>\n </>\n ) : (\n assertNever(mention, \"Unhandled mention kind\")\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n }\n);\n"],"names":["forwardRef","useState","useRoom","useMentionSuggestions","useFloating","flip","offset","hide","shift","limitShift","size","autoUpdate","useLayoutEffect","createInboxNotificationId","assertNever","useEffect","useImperativeHandle","jsx","jsxs","Fragment","Avatar","User","UsersIcon","Group","GroupDescription"],"mappings":";;;;;;;;;;AA4BO,MAAM,6BAAgC,GAAA,GAAA;AAatC,MAAM,YAAe,GAAAA,gBAAA;AAAA,EAC1B,CAAC,OAAO,GAAQ,KAAA;AACd,IAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIC,eAAS,CAAC,CAAA,CAAA;AACpD,IAAA,MAAM,OAAOC,eAAQ,EAAA,CAAA;AACrB,IAAA,MAAM,WAAc,GAAAC,8BAAA,CAAsB,IAAK,CAAA,EAAA,EAAI,MAAM,KAAK,CAAA,CAAA;AAC9D,IAAM,MAAA,EAAE,YAAc,EAAA,OAAA,EAAY,GAAA,KAAA,CAAA;AAClC,IAAM,MAAA;AAAA,MACJ,IAAA,EAAM,EAAE,YAAA,EAAc,WAAY,EAAA;AAAA,MAClC,QAAA;AAAA,MACA,CAAA;AAAA,MACA,CAAA;AAAA,QACEC,oBAAY,CAAA;AAAA,MACd,QAAU,EAAA,OAAA;AAAA,MACV,SAAW,EAAA,WAAA;AAAA,MACX,UAAY,EAAA;AAAA,QACVC,cAAK,EAAE,OAAA,EAAS,6BAA+B,EAAA,SAAA,EAAW,OAAO,CAAA;AAAA,QACjEC,gBAAO,EAAE,CAAA;AAAA,QACTC,aAAK,CAAA,EAAE,OAAS,EAAA,6BAAA,EAA+B,CAAA;AAAA,QAC/CC,cAAM,CAAA;AAAA,UACJ,OAAS,EAAA,6BAAA;AAAA,UACT,SAASC,mBAAW,EAAA;AAAA,SACrB,CAAA;AAAA,QACDC,aAAK,CAAA,EAAE,OAAS,EAAA,6BAAA,EAA+B,CAAA;AAAA,OACjD;AAAA,MACA,oBAAA,EAAsB,IAAI,IAAS,KAAA;AACjC,QAAO,OAAAC,mBAAA,CAAW,GAAG,IAAM,EAAA;AAAA,UACzB,cAAgB,EAAA,IAAA;AAAA,SACjB,CAAA,CAAA;AAAA,OACH;AAAA,KACD,CAAA,CAAA;AAED,IAAAC,wBAAA,CAAgB,MAAM;AACpB,MAAa,YAAA,CAAA;AAAA,QACX,uBAAuB,KAAM,CAAA,UAAA;AAAA,OAC9B,CAAA,CAAA;AAAA,KACA,EAAA,CAAC,YAAc,EAAA,KAAA,CAAM,UAAU,CAAC,CAAA,CAAA;AAEnC,IAAM,MAAA,UAAA,GAAa,CAAC,KAAkB,KAAA;AACpC,MAAA,MAAM,OAAW,GAAA,CAAA,WAAA,IAAe,EAAC,EAAG,KAAK,CAAA,CAAA;AAEzC,MAAA,IAAI,CAAC,OAAS,EAAA;AACZ,QAAA,OAAA;AAAA,OACF;AAEA,MAAA,MAAM,iBAAiBC,8BAA0B,EAAA,CAAA;AAEjD,MAAA,QAAQ,QAAQ,IAAM;AAAA,QACpB,KAAK,MAAA;AACH,UAAA,KAAA,CAAM,OAAQ,CAAA;AAAA,YACZ,IAAM,EAAA,MAAA;AAAA,YACN,IAAI,OAAQ,CAAA,EAAA;AAAA,YACZ,cAAA;AAAA,WACD,CAAA,CAAA;AACD,UAAA,MAAA;AAAA,QAEF,KAAK,OAAA;AACH,UAAA,KAAA,CAAM,OAAQ,CAAA;AAAA,YACZ,IAAM,EAAA,OAAA;AAAA,YACN,IAAI,OAAQ,CAAA,EAAA;AAAA,YACZ,SAAS,OAAQ,CAAA,OAAA;AAAA,YACjB,cAAA;AAAA,WACD,CAAA,CAAA;AACD,UAAA,MAAA;AAAA,QAEF;AACE,UAAO,OAAAC,gBAAA,CAAY,SAAS,wBAAwB,CAAA,CAAA;AAAA,OACxD;AAAA,KACF,CAAA;AAEA,IAAA,MAAM,YAAY,MAAM;AACtB,MAAA,gBAAA;AAAA,QAAA,CACG,iBAAiB,WAAa,EAAA,MAAA,IAAU,CAAK,CAAA,GAAA,CAAA,KAC3C,aAAa,MAAU,IAAA,CAAA,CAAA;AAAA,OAC5B,CAAA;AAAA,KACF,CAAA;AAEA,IAAA,MAAM,cAAc,MAAM;AACxB,MAAA,gBAAA,CAAA,CAAkB,aAAgB,GAAA,CAAA,KAAM,WAAa,EAAA,MAAA,IAAU,CAAE,CAAA,CAAA,CAAA;AAAA,KACnE,CAAA;AAEA,IAAA,MAAM,eAAe,MAAM;AACzB,MAAA,UAAA,CAAW,aAAa,CAAA,CAAA;AAAA,KAC1B,CAAA;AAEA,IAAAC,eAAA,CAAU,MAAM,gBAAiB,CAAA,CAAC,CAAG,EAAA,CAAC,WAAW,CAAC,CAAA,CAAA;AAElD,IAAAC,yBAAA,CAAoB,KAAK,OAAO;AAAA,MAC9B,SAAW,EAAA,CAAC,EAAE,KAAA,EAAsC,KAAA;AAClD,QAAI,IAAA,KAAA,CAAM,QAAQ,SAAW,EAAA;AAC3B,UAAU,SAAA,EAAA,CAAA;AACV,UAAO,OAAA,IAAA,CAAA;AAAA,SACT;AAEA,QAAI,IAAA,KAAA,CAAM,QAAQ,WAAa,EAAA;AAC7B,UAAY,WAAA,EAAA,CAAA;AACZ,UAAO,OAAA,IAAA,CAAA;AAAA,SACT;AAEA,QAAI,IAAA,KAAA,CAAM,QAAQ,OAAS,EAAA;AACzB,UAAa,YAAA,EAAA,CAAA;AACb,UAAO,OAAA,IAAA,CAAA;AAAA,SACT;AAEA,QAAO,OAAA,KAAA,CAAA;AAAA,OACT;AAAA,KACA,CAAA,CAAA,CAAA;AAEF,IAAA,MAAM,WACJ,GAAA,CAAC,KAAkB,KAAA,CAAC,KAAsC,KAAA;AACxD,MAAA,OAAA,GAAU,KAAK,CAAA,CAAA;AAEf,MAAA,IAAI,MAAM,kBAAmB,EAAA;AAAG,QAAA,OAAA;AAChC,MAAA,UAAA,CAAW,KAAK,CAAA,CAAA;AAAA,KAClB,CAAA;AACF,IAAA,MAAM,gBACJ,GAAA,CAAC,KAAkB,KAAA,CAAC,KAAsC,KAAA;AACxD,MAAA,YAAA,GAAe,KAAK,CAAA,CAAA;AAEpB,MAAA,IAAI,MAAM,kBAAmB,EAAA;AAAG,QAAA,OAAA;AAEhC,MAAA,gBAAA,CAAiB,KAAK,CAAA,CAAA;AAAA,KACxB,CAAA;AAEF,IAAA,IAAI,WAAgB,KAAA,KAAA,CAAA,IAAa,WAAY,CAAA,MAAA,KAAW,CAAG,EAAA;AACzD,MAAO,OAAA,IAAA,CAAA;AAAA,KACT;AAEA,IACE,uBAAAC,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAU,EAAA,oFAAA;AAAA,QACV,GAAK,EAAA,WAAA;AAAA,QACL,KAAO,EAAA;AAAA,UACL,QAAU,EAAA,QAAA;AAAA,UACV,GAAK,EAAA,CAAA;AAAA,UACL,IAAM,EAAA,CAAA;AAAA,UACN,SAAA,EAAW,CAAe,YAAA,EAAA,IAAA,CAAK,KAAM,CAAA,CAAC,CAAC,CAAO,IAAA,EAAA,IAAA,CAAK,KAAM,CAAA,CAAC,CAAC,CAAA,MAAA,CAAA;AAAA,UAC3D,QAAU,EAAA,aAAA;AAAA,UACV,OAAA,EAAS,KAAM,CAAA,IAAA,GAAO,MAAS,GAAA,OAAA;AAAA,SACjC;AAAA,QAEA,QAAA,kBAAAA,cAAA,CAAC,SAAI,SAAU,EAAA,+DAAA,EACZ,sBAAY,GAAI,CAAA,CAAC,SAAS,KAAU,KAAA;AACnC,UACE,uBAAAA,cAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAU,EAAA,8DAAA;AAAA,cAEV,IAAK,EAAA,QAAA;AAAA,cACL,kBAAA,EAAkB,UAAU,aAAiB,IAAA,KAAA,CAAA;AAAA,cAC7C,YAAA,EAAc,iBAAiB,KAAK,CAAA;AAAA,cACpC,OAAA,EAAS,YAAY,KAAK,CAAA;AAAA,cAEzB,QAAA,EAAA,OAAA,CAAQ,IAAS,KAAA,MAAA,mBAEdC,eAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAA;AAAA,gCAAAF,cAAA;AAAA,kBAACG,iBAAA;AAAA,kBAAA;AAAA,oBACC,QAAQ,OAAQ,CAAA,EAAA;AAAA,oBAChB,SAAU,EAAA,qCAAA;AAAA,mBAAA;AAAA,iBACZ;AAAA,gCACAH,cAAA;AAAA,kBAACI,eAAA;AAAA,kBAAA;AAAA,oBACC,QAAQ,OAAQ,CAAA,EAAA;AAAA,oBAChB,SAAU,EAAA,mCAAA;AAAA,mBAAA;AAAA,iBACZ;AAAA,eAAA,EACF,CACE,GAAA,OAAA,CAAQ,IAAS,KAAA,OAAA,mBAEjBH,eAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAA;AAAA,gCAAAF,cAAA;AAAA,kBAACG,iBAAA;AAAA,kBAAA;AAAA,oBACC,SAAS,OAAQ,CAAA,EAAA;AAAA,oBACjB,SAAU,EAAA,qCAAA;AAAA,oBACV,IAAA,iCAAOE,oBAAU,EAAA,EAAA,CAAA;AAAA,mBAAA;AAAA,iBACnB;AAAA,gCACAL,cAAA;AAAA,kBAACM,gBAAA;AAAA,kBAAA;AAAA,oBACC,SAAS,OAAQ,CAAA,EAAA;AAAA,oBACjB,SAAU,EAAA,oCAAA;AAAA,oBAEV,QAAA,kBAAAN,cAAA;AAAA,sBAACO,2BAAA;AAAA,sBAAA;AAAA,wBACC,SAAS,OAAQ,CAAA,EAAA;AAAA,wBACjB,SAAU,EAAA,gDAAA;AAAA,uBAAA;AAAA,qBACZ;AAAA,mBAAA;AAAA,iBACF;AAAA,eACF,EAAA,CAAA,GAEAV,gBAAY,CAAA,OAAA,EAAS,wBAAwB,CAAA;AAAA,aAAA;AAAA,YAnC1C,KAAA;AAAA,WAqCP,CAAA;AAAA,SAEH,CACH,EAAA,CAAA;AAAA,OAAA;AAAA,KACF,CAAA;AAAA,GAEJ;AACF;;;;;"}
|
|
1
|
+
{"version":3,"file":"MentionsList.cjs","sources":["../../src/mentions/MentionsList.tsx"],"sourcesContent":["import {\n autoUpdate,\n flip,\n hide,\n limitShift,\n offset,\n shift,\n size,\n useFloating,\n} from \"@floating-ui/react-dom\";\nimport { assertNever, createInboxNotificationId } from \"@liveblocks/core\";\nimport { useRoom } from \"@liveblocks/react\";\nimport {\n useLayoutEffect,\n useMentionSuggestions,\n} from \"@liveblocks/react/_private\";\nimport {\n Group,\n GroupAvatar,\n GroupDescription,\n User,\n UserAvatar,\n UsersIcon,\n} from \"@liveblocks/react-ui/_private\";\nimport type { HTMLAttributes, MouseEvent } from \"react\";\nimport { forwardRef, useEffect, useImperativeHandle, useState } from \"react\";\n\nimport type { TiptapMentionData } from \"../types\";\n\nexport const SUGGESTIONS_COLLISION_PADDING = 10;\n\nexport interface MentionsListProps extends HTMLAttributes<HTMLDivElement> {\n query: string;\n command: (otps: TiptapMentionData) => void;\n clientRect: () => DOMRect;\n hide: boolean;\n}\n\nexport type MentionsListHandle = {\n onKeyDown: ({ event }: { event: KeyboardEvent }) => boolean;\n};\n\nexport const MentionsList = forwardRef<MentionsListHandle, MentionsListProps>(\n (props, ref) => {\n const [selectedIndex, setSelectedIndex] = useState(0);\n const room = useRoom();\n const suggestions = useMentionSuggestions(room.id, props.query);\n const { onMouseEnter, onClick } = props;\n const {\n refs: { setReference, setFloating },\n strategy,\n x,\n y,\n } = useFloating({\n strategy: \"fixed\",\n placement: \"top-start\",\n middleware: [\n flip({ padding: SUGGESTIONS_COLLISION_PADDING, crossAxis: false }),\n offset(10),\n hide({ padding: SUGGESTIONS_COLLISION_PADDING }),\n shift({\n padding: SUGGESTIONS_COLLISION_PADDING,\n limiter: limitShift(),\n }),\n size({ padding: SUGGESTIONS_COLLISION_PADDING }),\n ],\n whileElementsMounted: (...args) => {\n return autoUpdate(...args, {\n animationFrame: true,\n });\n },\n });\n\n useLayoutEffect(() => {\n setReference({\n getBoundingClientRect: props.clientRect,\n });\n }, [setReference, props.clientRect]);\n\n const selectItem = (index: number) => {\n const mention = (suggestions ?? [])[index];\n\n if (!mention) {\n return;\n }\n\n const notificationId = createInboxNotificationId();\n\n switch (mention.kind) {\n case \"user\":\n props.command({\n kind: \"user\",\n id: mention.id,\n notificationId,\n });\n break;\n\n case \"group\":\n props.command({\n kind: \"group\",\n id: mention.id,\n userIds: mention.userIds,\n notificationId,\n });\n break;\n\n default:\n return assertNever(mention, \"Unhandled mention kind\");\n }\n };\n\n const upHandler = () => {\n setSelectedIndex(\n (selectedIndex + (suggestions?.length ?? 0) - 1) %\n (suggestions?.length ?? 0)\n );\n };\n\n const downHandler = () => {\n setSelectedIndex((selectedIndex + 1) % (suggestions?.length ?? 0));\n };\n\n const enterHandler = () => {\n selectItem(selectedIndex);\n };\n\n useEffect(() => setSelectedIndex(0), [suggestions]);\n\n useImperativeHandle(ref, () => ({\n onKeyDown: ({ event }: { event: KeyboardEvent }) => {\n if (event.key === \"ArrowUp\") {\n upHandler();\n return true;\n }\n\n if (event.key === \"ArrowDown\") {\n downHandler();\n return true;\n }\n\n if (event.key === \"Enter\") {\n enterHandler();\n return true;\n }\n\n return false;\n },\n }));\n\n const handleClick =\n (index: number) => (event: MouseEvent<HTMLDivElement>) => {\n onClick?.(event);\n\n if (event.isDefaultPrevented()) return;\n selectItem(index);\n };\n const handleMouseEnter =\n (index: number) => (event: MouseEvent<HTMLDivElement>) => {\n onMouseEnter?.(event);\n\n if (event.isDefaultPrevented()) return;\n\n setSelectedIndex(index);\n };\n\n if (suggestions === undefined || suggestions.length === 0) {\n return null;\n }\n\n return (\n <div\n className=\"lb-root lb-portal lb-elevation lb-tiptap-suggestions lb-tiptap-mention-suggestions\"\n ref={setFloating}\n style={{\n position: strategy,\n top: 0,\n left: 0,\n transform: `translate3d(${Math.round(x)}px, ${Math.round(y)}px, 0)`,\n minWidth: \"max-content\",\n display: props.hide ? \"none\" : \"block\",\n }}\n >\n <div className=\"lb-tiptap-suggestions-list lb-tiptap-mention-suggestions-list\">\n {suggestions.map((mention, index) => {\n return (\n <div\n className=\"lb-tiptap-suggestions-list-item lb-tiptap-mention-suggestion\"\n key={index}\n role=\"option\"\n data-highlighted={index === selectedIndex || undefined}\n onMouseEnter={handleMouseEnter(index)}\n onClick={handleClick(index)}\n >\n {mention.kind === \"user\" ? (\n <>\n <UserAvatar\n userId={mention.id}\n className=\"lb-tiptap-mention-suggestion-avatar\"\n />\n <User\n userId={mention.id}\n className=\"lb-tiptap-mention-suggestion-user\"\n />\n </>\n ) : mention.kind === \"group\" ? (\n <>\n <GroupAvatar\n groupId={mention.id}\n className=\"lb-tiptap-mention-suggestion-avatar\"\n icon={<UsersIcon />}\n />\n <Group\n groupId={mention.id}\n className=\"lb-tiptap-mention-suggestion-group\"\n >\n <GroupDescription\n groupId={mention.id}\n className=\"lb-tiptap-mention-suggestion-group-description\"\n />\n </Group>\n </>\n ) : (\n assertNever(mention, \"Unhandled mention kind\")\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n }\n);\n"],"names":["forwardRef","useState","useRoom","useMentionSuggestions","useFloating","flip","offset","hide","shift","limitShift","size","autoUpdate","useLayoutEffect","createInboxNotificationId","assertNever","useEffect","useImperativeHandle","jsx","jsxs","Fragment","UserAvatar","User","GroupAvatar","UsersIcon","Group","GroupDescription"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { useFloating, flip, offset, hide, shift, limitShift, size, autoUpdate }
|
|
|
3
3
|
import { createInboxNotificationId, assertNever } from '@liveblocks/core';
|
|
4
4
|
import { useRoom } from '@liveblocks/react';
|
|
5
5
|
import { useMentionSuggestions, useLayoutEffect } from '@liveblocks/react/_private';
|
|
6
|
-
import {
|
|
6
|
+
import { UserAvatar, User, GroupAvatar, UsersIcon, Group, GroupDescription } from '@liveblocks/react-ui/_private';
|
|
7
7
|
import { forwardRef, useState, useEffect, useImperativeHandle } from 'react';
|
|
8
8
|
|
|
9
9
|
const SUGGESTIONS_COLLISION_PADDING = 10;
|
|
@@ -136,7 +136,7 @@ const MentionsList = forwardRef(
|
|
|
136
136
|
onClick: handleClick(index),
|
|
137
137
|
children: mention.kind === "user" ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
138
138
|
/* @__PURE__ */ jsx(
|
|
139
|
-
|
|
139
|
+
UserAvatar,
|
|
140
140
|
{
|
|
141
141
|
userId: mention.id,
|
|
142
142
|
className: "lb-tiptap-mention-suggestion-avatar"
|
|
@@ -151,7 +151,7 @@ const MentionsList = forwardRef(
|
|
|
151
151
|
)
|
|
152
152
|
] }) : mention.kind === "group" ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
153
153
|
/* @__PURE__ */ jsx(
|
|
154
|
-
|
|
154
|
+
GroupAvatar,
|
|
155
155
|
{
|
|
156
156
|
groupId: mention.id,
|
|
157
157
|
className: "lb-tiptap-mention-suggestion-avatar",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MentionsList.js","sources":["../../src/mentions/MentionsList.tsx"],"sourcesContent":["import {\n autoUpdate,\n flip,\n hide,\n limitShift,\n offset,\n shift,\n size,\n useFloating,\n} from \"@floating-ui/react-dom\";\nimport { assertNever, createInboxNotificationId } from \"@liveblocks/core\";\nimport { useRoom } from \"@liveblocks/react\";\nimport {\n useLayoutEffect,\n useMentionSuggestions,\n} from \"@liveblocks/react/_private\";\nimport {\n Avatar,\n Group,\n GroupDescription,\n User,\n UsersIcon,\n} from \"@liveblocks/react-ui/_private\";\nimport type { HTMLAttributes, MouseEvent } from \"react\";\nimport { forwardRef, useEffect, useImperativeHandle, useState } from \"react\";\n\nimport type { TiptapMentionData } from \"../types\";\n\nexport const SUGGESTIONS_COLLISION_PADDING = 10;\n\nexport interface MentionsListProps extends HTMLAttributes<HTMLDivElement> {\n query: string;\n command: (otps: TiptapMentionData) => void;\n clientRect: () => DOMRect;\n hide: boolean;\n}\n\nexport type MentionsListHandle = {\n onKeyDown: ({ event }: { event: KeyboardEvent }) => boolean;\n};\n\nexport const MentionsList = forwardRef<MentionsListHandle, MentionsListProps>(\n (props, ref) => {\n const [selectedIndex, setSelectedIndex] = useState(0);\n const room = useRoom();\n const suggestions = useMentionSuggestions(room.id, props.query);\n const { onMouseEnter, onClick } = props;\n const {\n refs: { setReference, setFloating },\n strategy,\n x,\n y,\n } = useFloating({\n strategy: \"fixed\",\n placement: \"top-start\",\n middleware: [\n flip({ padding: SUGGESTIONS_COLLISION_PADDING, crossAxis: false }),\n offset(10),\n hide({ padding: SUGGESTIONS_COLLISION_PADDING }),\n shift({\n padding: SUGGESTIONS_COLLISION_PADDING,\n limiter: limitShift(),\n }),\n size({ padding: SUGGESTIONS_COLLISION_PADDING }),\n ],\n whileElementsMounted: (...args) => {\n return autoUpdate(...args, {\n animationFrame: true,\n });\n },\n });\n\n useLayoutEffect(() => {\n setReference({\n getBoundingClientRect: props.clientRect,\n });\n }, [setReference, props.clientRect]);\n\n const selectItem = (index: number) => {\n const mention = (suggestions ?? [])[index];\n\n if (!mention) {\n return;\n }\n\n const notificationId = createInboxNotificationId();\n\n switch (mention.kind) {\n case \"user\":\n props.command({\n kind: \"user\",\n id: mention.id,\n notificationId,\n });\n break;\n\n case \"group\":\n props.command({\n kind: \"group\",\n id: mention.id,\n userIds: mention.userIds,\n notificationId,\n });\n break;\n\n default:\n return assertNever(mention, \"Unhandled mention kind\");\n }\n };\n\n const upHandler = () => {\n setSelectedIndex(\n (selectedIndex + (suggestions?.length ?? 0) - 1) %\n (suggestions?.length ?? 0)\n );\n };\n\n const downHandler = () => {\n setSelectedIndex((selectedIndex + 1) % (suggestions?.length ?? 0));\n };\n\n const enterHandler = () => {\n selectItem(selectedIndex);\n };\n\n useEffect(() => setSelectedIndex(0), [suggestions]);\n\n useImperativeHandle(ref, () => ({\n onKeyDown: ({ event }: { event: KeyboardEvent }) => {\n if (event.key === \"ArrowUp\") {\n upHandler();\n return true;\n }\n\n if (event.key === \"ArrowDown\") {\n downHandler();\n return true;\n }\n\n if (event.key === \"Enter\") {\n enterHandler();\n return true;\n }\n\n return false;\n },\n }));\n\n const handleClick =\n (index: number) => (event: MouseEvent<HTMLDivElement>) => {\n onClick?.(event);\n\n if (event.isDefaultPrevented()) return;\n selectItem(index);\n };\n const handleMouseEnter =\n (index: number) => (event: MouseEvent<HTMLDivElement>) => {\n onMouseEnter?.(event);\n\n if (event.isDefaultPrevented()) return;\n\n setSelectedIndex(index);\n };\n\n if (suggestions === undefined || suggestions.length === 0) {\n return null;\n }\n\n return (\n <div\n className=\"lb-root lb-portal lb-elevation lb-tiptap-suggestions lb-tiptap-mention-suggestions\"\n ref={setFloating}\n style={{\n position: strategy,\n top: 0,\n left: 0,\n transform: `translate3d(${Math.round(x)}px, ${Math.round(y)}px, 0)`,\n minWidth: \"max-content\",\n display: props.hide ? \"none\" : \"block\",\n }}\n >\n <div className=\"lb-tiptap-suggestions-list lb-tiptap-mention-suggestions-list\">\n {suggestions.map((mention, index) => {\n return (\n <div\n className=\"lb-tiptap-suggestions-list-item lb-tiptap-mention-suggestion\"\n key={index}\n role=\"option\"\n data-highlighted={index === selectedIndex || undefined}\n onMouseEnter={handleMouseEnter(index)}\n onClick={handleClick(index)}\n >\n {mention.kind === \"user\" ? (\n <>\n <Avatar\n userId={mention.id}\n className=\"lb-tiptap-mention-suggestion-avatar\"\n />\n <User\n userId={mention.id}\n className=\"lb-tiptap-mention-suggestion-user\"\n />\n </>\n ) : mention.kind === \"group\" ? (\n <>\n <Avatar\n groupId={mention.id}\n className=\"lb-tiptap-mention-suggestion-avatar\"\n icon={<UsersIcon />}\n />\n <Group\n groupId={mention.id}\n className=\"lb-tiptap-mention-suggestion-group\"\n >\n <GroupDescription\n groupId={mention.id}\n className=\"lb-tiptap-mention-suggestion-group-description\"\n />\n </Group>\n </>\n ) : (\n assertNever(mention, \"Unhandled mention kind\")\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n }\n);\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MentionsList.js","sources":["../../src/mentions/MentionsList.tsx"],"sourcesContent":["import {\n autoUpdate,\n flip,\n hide,\n limitShift,\n offset,\n shift,\n size,\n useFloating,\n} from \"@floating-ui/react-dom\";\nimport { assertNever, createInboxNotificationId } from \"@liveblocks/core\";\nimport { useRoom } from \"@liveblocks/react\";\nimport {\n useLayoutEffect,\n useMentionSuggestions,\n} from \"@liveblocks/react/_private\";\nimport {\n Group,\n GroupAvatar,\n GroupDescription,\n User,\n UserAvatar,\n UsersIcon,\n} from \"@liveblocks/react-ui/_private\";\nimport type { HTMLAttributes, MouseEvent } from \"react\";\nimport { forwardRef, useEffect, useImperativeHandle, useState } from \"react\";\n\nimport type { TiptapMentionData } from \"../types\";\n\nexport const SUGGESTIONS_COLLISION_PADDING = 10;\n\nexport interface MentionsListProps extends HTMLAttributes<HTMLDivElement> {\n query: string;\n command: (otps: TiptapMentionData) => void;\n clientRect: () => DOMRect;\n hide: boolean;\n}\n\nexport type MentionsListHandle = {\n onKeyDown: ({ event }: { event: KeyboardEvent }) => boolean;\n};\n\nexport const MentionsList = forwardRef<MentionsListHandle, MentionsListProps>(\n (props, ref) => {\n const [selectedIndex, setSelectedIndex] = useState(0);\n const room = useRoom();\n const suggestions = useMentionSuggestions(room.id, props.query);\n const { onMouseEnter, onClick } = props;\n const {\n refs: { setReference, setFloating },\n strategy,\n x,\n y,\n } = useFloating({\n strategy: \"fixed\",\n placement: \"top-start\",\n middleware: [\n flip({ padding: SUGGESTIONS_COLLISION_PADDING, crossAxis: false }),\n offset(10),\n hide({ padding: SUGGESTIONS_COLLISION_PADDING }),\n shift({\n padding: SUGGESTIONS_COLLISION_PADDING,\n limiter: limitShift(),\n }),\n size({ padding: SUGGESTIONS_COLLISION_PADDING }),\n ],\n whileElementsMounted: (...args) => {\n return autoUpdate(...args, {\n animationFrame: true,\n });\n },\n });\n\n useLayoutEffect(() => {\n setReference({\n getBoundingClientRect: props.clientRect,\n });\n }, [setReference, props.clientRect]);\n\n const selectItem = (index: number) => {\n const mention = (suggestions ?? [])[index];\n\n if (!mention) {\n return;\n }\n\n const notificationId = createInboxNotificationId();\n\n switch (mention.kind) {\n case \"user\":\n props.command({\n kind: \"user\",\n id: mention.id,\n notificationId,\n });\n break;\n\n case \"group\":\n props.command({\n kind: \"group\",\n id: mention.id,\n userIds: mention.userIds,\n notificationId,\n });\n break;\n\n default:\n return assertNever(mention, \"Unhandled mention kind\");\n }\n };\n\n const upHandler = () => {\n setSelectedIndex(\n (selectedIndex + (suggestions?.length ?? 0) - 1) %\n (suggestions?.length ?? 0)\n );\n };\n\n const downHandler = () => {\n setSelectedIndex((selectedIndex + 1) % (suggestions?.length ?? 0));\n };\n\n const enterHandler = () => {\n selectItem(selectedIndex);\n };\n\n useEffect(() => setSelectedIndex(0), [suggestions]);\n\n useImperativeHandle(ref, () => ({\n onKeyDown: ({ event }: { event: KeyboardEvent }) => {\n if (event.key === \"ArrowUp\") {\n upHandler();\n return true;\n }\n\n if (event.key === \"ArrowDown\") {\n downHandler();\n return true;\n }\n\n if (event.key === \"Enter\") {\n enterHandler();\n return true;\n }\n\n return false;\n },\n }));\n\n const handleClick =\n (index: number) => (event: MouseEvent<HTMLDivElement>) => {\n onClick?.(event);\n\n if (event.isDefaultPrevented()) return;\n selectItem(index);\n };\n const handleMouseEnter =\n (index: number) => (event: MouseEvent<HTMLDivElement>) => {\n onMouseEnter?.(event);\n\n if (event.isDefaultPrevented()) return;\n\n setSelectedIndex(index);\n };\n\n if (suggestions === undefined || suggestions.length === 0) {\n return null;\n }\n\n return (\n <div\n className=\"lb-root lb-portal lb-elevation lb-tiptap-suggestions lb-tiptap-mention-suggestions\"\n ref={setFloating}\n style={{\n position: strategy,\n top: 0,\n left: 0,\n transform: `translate3d(${Math.round(x)}px, ${Math.round(y)}px, 0)`,\n minWidth: \"max-content\",\n display: props.hide ? \"none\" : \"block\",\n }}\n >\n <div className=\"lb-tiptap-suggestions-list lb-tiptap-mention-suggestions-list\">\n {suggestions.map((mention, index) => {\n return (\n <div\n className=\"lb-tiptap-suggestions-list-item lb-tiptap-mention-suggestion\"\n key={index}\n role=\"option\"\n data-highlighted={index === selectedIndex || undefined}\n onMouseEnter={handleMouseEnter(index)}\n onClick={handleClick(index)}\n >\n {mention.kind === \"user\" ? (\n <>\n <UserAvatar\n userId={mention.id}\n className=\"lb-tiptap-mention-suggestion-avatar\"\n />\n <User\n userId={mention.id}\n className=\"lb-tiptap-mention-suggestion-user\"\n />\n </>\n ) : mention.kind === \"group\" ? (\n <>\n <GroupAvatar\n groupId={mention.id}\n className=\"lb-tiptap-mention-suggestion-avatar\"\n icon={<UsersIcon />}\n />\n <Group\n groupId={mention.id}\n className=\"lb-tiptap-mention-suggestion-group\"\n >\n <GroupDescription\n groupId={mention.id}\n className=\"lb-tiptap-mention-suggestion-group-description\"\n />\n </Group>\n </>\n ) : (\n assertNever(mention, \"Unhandled mention kind\")\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n }\n);\n"],"names":[],"mappings":"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"}
|
package/dist/version.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
const PKG_NAME = "@liveblocks/react-tiptap";
|
|
4
|
-
const PKG_VERSION = typeof "3.18.0-
|
|
4
|
+
const PKG_VERSION = typeof "3.18.0-rc2" === "string" && "3.18.0-rc2";
|
|
5
5
|
const PKG_FORMAT = typeof "cjs" === "string" && "cjs";
|
|
6
6
|
|
|
7
7
|
exports.PKG_FORMAT = PKG_FORMAT;
|
package/dist/version.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const PKG_NAME = "@liveblocks/react-tiptap";
|
|
2
|
-
const PKG_VERSION = typeof "3.18.0-
|
|
2
|
+
const PKG_VERSION = typeof "3.18.0-rc2" === "string" && "3.18.0-rc2";
|
|
3
3
|
const PKG_FORMAT = typeof "esm" === "string" && "esm";
|
|
4
4
|
|
|
5
5
|
export { PKG_FORMAT, PKG_NAME, PKG_VERSION };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@liveblocks/react-tiptap",
|
|
3
|
-
"version": "3.18.0-
|
|
3
|
+
"version": "3.18.0-rc2",
|
|
4
4
|
"description": "An integration of TipTap + React to enable collaboration, comments, live cursors, and more with Liveblocks.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Liveblocks Inc.",
|
|
@@ -45,11 +45,11 @@
|
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
47
|
"@floating-ui/react-dom": "^2.1.0",
|
|
48
|
-
"@liveblocks/client": "3.18.0-
|
|
49
|
-
"@liveblocks/core": "3.18.0-
|
|
50
|
-
"@liveblocks/react": "3.18.0-
|
|
51
|
-
"@liveblocks/react-ui": "3.18.0-
|
|
52
|
-
"@liveblocks/yjs": "3.18.0-
|
|
48
|
+
"@liveblocks/client": "3.18.0-rc2",
|
|
49
|
+
"@liveblocks/core": "3.18.0-rc2",
|
|
50
|
+
"@liveblocks/react": "3.18.0-rc2",
|
|
51
|
+
"@liveblocks/react-ui": "3.18.0-rc2",
|
|
52
|
+
"@liveblocks/yjs": "3.18.0-rc2",
|
|
53
53
|
"@tiptap/core": "^3.19.0",
|
|
54
54
|
"@tiptap/react": "^3.19.0",
|
|
55
55
|
"@tiptap/suggestion": "^3.19.0",
|