@dxos/react-ui-thread 0.8.4-main.3eb6e50203 → 0.8.4-main.3fbcb4aa9b
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/lib/browser/index.mjs +35 -66
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/translations.mjs +25 -0
- package/dist/lib/browser/translations.mjs.map +7 -0
- package/dist/types/src/Message/Message.d.ts +2 -2
- package/dist/types/src/Message/Message.d.ts.map +1 -1
- package/dist/types/src/Message/Message.stories.d.ts +10 -10
- package/dist/types/src/Message/Message.stories.d.ts.map +1 -1
- package/dist/types/src/Thread/Comments.stories.d.ts +12 -12
- package/dist/types/src/Thread/Comments.stories.d.ts.map +1 -1
- package/dist/types/src/Thread/Thread.d.ts +25 -11
- package/dist/types/src/Thread/Thread.d.ts.map +1 -1
- package/dist/types/src/Thread/Thread.stories.d.ts +15 -11
- package/dist/types/src/Thread/Thread.stories.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +0 -2
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/testing.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +10 -10
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types.d.ts +1 -0
- package/dist/types/src/types.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +25 -19
- package/src/Message/Message.stories.tsx +5 -5
- package/src/Message/Message.tsx +14 -17
- package/src/Thread/Comments.stories.tsx +15 -16
- package/src/Thread/Thread.stories.tsx +8 -8
- package/src/Thread/Thread.tsx +20 -18
- package/src/index.ts +0 -3
- package/src/testing.tsx +3 -6
- package/src/translations.ts +10 -10
- package/src/types.ts +1 -0
|
@@ -1,29 +1,9 @@
|
|
|
1
|
-
// src/translations.ts
|
|
2
|
-
var translationKey = "@dxos/react-ui-thread";
|
|
3
|
-
var translations = [
|
|
4
|
-
{
|
|
5
|
-
"en-US": {
|
|
6
|
-
[translationKey]: {
|
|
7
|
-
"plugin name": "Threads",
|
|
8
|
-
"thread title placeholder": "New thread",
|
|
9
|
-
"thread title label": "Title",
|
|
10
|
-
"delete thread label": "Delete",
|
|
11
|
-
"create thread label": "Create thread",
|
|
12
|
-
"message placeholder": "Enter message...",
|
|
13
|
-
"comment placeholder": "Enter comment...",
|
|
14
|
-
"settings standalone label": "Enable standalone thread creation",
|
|
15
|
-
"anonymous label": "Anonymous",
|
|
16
|
-
"enter to send message": "Enter to add \u23CE"
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
];
|
|
21
|
-
|
|
22
1
|
// src/Thread/Thread.tsx
|
|
23
2
|
import React, { forwardRef } from "react";
|
|
24
3
|
import { Icon, useTranslation } from "@dxos/react-ui";
|
|
25
4
|
import { hoverableControlItem, hoverableFocusedWithinControls, mx } from "@dxos/ui-theme";
|
|
26
|
-
|
|
5
|
+
import { translationKey } from "#translations";
|
|
6
|
+
var threadLayout = "w-full place-self-start grid grid-cols-[var(--dx-rail-size)_1fr]";
|
|
27
7
|
var ThreadRoot = /* @__PURE__ */ forwardRef(({ current, children, classNames, ...props }, forwardedRef) => {
|
|
28
8
|
return /* @__PURE__ */ React.createElement("div", {
|
|
29
9
|
role: "group",
|
|
@@ -32,24 +12,22 @@ var ThreadRoot = /* @__PURE__ */ forwardRef(({ current, children, classNames, ..
|
|
|
32
12
|
"aria-current": typeof current === "string" ? current : "location"
|
|
33
13
|
},
|
|
34
14
|
...props,
|
|
35
|
-
className: mx(threadLayout, hoverableFocusedWithinControls, "bg-[var(--surface-bg)] current-related attention-surface [--controls-opacity:0]", classNames),
|
|
15
|
+
className: mx(threadLayout, hoverableFocusedWithinControls, "bg-[var(--surface-bg)] current-related dx-attention-surface [--controls-opacity:0]", classNames),
|
|
36
16
|
ref: forwardedRef
|
|
37
17
|
}, children);
|
|
38
18
|
});
|
|
39
19
|
var ThreadHeader = /* @__PURE__ */ forwardRef(({ children, detached, ...props }, forwardedRef) => {
|
|
40
20
|
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", {
|
|
41
|
-
role: "none",
|
|
42
21
|
className: "flex items-center justify-center text-description"
|
|
43
22
|
}, /* @__PURE__ */ React.createElement(Icon, {
|
|
44
23
|
icon: "ph--caret-double-right--regular"
|
|
45
24
|
})), /* @__PURE__ */ React.createElement("div", {
|
|
46
|
-
role: "none",
|
|
47
25
|
className: "flex items-center overflow-hidden"
|
|
48
26
|
}, /* @__PURE__ */ React.createElement("p", {
|
|
49
27
|
role: "heading",
|
|
50
28
|
"data-testid": "thread.heading",
|
|
51
29
|
...props,
|
|
52
|
-
className: mx("
|
|
30
|
+
className: mx("me-2 text-description font-medium truncate italic", detached && "line-through decoration-1"),
|
|
53
31
|
ref: forwardedRef
|
|
54
32
|
}, children)));
|
|
55
33
|
});
|
|
@@ -57,18 +35,18 @@ var ThreadStatus = /* @__PURE__ */ forwardRef(({ activity, classNames, children,
|
|
|
57
35
|
const { t } = useTranslation(translationKey);
|
|
58
36
|
return /* @__PURE__ */ React.createElement("div", {
|
|
59
37
|
...props,
|
|
60
|
-
className: mx("col-start-2 grid grid-cols-[min-content_1fr_max-content] pb-2
|
|
38
|
+
className: mx("col-start-2 grid grid-cols-[min-content_1fr_max-content] pb-2 pe-2 text-xs text-description", classNames),
|
|
61
39
|
ref: forwardedRef
|
|
62
40
|
}, /* @__PURE__ */ React.createElement(Icon, {
|
|
63
41
|
icon: "ph--spinner--bold",
|
|
64
|
-
classNames: "
|
|
42
|
+
classNames: "w-6 h-4 invisible data-[visible=show]:visible animate-spin-slow",
|
|
65
43
|
"data-visible": activity ? "show" : "hide"
|
|
66
44
|
}), /* @__PURE__ */ React.createElement("span", {
|
|
67
|
-
className: "truncate min-
|
|
45
|
+
className: "truncate min-w-0",
|
|
68
46
|
"aria-live": "polite"
|
|
69
47
|
}, activity ? children : null), /* @__PURE__ */ React.createElement("span", {
|
|
70
48
|
className: mx("text-end", hoverableControlItem)
|
|
71
|
-
}, t("enter
|
|
49
|
+
}, t("enter-to-send.message")));
|
|
72
50
|
});
|
|
73
51
|
var Thread = {
|
|
74
52
|
Root: ThreadRoot,
|
|
@@ -82,40 +60,33 @@ import React2, { forwardRef as forwardRef2 } from "react";
|
|
|
82
60
|
import { Avatar, useTranslation as useTranslation2 } from "@dxos/react-ui";
|
|
83
61
|
import { useTextEditor } from "@dxos/react-ui-editor";
|
|
84
62
|
import { keymap, listener } from "@dxos/ui-editor";
|
|
85
|
-
import {
|
|
63
|
+
import { mx as mx2 } from "@dxos/ui-theme";
|
|
86
64
|
import { hexToEmoji, hexToHue, isTruthy } from "@dxos/util";
|
|
65
|
+
import { translationKey as translationKey2 } from "#translations";
|
|
87
66
|
var avatarSize = 7;
|
|
88
67
|
var MessageRoot = /* @__PURE__ */ forwardRef2(({ authorImgSrc, authorId, authorName, authorAvatarProps, continues = true, children, classNames, ...rootProps }, forwardedRef) => {
|
|
89
|
-
return (
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
role: "none",
|
|
109
|
-
className: "is-px grow bg-separator"
|
|
110
|
-
})), /* @__PURE__ */ React2.createElement("div", {
|
|
111
|
-
role: "none",
|
|
112
|
-
className: "plb-1 min-is-0"
|
|
113
|
-
}, children)))
|
|
114
|
-
);
|
|
68
|
+
return /* @__PURE__ */ React2.createElement(Avatar.Root, null, /* @__PURE__ */ React2.createElement("div", {
|
|
69
|
+
"data-testid": "thread.message",
|
|
70
|
+
...rootProps,
|
|
71
|
+
className: mx2("grid grid-cols-subgrid col-span-2", classNames),
|
|
72
|
+
ref: forwardedRef
|
|
73
|
+
}, /* @__PURE__ */ React2.createElement("div", {
|
|
74
|
+
className: "flex flex-col items-center gap-2 pt-1"
|
|
75
|
+
}, /* @__PURE__ */ React2.createElement(Avatar.Content, {
|
|
76
|
+
size: avatarSize,
|
|
77
|
+
hue: authorAvatarProps?.hue || hexToHue(authorId ?? "0"),
|
|
78
|
+
fallback: authorAvatarProps?.emoji || hexToEmoji(authorId ?? "0"),
|
|
79
|
+
...authorImgSrc && {
|
|
80
|
+
imgSrc: authorImgSrc
|
|
81
|
+
}
|
|
82
|
+
}), continues && /* @__PURE__ */ React2.createElement("div", {
|
|
83
|
+
className: "w-px grow bg-separator"
|
|
84
|
+
})), /* @__PURE__ */ React2.createElement("div", {
|
|
85
|
+
className: "py-1 min-w-0"
|
|
86
|
+
}, children)));
|
|
115
87
|
});
|
|
116
88
|
var MessageHeading = ({ children, classNames, timestamp, authorName, ...props }) => {
|
|
117
89
|
return /* @__PURE__ */ React2.createElement("div", {
|
|
118
|
-
role: "none",
|
|
119
90
|
...props,
|
|
120
91
|
className: mx2("flex gap-2 items-start", classNames)
|
|
121
92
|
}, /* @__PURE__ */ React2.createElement("p", {
|
|
@@ -127,16 +98,16 @@ var MessageHeading = ({ children, classNames, timestamp, authorName, ...props })
|
|
|
127
98
|
})), children);
|
|
128
99
|
};
|
|
129
100
|
var MessageAuthorName = ({ authorName }) => {
|
|
130
|
-
const { t } = useTranslation2(
|
|
101
|
+
const { t } = useTranslation2(translationKey2);
|
|
131
102
|
return /* @__PURE__ */ React2.createElement(Avatar.Label, {
|
|
132
103
|
classNames: "block truncate text-sm text-subdued"
|
|
133
|
-
}, authorName ?? t("anonymous
|
|
104
|
+
}, authorName ?? t("anonymous.label"));
|
|
134
105
|
};
|
|
135
106
|
var MessageTime = ({ timestamp }) => {
|
|
136
|
-
const { dtLocale } = useTranslation2(
|
|
107
|
+
const { dtLocale } = useTranslation2(translationKey2);
|
|
137
108
|
const dt = timestamp ? new Date(timestamp) : void 0;
|
|
138
109
|
return /* @__PURE__ */ React2.createElement("time", {
|
|
139
|
-
className: "block text-subdued text-xs
|
|
110
|
+
className: "block text-subdued text-xs pb-0.5",
|
|
140
111
|
dateTime: dt?.toISOString()
|
|
141
112
|
}, dt ? formatDistanceToNow(dt, {
|
|
142
113
|
locale: dtLocale,
|
|
@@ -201,9 +172,8 @@ var MessageTextbox = ({ id, authorId, authorName, authorImgSrc, authorAvatarProp
|
|
|
201
172
|
authorAvatarProps,
|
|
202
173
|
continues: false
|
|
203
174
|
}, /* @__PURE__ */ React2.createElement("div", {
|
|
204
|
-
role: "none",
|
|
205
175
|
ref: parentRef,
|
|
206
|
-
className: mx2("
|
|
176
|
+
className: mx2("py-0.5 me-1 rounded-xs dx-focus-ring", disabled && "opacity-50"),
|
|
207
177
|
...focusAttributes
|
|
208
178
|
}));
|
|
209
179
|
};
|
|
@@ -215,7 +185,6 @@ export {
|
|
|
215
185
|
MessageTextbox,
|
|
216
186
|
MessageTime,
|
|
217
187
|
Thread,
|
|
218
|
-
threadLayout
|
|
219
|
-
translations
|
|
188
|
+
threadLayout
|
|
220
189
|
};
|
|
221
190
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../src/
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport
|
|
5
|
-
"mappings": ";
|
|
6
|
-
"names": ["
|
|
3
|
+
"sources": ["../../../src/Thread/Thread.tsx", "../../../src/Message/Message.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { ComponentPropsWithRef, forwardRef, PropsWithChildren } from 'react';\n\nimport { Icon, type ThemedClassName, useTranslation } from '@dxos/react-ui';\nimport { hoverableControlItem, hoverableFocusedWithinControls, mx } from '@dxos/ui-theme';\n\nimport { translationKey } from '#translations';\n\nimport type { ThreadEntity } from '../types';\n\n// TODO(burdon): Avoid exporting fragments.\nexport const threadLayout = 'w-full place-self-start grid grid-cols-[var(--dx-rail-size)_1fr]';\n\n//\n// Root\n//\n\ntype ThreadRootProps = ThemedClassName<\n PropsWithChildren<\n ThreadEntity & { current?: boolean } & Pick<ComponentPropsWithRef<'div'>, 'onClickCapture' | 'onFocusCapture'>\n >\n>;\n\nconst ThreadRoot = forwardRef<HTMLDivElement, ThreadRootProps>(\n ({ current, children, classNames, ...props }, forwardedRef) => {\n return (\n <div\n role='group'\n data-testid='thread'\n {...(current && { 'aria-current': typeof current === 'string' ? current : 'location' })}\n {...props}\n className={mx(\n threadLayout,\n hoverableFocusedWithinControls,\n 'bg-[var(--surface-bg)] current-related dx-attention-surface [--controls-opacity:0]',\n classNames,\n )}\n ref={forwardedRef}\n >\n {children}\n </div>\n );\n },\n);\n\n//\n// Heading\n//\n\ntype ThreadHeaderProps = PropsWithChildren<{ detached?: boolean }>;\n\nconst ThreadHeader = forwardRef<HTMLParagraphElement, ThreadHeaderProps>(\n ({ children, detached, ...props }, forwardedRef) => {\n return (\n <>\n <div className='flex items-center justify-center text-description'>\n <Icon icon='ph--caret-double-right--regular' />\n </div>\n <div className='flex items-center overflow-hidden'>\n <p\n role='heading'\n data-testid='thread.heading'\n {...props}\n className={mx('me-2 text-description font-medium truncate italic', detached && 'line-through decoration-1')}\n ref={forwardedRef}\n >\n {children}\n </p>\n </div>\n </>\n );\n },\n);\n\n//\n// Status\n//\n\ntype ThreadStatusProps = ThemedClassName<PropsWithChildren> & {\n activity?: boolean;\n};\n\nconst ThreadStatus = forwardRef<HTMLDivElement, ThreadStatusProps>(\n ({ activity, classNames, children, ...props }, forwardedRef) => {\n const { t } = useTranslation(translationKey);\n return (\n <div\n {...props}\n className={mx(\n 'col-start-2 grid grid-cols-[min-content_1fr_max-content] pb-2 pe-2 text-xs text-description',\n classNames,\n )}\n ref={forwardedRef}\n >\n <Icon\n icon='ph--spinner--bold'\n classNames='w-6 h-4 invisible data-[visible=show]:visible animate-spin-slow'\n data-visible={activity ? 'show' : 'hide'}\n />\n <span className='truncate min-w-0' aria-live='polite'>\n {activity ? children : null}\n </span>\n <span className={mx('text-end', hoverableControlItem)}>{t('enter-to-send.message')}</span>\n </div>\n );\n },\n);\n\nexport const Thread = {\n Root: ThreadRoot,\n Header: ThreadHeader,\n Status: ThreadStatus,\n};\n\nexport type { ThreadRootProps, ThreadHeaderProps, ThreadStatusProps };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { formatDistanceToNow } from 'date-fns/formatDistanceToNow';\nimport React, { type ComponentPropsWithRef, type ComponentPropsWithoutRef, forwardRef } from 'react';\n\nimport { Avatar, type ThemedClassName, useTranslation } from '@dxos/react-ui';\nimport { type UseTextEditorProps, useTextEditor } from '@dxos/react-ui-editor';\nimport { keymap, listener } from '@dxos/ui-editor';\nimport { mx } from '@dxos/ui-theme';\nimport { hexToEmoji, hexToHue, isTruthy } from '@dxos/util';\n\nimport { translationKey } from '#translations';\n\nimport { type MessageMetadata } from '../types';\n\nconst avatarSize = 7;\n\nexport type MessageRootProps = ThemedClassName<\n ComponentPropsWithRef<'div'> & MessageMetadata & Partial<{ continues: boolean }>\n>;\n\n// TODO(burdon): Show authorName on tooltip.\nexport const MessageRoot = forwardRef<HTMLDivElement, MessageRootProps>(\n (\n { authorImgSrc, authorId, authorName, authorAvatarProps, continues = true, children, classNames, ...rootProps },\n forwardedRef,\n ) => {\n // Must wrap the message since Avatar.Label may be used in the content.\n return (\n <Avatar.Root>\n <div\n data-testid='thread.message'\n {...rootProps}\n className={mx('grid grid-cols-subgrid col-span-2', classNames)}\n ref={forwardedRef}\n >\n <div className='flex flex-col items-center gap-2 pt-1'>\n <Avatar.Content\n size={avatarSize}\n hue={authorAvatarProps?.hue || hexToHue(authorId ?? '0')}\n fallback={authorAvatarProps?.emoji || hexToEmoji(authorId ?? '0')}\n {...(authorImgSrc && { imgSrc: authorImgSrc })}\n />\n {continues && <div className='w-px grow bg-separator' />}\n </div>\n <div className='py-1 min-w-0'>{children}</div>\n </div>\n </Avatar.Root>\n );\n },\n);\n\nexport type MessageHeadingProps = ThemedClassName<ComponentPropsWithoutRef<'div'>> &\n Pick<MessageMetadata, 'authorName' | 'timestamp'>;\n\nexport const MessageHeading = ({ children, classNames, timestamp, authorName, ...props }: MessageHeadingProps) => {\n return (\n <div {...props} className={mx('flex gap-2 items-start', classNames)}>\n <p className='grow'>\n <MessageAuthorName authorName={authorName} />\n {timestamp && <MessageTime timestamp={timestamp} />}\n </p>\n {children}\n </div>\n );\n};\n\nexport type MessageAuthorNameProps = Pick<MessageMetadata, 'authorName'>;\n\nexport const MessageAuthorName = ({ authorName }: MessageAuthorNameProps) => {\n const { t } = useTranslation(translationKey);\n return (\n <Avatar.Label classNames='block truncate text-sm text-subdued'>{authorName ?? t('anonymous.label')}</Avatar.Label>\n );\n};\n\nexport type MessageTimeProps = Pick<MessageMetadata, 'timestamp'>;\n\nexport const MessageTime = ({ timestamp }: MessageTimeProps) => {\n const { dtLocale } = useTranslation(translationKey);\n const dt = timestamp ? new Date(timestamp) : undefined;\n return (\n <time className='block text-subdued text-xs pb-0.5' dateTime={dt?.toISOString()}>\n {dt ? formatDistanceToNow(dt, { locale: dtLocale, addSuffix: true }) : ''}\n </time>\n );\n};\n\nexport type MessageBodyProps = ComponentPropsWithoutRef<'p'>;\n\nexport const MessageBody = ({ children, ...props }: MessageBodyProps) => {\n return <p {...props}>{children}</p>;\n};\n\nexport type MessageTextboxProps = {\n disabled?: boolean;\n onSend?: () => void;\n onClear?: () => void;\n onEditorFocus?: () => void;\n} & MessageMetadata &\n UseTextEditorProps;\n\nconst keyBindings = ({ onSend, onClear }: Pick<MessageTextboxProps, 'onSend' | 'onClear'>) => [\n {\n key: 'Enter',\n run: () => {\n if (onSend) {\n onSend();\n return true;\n } else {\n return false;\n }\n },\n },\n {\n // TODO(burdon): Other key bindings.\n key: 'Meta+Backspace',\n run: () => {\n if (onClear) {\n onClear();\n return true;\n } else {\n return false;\n }\n },\n },\n];\n\nexport const MessageTextbox = ({\n id,\n authorId,\n authorName,\n authorImgSrc,\n authorAvatarProps,\n disabled,\n extensions,\n onSend,\n onClear,\n onEditorFocus,\n ...editorProps\n}: MessageTextboxProps) => {\n const { parentRef, focusAttributes } = useTextEditor(\n () => ({\n id,\n extensions: [\n keymap.of(keyBindings({ onSend, onClear })),\n listener({\n onFocus: ({ focusing }) => {\n if (focusing) {\n onEditorFocus?.();\n }\n },\n }),\n extensions,\n ].filter(isTruthy),\n ...editorProps,\n }),\n [id, extensions],\n );\n\n return (\n <MessageRoot {...{ id, authorId, authorName, authorImgSrc, authorAvatarProps }} continues={false}>\n <div\n ref={parentRef}\n className={mx('py-0.5 me-1 rounded-xs dx-focus-ring', disabled && 'opacity-50')}\n {...focusAttributes}\n />\n </MessageRoot>\n );\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "forwardRef", "Icon", "useTranslation", "hoverableControlItem", "hoverableFocusedWithinControls", "mx", "translationKey", "threadLayout", "ThreadRoot", "current", "children", "classNames", "props", "forwardedRef", "div", "role", "data-testid", "className", "ref", "ThreadHeader", "detached", "icon", "p", "ThreadStatus", "activity", "t", "data-visible", "span", "aria-live", "Thread", "Root", "Header", "Status", "formatDistanceToNow", "React", "forwardRef", "Avatar", "useTranslation", "useTextEditor", "keymap", "listener", "mx", "hexToEmoji", "hexToHue", "isTruthy", "translationKey", "avatarSize", "MessageRoot", "authorImgSrc", "authorId", "authorName", "authorAvatarProps", "continues", "children", "classNames", "rootProps", "forwardedRef", "Root", "div", "data-testid", "className", "ref", "Content", "size", "hue", "fallback", "emoji", "imgSrc", "MessageHeading", "timestamp", "props", "p", "MessageAuthorName", "MessageTime", "t", "Label", "dtLocale", "dt", "Date", "undefined", "time", "dateTime", "toISOString", "locale", "addSuffix", "MessageBody", "keyBindings", "onSend", "onClear", "key", "run", "MessageTextbox", "id", "disabled", "extensions", "onEditorFocus", "editorProps", "parentRef", "focusAttributes", "of", "onFocus", "focusing", "filter"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"src/
|
|
1
|
+
{"inputs":{"src/Thread/Thread.tsx":{"bytes":9583,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"#translations","kind":"import-statement","external":true}],"format":"esm"},"src/Thread/index.ts":{"bytes":370,"imports":[{"path":"src/Thread/Thread.tsx","kind":"import-statement","original":"./Thread"}],"format":"esm"},"src/Message/Message.tsx":{"bytes":16171,"imports":[{"path":"date-fns/formatDistanceToNow","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/ui-editor","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"#translations","kind":"import-statement","external":true}],"format":"esm"},"src/Message/index.ts":{"bytes":375,"imports":[{"path":"src/Message/Message.tsx","kind":"import-statement","original":"./Message"}],"format":"esm"},"src/index.ts":{"bytes":497,"imports":[{"path":"src/Thread/index.ts","kind":"import-statement","original":"./Thread"},{"path":"src/Message/index.ts","kind":"import-statement","original":"./Message"}],"format":"esm"},"src/translations.ts":{"bytes":2395,"imports":[],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":13727},"dist/lib/browser/index.mjs":{"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"#translations","kind":"import-statement","external":true},{"path":"date-fns/formatDistanceToNow","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/ui-editor","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"#translations","kind":"import-statement","external":true}],"exports":["MessageAuthorName","MessageBody","MessageHeading","MessageRoot","MessageTextbox","MessageTime","Thread","threadLayout"],"entryPoint":"src/index.ts","inputs":{"src/Thread/Thread.tsx":{"bytesInOutput":2561},"src/index.ts":{"bytesInOutput":0},"src/Message/Message.tsx":{"bytesInOutput":4076}},"bytes":6864},"dist/lib/browser/translations.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1151},"dist/lib/browser/translations.mjs":{"imports":[],"exports":["translationKey","translations"],"entryPoint":"src/translations.ts","inputs":{"src/translations.ts":{"bytesInOutput":616}},"bytes":726}}}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// src/translations.ts
|
|
2
|
+
var translationKey = "@dxos/react-ui-thread";
|
|
3
|
+
var translations = [
|
|
4
|
+
{
|
|
5
|
+
"en-US": {
|
|
6
|
+
[translationKey]: {
|
|
7
|
+
"plugin.name": "Threads",
|
|
8
|
+
"thread-title.placeholder": "New thread",
|
|
9
|
+
"thread-title.label": "Title",
|
|
10
|
+
"delete-thread.label": "Delete",
|
|
11
|
+
"create-thread.label": "Create thread",
|
|
12
|
+
"message.placeholder": "Enter message...",
|
|
13
|
+
"comment.placeholder": "Enter comment...",
|
|
14
|
+
"settings-standalone.label": "Enable standalone thread creation",
|
|
15
|
+
"anonymous.label": "Anonymous",
|
|
16
|
+
"enter-to-send.message": "Enter to add \u23CE"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
];
|
|
21
|
+
export {
|
|
22
|
+
translationKey,
|
|
23
|
+
translations
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=translations.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/translations.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\n\nexport const translationKey = '@dxos/react-ui-thread';\n\nexport const translations = [\n {\n 'en-US': {\n [translationKey]: {\n 'plugin.name': 'Threads',\n 'thread-title.placeholder': 'New thread',\n 'thread-title.label': 'Title',\n 'delete-thread.label': 'Delete',\n 'create-thread.label': 'Create thread',\n 'message.placeholder': 'Enter message...',\n 'comment.placeholder': 'Enter comment...',\n 'settings-standalone.label': 'Enable standalone thread creation',\n 'anonymous.label': 'Anonymous',\n 'enter-to-send.message': 'Enter to add ⏎',\n },\n },\n },\n] as const satisfies Resource[];\n"],
|
|
5
|
+
"mappings": ";AAMO,IAAMA,iBAAiB;AAEvB,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACD,cAAAA,GAAiB;QAChB,eAAe;QACf,4BAA4B;QAC5B,sBAAsB;QACtB,uBAAuB;QACvB,uBAAuB;QACvB,uBAAuB;QACvB,uBAAuB;QACvB,6BAA6B;QAC7B,mBAAmB;QACnB,yBAAyB;MAC3B;IACF;EACF;;",
|
|
6
|
+
"names": ["translationKey", "translations"]
|
|
7
|
+
}
|
|
@@ -2,9 +2,9 @@ import React, { type ComponentPropsWithRef, type ComponentPropsWithoutRef } from
|
|
|
2
2
|
import { type ThemedClassName } from '@dxos/react-ui';
|
|
3
3
|
import { type UseTextEditorProps } from '@dxos/react-ui-editor';
|
|
4
4
|
import { type MessageMetadata } from '../types';
|
|
5
|
-
export type MessageRootProps = ThemedClassName<ComponentPropsWithRef<'div'
|
|
5
|
+
export type MessageRootProps = ThemedClassName<ComponentPropsWithRef<'div'> & MessageMetadata & Partial<{
|
|
6
6
|
continues: boolean;
|
|
7
|
-
}
|
|
7
|
+
}>>;
|
|
8
8
|
export declare const MessageRoot: React.ForwardRefExoticComponent<Omit<MessageRootProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
9
9
|
export type MessageHeadingProps = ThemedClassName<ComponentPropsWithoutRef<'div'>> & Pick<MessageMetadata, 'authorName' | 'timestamp'>;
|
|
10
10
|
export declare const MessageHeading: ({ children, classNames, timestamp, authorName, ...props }: MessageHeadingProps) => React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Message.d.ts","sourceRoot":"","sources":["../../../../src/Message/Message.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,EAAE,KAAK,qBAAqB,EAAE,KAAK,wBAAwB,EAAc,MAAM,OAAO,CAAC;AAErG,OAAO,EAAU,KAAK,eAAe,EAAkB,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,KAAK,kBAAkB,EAAiB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"Message.d.ts","sourceRoot":"","sources":["../../../../src/Message/Message.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,EAAE,KAAK,qBAAqB,EAAE,KAAK,wBAAwB,EAAc,MAAM,OAAO,CAAC;AAErG,OAAO,EAAU,KAAK,eAAe,EAAkB,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,KAAK,kBAAkB,EAAiB,MAAM,uBAAuB,CAAC;AAO/E,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AAIhD,MAAM,MAAM,gBAAgB,GAAG,eAAe,CAC5C,qBAAqB,CAAC,KAAK,CAAC,GAAG,eAAe,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CACjF,CAAC;AAGF,eAAO,MAAM,WAAW,sGA4BvB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,eAAe,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,GAChF,IAAI,CAAC,eAAe,EAAE,YAAY,GAAG,WAAW,CAAC,CAAC;AAEpD,eAAO,MAAM,cAAc,8DAA+D,mBAAmB,sBAU5G,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;AAEzE,eAAO,MAAM,iBAAiB,mBAAoB,sBAAsB,sBAKvE,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;AAElE,eAAO,MAAM,WAAW,kBAAmB,gBAAgB,sBAQ1D,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;AAE7D,eAAO,MAAM,WAAW,2BAA4B,gBAAgB,sBAEnE,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B,GAAG,eAAe,GACjB,kBAAkB,CAAC;AA4BrB,eAAO,MAAM,cAAc,wIAYxB,mBAAmB,sBA6BrB,CAAC"}
|
|
@@ -10,16 +10,16 @@ declare const meta: {
|
|
|
10
10
|
translations: [{
|
|
11
11
|
readonly 'en-US': {
|
|
12
12
|
readonly "@dxos/react-ui-thread": {
|
|
13
|
-
readonly 'plugin
|
|
14
|
-
readonly 'thread
|
|
15
|
-
readonly 'thread
|
|
16
|
-
readonly 'delete
|
|
17
|
-
readonly 'create
|
|
18
|
-
readonly 'message
|
|
19
|
-
readonly 'comment
|
|
20
|
-
readonly 'settings
|
|
21
|
-
readonly 'anonymous
|
|
22
|
-
readonly 'enter
|
|
13
|
+
readonly 'plugin.name': 'Threads';
|
|
14
|
+
readonly 'thread-title.placeholder': 'New thread';
|
|
15
|
+
readonly 'thread-title.label': 'Title';
|
|
16
|
+
readonly 'delete-thread.label': 'Delete';
|
|
17
|
+
readonly 'create-thread.label': 'Create thread';
|
|
18
|
+
readonly 'message.placeholder': 'Enter message...';
|
|
19
|
+
readonly 'comment.placeholder': 'Enter comment...';
|
|
20
|
+
readonly 'settings-standalone.label': 'Enable standalone thread creation';
|
|
21
|
+
readonly 'anonymous.label': 'Anonymous';
|
|
22
|
+
readonly 'enter-to-send.message': 'Enter to add \u23CE';
|
|
23
23
|
};
|
|
24
24
|
};
|
|
25
25
|
}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Message.stories.d.ts","sourceRoot":"","sources":["../../../../src/Message/Message.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAmB,MAAM,OAAO,CAAC;AAgCxC,QAAA,MAAM,IAAI;;eAEkB,GAAG;;;;;;;;;;;;;;;;;;;;;;CAOM,CAAC;
|
|
1
|
+
{"version":3,"file":"Message.stories.d.ts","sourceRoot":"","sources":["../../../../src/Message/Message.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAmB,MAAM,OAAO,CAAC;AAgCxC,QAAA,MAAM,IAAI;;eAEkB,GAAG;;;;;;;;;;;;;;;;;;;;;;CAOM,CAAC;eAEvB,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC"}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
import { type StoryObj } from '@storybook/react-vite';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
type
|
|
3
|
+
type DefaultStoryProps = {
|
|
4
4
|
text?: string;
|
|
5
5
|
autoCreate?: boolean;
|
|
6
6
|
};
|
|
7
7
|
declare const meta: {
|
|
8
8
|
title: string;
|
|
9
9
|
component: any;
|
|
10
|
-
render: ({ text, autoCreate }:
|
|
10
|
+
render: ({ text, autoCreate }: DefaultStoryProps) => React.JSX.Element;
|
|
11
11
|
decorators: import("@storybook/react").Decorator[];
|
|
12
12
|
parameters: {
|
|
13
13
|
translations: [{
|
|
14
14
|
readonly 'en-US': {
|
|
15
15
|
readonly "@dxos/react-ui-thread": {
|
|
16
|
-
readonly 'plugin
|
|
17
|
-
readonly 'thread
|
|
18
|
-
readonly 'thread
|
|
19
|
-
readonly 'delete
|
|
20
|
-
readonly 'create
|
|
21
|
-
readonly 'message
|
|
22
|
-
readonly 'comment
|
|
23
|
-
readonly 'settings
|
|
24
|
-
readonly 'anonymous
|
|
25
|
-
readonly 'enter
|
|
16
|
+
readonly 'plugin.name': 'Threads';
|
|
17
|
+
readonly 'thread-title.placeholder': 'New thread';
|
|
18
|
+
readonly 'thread-title.label': 'Title';
|
|
19
|
+
readonly 'delete-thread.label': 'Delete';
|
|
20
|
+
readonly 'create-thread.label': 'Create thread';
|
|
21
|
+
readonly 'message.placeholder': 'Enter message...';
|
|
22
|
+
readonly 'comment.placeholder': 'Enter comment...';
|
|
23
|
+
readonly 'settings-standalone.label': 'Enable standalone thread creation';
|
|
24
|
+
readonly 'anonymous.label': 'Anonymous';
|
|
25
|
+
readonly 'enter-to-send.message': 'Enter to add \u23CE';
|
|
26
26
|
};
|
|
27
27
|
};
|
|
28
28
|
}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Comments.stories.d.ts","sourceRoot":"","sources":["../../../../src/Thread/Comments.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAwD,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Comments.stories.d.ts","sourceRoot":"","sources":["../../../../src/Thread/Comments.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAwD,MAAM,OAAO,CAAC;AAwP7E,KAAK,iBAAiB,GAAG;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAuHF,QAAA,MAAM,IAAI;;eAEkB,GAAG;mCAvHa,iBAAiB;;;;;;;;;;;;;;;;;;;;;CA8HxB,CAAC;eAEvB,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAInC,eAAO,MAAM,OAAO,EAAE,KASrB,CAAC"}
|
|
@@ -1,20 +1,34 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, { ComponentPropsWithRef, PropsWithChildren } from 'react';
|
|
2
2
|
import { type ThemedClassName } from '@dxos/react-ui';
|
|
3
3
|
import type { ThreadEntity } from '../types';
|
|
4
|
-
export declare const threadLayout = "
|
|
5
|
-
type ThreadRootProps = ThemedClassName<
|
|
4
|
+
export declare const threadLayout = "w-full place-self-start grid grid-cols-[var(--dx-rail-size)_1fr]";
|
|
5
|
+
type ThreadRootProps = ThemedClassName<PropsWithChildren<ThreadEntity & {
|
|
6
6
|
current?: boolean;
|
|
7
|
-
}
|
|
8
|
-
type ThreadHeaderProps =
|
|
7
|
+
} & Pick<ComponentPropsWithRef<'div'>, 'onClickCapture' | 'onFocusCapture'>>>;
|
|
8
|
+
type ThreadHeaderProps = PropsWithChildren<{
|
|
9
9
|
detached?: boolean;
|
|
10
|
-
}
|
|
11
|
-
type ThreadStatusProps = ThemedClassName<
|
|
10
|
+
}>;
|
|
11
|
+
type ThreadStatusProps = ThemedClassName<PropsWithChildren> & {
|
|
12
12
|
activity?: boolean;
|
|
13
13
|
};
|
|
14
14
|
export declare const Thread: {
|
|
15
|
-
Root: React.ForwardRefExoticComponent<Omit<
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
Root: React.ForwardRefExoticComponent<Omit<PropsWithChildren<ThreadEntity & {
|
|
16
|
+
current?: boolean;
|
|
17
|
+
} & Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "onClickCapture" | "onFocusCapture">>, "className"> & {
|
|
18
|
+
classNames?: import("@dxos/ui-types").ClassNameValue;
|
|
19
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
20
|
+
Header: React.ForwardRefExoticComponent<{
|
|
21
|
+
detached?: boolean;
|
|
22
|
+
} & {
|
|
23
|
+
children?: React.ReactNode | undefined;
|
|
24
|
+
} & React.RefAttributes<HTMLParagraphElement>>;
|
|
25
|
+
Status: React.ForwardRefExoticComponent<Omit<{
|
|
26
|
+
children?: React.ReactNode | undefined;
|
|
27
|
+
}, "className"> & {
|
|
28
|
+
classNames?: import("@dxos/ui-types").ClassNameValue;
|
|
29
|
+
} & {
|
|
30
|
+
activity?: boolean;
|
|
31
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
18
32
|
};
|
|
19
|
-
export type { ThreadRootProps, ThreadHeaderProps
|
|
33
|
+
export type { ThreadRootProps, ThreadHeaderProps, ThreadStatusProps };
|
|
20
34
|
//# sourceMappingURL=Thread.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Thread.d.ts","sourceRoot":"","sources":["../../../../src/Thread/Thread.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"Thread.d.ts","sourceRoot":"","sources":["../../../../src/Thread/Thread.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,qBAAqB,EAAc,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAEpF,OAAO,EAAQ,KAAK,eAAe,EAAkB,MAAM,gBAAgB,CAAC;AAK5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG7C,eAAO,MAAM,YAAY,qEAAqE,CAAC;AAM/F,KAAK,eAAe,GAAG,eAAe,CACpC,iBAAiB,CACf,YAAY,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,gBAAgB,GAAG,gBAAgB,CAAC,CAC/G,CACF,CAAC;AA4BF,KAAK,iBAAiB,GAAG,iBAAiB,CAAC;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AA6BnE,KAAK,iBAAiB,GAAG,eAAe,CAAC,iBAAiB,CAAC,GAAG;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AA4BF,eAAO,MAAM,MAAM;IACjB,IAAI;kBA1FyB,OAAO;;;;IA2FpC,MAAM;mBA7DgD,OAAO;;;;IA8D7D,MAAM;;;;;mBAhCK,OAAO;;CAiCnB,CAAC;AAEF,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -2,7 +2,11 @@ import { type StoryObj } from '@storybook/react-vite';
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
declare const meta: {
|
|
4
4
|
title: string;
|
|
5
|
-
component: React.ForwardRefExoticComponent<Omit<import("
|
|
5
|
+
component: React.ForwardRefExoticComponent<Omit<React.PropsWithChildren<import("..").ThreadEntity & {
|
|
6
|
+
current?: boolean;
|
|
7
|
+
} & Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "onClickCapture" | "onFocusCapture">>, "className"> & {
|
|
8
|
+
classNames?: import("@dxos/ui-types").ClassNameValue;
|
|
9
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
6
10
|
render: () => React.JSX.Element;
|
|
7
11
|
decorators: import("@storybook/react").Decorator[];
|
|
8
12
|
parameters: {
|
|
@@ -10,16 +14,16 @@ declare const meta: {
|
|
|
10
14
|
translations: [{
|
|
11
15
|
readonly 'en-US': {
|
|
12
16
|
readonly "@dxos/react-ui-thread": {
|
|
13
|
-
readonly 'plugin
|
|
14
|
-
readonly 'thread
|
|
15
|
-
readonly 'thread
|
|
16
|
-
readonly 'delete
|
|
17
|
-
readonly 'create
|
|
18
|
-
readonly 'message
|
|
19
|
-
readonly 'comment
|
|
20
|
-
readonly 'settings
|
|
21
|
-
readonly 'anonymous
|
|
22
|
-
readonly 'enter
|
|
17
|
+
readonly 'plugin.name': 'Threads';
|
|
18
|
+
readonly 'thread-title.placeholder': 'New thread';
|
|
19
|
+
readonly 'thread-title.label': 'Title';
|
|
20
|
+
readonly 'delete-thread.label': 'Delete';
|
|
21
|
+
readonly 'create-thread.label': 'Create thread';
|
|
22
|
+
readonly 'message.placeholder': 'Enter message...';
|
|
23
|
+
readonly 'comment.placeholder': 'Enter comment...';
|
|
24
|
+
readonly 'settings-standalone.label': 'Enable standalone thread creation';
|
|
25
|
+
readonly 'anonymous.label': 'Anonymous';
|
|
26
|
+
readonly 'enter-to-send.message': 'Enter to add \u23CE';
|
|
23
27
|
};
|
|
24
28
|
};
|
|
25
29
|
}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Thread.stories.d.ts","sourceRoot":"","sources":["../../../../src/Thread/Thread.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAoC,MAAM,OAAO,CAAC;AA8EzD,QAAA,MAAM,IAAI
|
|
1
|
+
{"version":3,"file":"Thread.stories.d.ts","sourceRoot":"","sources":["../../../../src/Thread/Thread.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAoC,MAAM,OAAO,CAAC;AA8EzD,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAS0B,CAAC;eAEtB,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,mBAAmB,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../../src/testing.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,MAAM,aAAa,CAAC,SAAS,GAAG,GAAG,IAAI,eAAe,GAAG;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../../src/testing.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,MAAM,aAAa,CAAC,SAAS,GAAG,GAAG,IAAI,eAAe,GAAG;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,gBAAgB,8CAA+C,gBAAgB,sBAkB3F,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,SAAS,IAAI;IACxC,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,SAAS,YAAa,gBAAgB,CAAC,SAAS,CAAC,sBAQlF,CAAC"}
|