@ttt-productions/chat-core 0.4.10 → 0.4.12
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/dist/index.d.ts +3 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -11
- package/dist/index.js.map +1 -1
- package/dist/react/index.d.ts +9 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +10 -0
- package/dist/react/index.js.map +1 -0
- package/dist/ui/Composer.d.ts.map +1 -1
- package/dist/ui/Composer.js +2 -1
- package/dist/ui/Composer.js.map +1 -1
- package/package.json +5 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export * from "./hooks/useChatMessages.js";
|
|
5
|
-
export * from "./hooks/useChatThreadAccess.js";
|
|
6
|
-
export * from "./ui/ChatShell.js";
|
|
7
|
-
export * from "./ui/MessageList.js";
|
|
8
|
-
export * from "./ui/Composer.js";
|
|
9
|
-
export * from "./ui/MessageItemDefault.js";
|
|
10
|
-
export * from "./ui/menus.js";
|
|
1
|
+
export { MAX_CHAT_MESSAGE_LENGTH, CHAT_ATTACHMENT_STALE_AGE_MS } from "./constants.js";
|
|
2
|
+
export { GROUP_GAP_SEC } from "./types.js";
|
|
3
|
+
export type { ChatAttachmentStatus, ChatAttachment, ChatId, ChatThreadV1, ChatMessageV1, ChatAccessMode, ChatCoreConfig, ChatAttachmentConfig, RegisterAttachmentInput, RegisterAttachmentFn, DismissFailedAttachmentFn, ModerationHandlers, MessageRenderer, MessageRendererRegistry, ChatNameResolver, ChatPrewarmSenders, } from "./types.js";
|
|
11
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAEvF,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,YAAY,EACR,oBAAoB,EACpB,cAAc,EACd,MAAM,EACN,YAAY,EACZ,aAAa,EACb,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,GACrB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
export * from "./ui/ChatShell.js";
|
|
7
|
-
export * from "./ui/MessageList.js";
|
|
8
|
-
export * from "./ui/Composer.js";
|
|
9
|
-
export * from "./ui/MessageItemDefault.js";
|
|
10
|
-
export * from "./ui/menus.js";
|
|
11
|
-
// Templates removed in v0.3.0 — use ChatShell directly with render slots.
|
|
1
|
+
// Server-safe barrel. React UI, hooks, and the ChatNameResolver context
|
|
2
|
+
// live on the "/react" subpath. Cloud Functions and other server code
|
|
3
|
+
// import from this barrel only.
|
|
4
|
+
export { MAX_CHAT_MESSAGE_LENGTH, CHAT_ATTACHMENT_STALE_AGE_MS } from "./constants.js";
|
|
5
|
+
export { GROUP_GAP_SEC } from "./types.js";
|
|
12
6
|
// CSS: import "@ttt-productions/chat-core/styles" in your app layout.
|
|
13
7
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,sEAAsE;AACtE,gCAAgC;AAEhC,OAAO,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAEvF,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAoB3C,sEAAsE"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from "../context/ChatNameResolverContext.js";
|
|
2
|
+
export * from "../hooks/useChatMessages.js";
|
|
3
|
+
export * from "../hooks/useChatThreadAccess.js";
|
|
4
|
+
export * from "../ui/ChatShell.js";
|
|
5
|
+
export * from "../ui/MessageList.js";
|
|
6
|
+
export * from "../ui/Composer.js";
|
|
7
|
+
export * from "../ui/MessageItemDefault.js";
|
|
8
|
+
export * from "../ui/menus.js";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAEA,cAAc,uCAAuC,CAAC;AAEtD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAEhD,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
export * from "../context/ChatNameResolverContext.js";
|
|
3
|
+
export * from "../hooks/useChatMessages.js";
|
|
4
|
+
export * from "../hooks/useChatThreadAccess.js";
|
|
5
|
+
export * from "../ui/ChatShell.js";
|
|
6
|
+
export * from "../ui/MessageList.js";
|
|
7
|
+
export * from "../ui/Composer.js";
|
|
8
|
+
export * from "../ui/MessageItemDefault.js";
|
|
9
|
+
export * from "../ui/menus.js";
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,cAAc,uCAAuC,CAAC;AAEtD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAEhD,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Composer.d.ts","sourceRoot":"","sources":["../../src/ui/Composer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Composer.d.ts","sourceRoot":"","sources":["../../src/ui/Composer.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAkB,oBAAoB,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAsB7G,MAAM,MAAM,aAAa,GAAG;IAC1B;;;OAGG;IACH,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAG5E,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;IAE1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,2CAiK5C"}
|
package/dist/ui/Composer.js
CHANGED
|
@@ -3,7 +3,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { Button, Textarea } from "@ttt-productions/ui-core/react";
|
|
5
5
|
import { cn } from "@ttt-productions/ui-core";
|
|
6
|
-
import {
|
|
6
|
+
import { ensureFileWithContentType } from "@ttt-productions/file-input";
|
|
7
|
+
import { MediaInput } from "@ttt-productions/file-input/react";
|
|
7
8
|
import { buildTempUploadPath } from "@ttt-productions/ttt-core";
|
|
8
9
|
import { uploadFileResumable } from "@ttt-productions/upload-core";
|
|
9
10
|
import { Loader2, X, FileText, ImageIcon, VideoIcon, MicIcon } from "lucide-react";
|
package/dist/ui/Composer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Composer.js","sourceRoot":"","sources":["../../src/ui/Composer.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Composer.js","sourceRoot":"","sources":["../../src/ui/Composer.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ttt-productions/chat-core",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.12",
|
|
4
4
|
"description": "Shared Firestore chat core (realtime newest window + infinite older pagination) for TTT Productions apps",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -23,6 +23,10 @@
|
|
|
23
23
|
"types": "./dist/index.d.ts",
|
|
24
24
|
"default": "./dist/index.js"
|
|
25
25
|
},
|
|
26
|
+
"./react": {
|
|
27
|
+
"types": "./dist/react/index.d.ts",
|
|
28
|
+
"default": "./dist/react/index.js"
|
|
29
|
+
},
|
|
26
30
|
"./styles": "./src/styles/chat.css"
|
|
27
31
|
},
|
|
28
32
|
"scripts": {
|