@k2b/ui 0.27.0 → 0.28.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.
- package/README.md +1 -1
- package/dist/base.css +147 -2
- package/dist/browser/actions/ContextMenu.js +30 -4
- package/dist/browser/actions/ContextMenu.js.map +1 -1
- package/dist/browser/actions/Dropdown.js +184 -158
- package/dist/browser/actions/Dropdown.js.map +1 -1
- package/dist/browser/actions/GestureMenu.js +71 -138
- package/dist/browser/actions/GestureMenu.js.map +1 -1
- package/dist/browser/actions/Toolbar.js +379 -48
- package/dist/browser/actions/Toolbar.js.map +1 -1
- package/dist/browser/actions/index.js.map +1 -1
- package/dist/browser/actions/menu-rows.js +15 -0
- package/dist/browser/actions/menu-rows.js.map +1 -0
- package/dist/browser/actions/menu-sheet.js +154 -0
- package/dist/browser/actions/menu-sheet.js.map +1 -0
- package/dist/browser/actions/toolbar-messages.js +20 -0
- package/dist/browser/actions/toolbar-messages.js.map +1 -0
- package/dist/browser/chart-inspection.js +3 -0
- package/dist/browser/chart-inspection.js.map +1 -0
- package/dist/browser/chat/ChatComposer.js +581 -397
- package/dist/browser/chat/ChatComposer.js.map +1 -1
- package/dist/browser/chat/chat-messages.js +19 -1
- package/dist/browser/chat/chat-messages.js.map +1 -1
- package/dist/browser/chat/command-search.js +3 -0
- package/dist/browser/chat/command-search.js.map +1 -1
- package/dist/browser/chat/index.js +2 -0
- package/dist/browser/chat/index.js.map +1 -1
- package/dist/browser/chat/reaction-people.js +15 -0
- package/dist/browser/chat/reaction-people.js.map +1 -0
- package/dist/browser/content/Chart.js +6 -15
- package/dist/browser/content/Chart.js.map +1 -1
- package/dist/browser/content/ChartSnapshotView.js +7 -10
- package/dist/browser/content/ChartSnapshotView.js.map +1 -1
- package/dist/browser/content/MessageRow.js +330 -448
- package/dist/browser/content/MessageRow.js.map +1 -1
- package/dist/browser/content/ReactionBar.js +419 -0
- package/dist/browser/content/ReactionBar.js.map +1 -0
- package/dist/browser/content/chart-inspection-core.js +557 -0
- package/dist/browser/content/chart-inspection-core.js.map +1 -0
- package/dist/browser/content/chart-inspection.js +10 -445
- package/dist/browser/content/chart-inspection.js.map +1 -1
- package/dist/browser/content/chart-line-gaps.js +1 -1
- package/dist/browser/content/chart-line-gaps.js.map +1 -1
- package/dist/browser/content/chart-snapshot.js +1 -1
- package/dist/browser/content/chart-snapshot.js.map +1 -1
- package/dist/browser/content/index.js +1 -0
- package/dist/browser/content/index.js.map +1 -1
- package/dist/browser/feedback/dialog-core.js +135 -23
- package/dist/browser/feedback/dialog-core.js.map +1 -1
- package/dist/browser/index.js +1 -0
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/input-mode.js +40 -0
- package/dist/browser/input-mode.js.map +1 -0
- package/dist/browser/inputs/FileDropTarget.js +24 -9
- package/dist/browser/inputs/FileDropTarget.js.map +1 -1
- package/dist/browser/inputs/FileInputs.js +2 -2
- package/dist/browser/inputs/FileInputs.js.map +1 -1
- package/dist/browser/inputs/SelectChip.js +9 -0
- package/dist/browser/inputs/SelectChip.js.map +1 -1
- package/dist/browser/inputs/emoji/EmojiPicker.js +13 -0
- package/dist/browser/inputs/emoji/EmojiPicker.js.map +1 -1
- package/dist/browser/inputs/file-drop.js.map +1 -1
- package/dist/browser/layout/DetailPanel.js +283 -197
- package/dist/browser/layout/DetailPanel.js.map +1 -1
- package/dist/browser/layout/Discussion.js +233 -185
- package/dist/browser/layout/Discussion.js.map +1 -1
- package/dist/browser/layout/TableOfContents.js +10 -2
- package/dist/browser/layout/TableOfContents.js.map +1 -1
- package/dist/browser/layout/detail-panel-messages.js +35 -0
- package/dist/browser/layout/detail-panel-messages.js.map +1 -0
- package/dist/browser/surfaces/Avatar.js +50 -20
- package/dist/browser/surfaces/Avatar.js.map +1 -1
- package/dist/browser/surfaces/AvatarStack.js +406 -0
- package/dist/browser/surfaces/AvatarStack.js.map +1 -0
- package/dist/browser/surfaces/avatar-messages.js +8 -2
- package/dist/browser/surfaces/avatar-messages.js.map +1 -1
- package/dist/browser/surfaces/index.js +1 -0
- package/dist/browser/surfaces/index.js.map +1 -1
- package/dist/ssr/actions/ContextMenu.js +21 -3
- package/dist/ssr/actions/ContextMenu.js.map +1 -1
- package/dist/ssr/actions/Dropdown.js +140 -72
- package/dist/ssr/actions/Dropdown.js.map +1 -1
- package/dist/ssr/actions/GestureMenu.js +52 -106
- package/dist/ssr/actions/GestureMenu.js.map +1 -1
- package/dist/ssr/actions/Toolbar.js +294 -14
- package/dist/ssr/actions/Toolbar.js.map +1 -1
- package/dist/ssr/actions/index.js.map +1 -1
- package/dist/ssr/actions/menu-rows.js +15 -0
- package/dist/ssr/actions/menu-rows.js.map +1 -0
- package/dist/ssr/actions/menu-sheet.js +138 -0
- package/dist/ssr/actions/menu-sheet.js.map +1 -0
- package/dist/ssr/actions/toolbar-messages.js +20 -0
- package/dist/ssr/actions/toolbar-messages.js.map +1 -0
- package/dist/ssr/chart-inspection.js +3 -0
- package/dist/ssr/chart-inspection.js.map +1 -0
- package/dist/ssr/chat/ChatComposer.js +263 -89
- package/dist/ssr/chat/ChatComposer.js.map +1 -1
- package/dist/ssr/chat/chat-messages.js +19 -1
- package/dist/ssr/chat/chat-messages.js.map +1 -1
- package/dist/ssr/chat/command-search.js +3 -0
- package/dist/ssr/chat/command-search.js.map +1 -1
- package/dist/ssr/chat/index.js +2 -0
- package/dist/ssr/chat/index.js.map +1 -1
- package/dist/ssr/chat/reaction-people.js +15 -0
- package/dist/ssr/chat/reaction-people.js.map +1 -0
- package/dist/ssr/content/Chart.js +6 -15
- package/dist/ssr/content/Chart.js.map +1 -1
- package/dist/ssr/content/ChartSnapshotView.js +7 -10
- package/dist/ssr/content/ChartSnapshotView.js.map +1 -1
- package/dist/ssr/content/MessageRow.js +98 -152
- package/dist/ssr/content/MessageRow.js.map +1 -1
- package/dist/ssr/content/ReactionBar.js +304 -0
- package/dist/ssr/content/ReactionBar.js.map +1 -0
- package/dist/ssr/content/chart-inspection-core.js +557 -0
- package/dist/ssr/content/chart-inspection-core.js.map +1 -0
- package/dist/ssr/content/chart-inspection.js +10 -445
- package/dist/ssr/content/chart-inspection.js.map +1 -1
- package/dist/ssr/content/chart-line-gaps.js +1 -1
- package/dist/ssr/content/chart-line-gaps.js.map +1 -1
- package/dist/ssr/content/chart-snapshot.js +1 -1
- package/dist/ssr/content/chart-snapshot.js.map +1 -1
- package/dist/ssr/content/index.js +1 -0
- package/dist/ssr/content/index.js.map +1 -1
- package/dist/ssr/feedback/dialog-core.js +135 -23
- package/dist/ssr/feedback/dialog-core.js.map +1 -1
- package/dist/ssr/index.js +1 -0
- package/dist/ssr/index.js.map +1 -1
- package/dist/ssr/input-mode.js +40 -0
- package/dist/ssr/input-mode.js.map +1 -0
- package/dist/ssr/inputs/FileDropTarget.js +17 -5
- package/dist/ssr/inputs/FileDropTarget.js.map +1 -1
- package/dist/ssr/inputs/FileInputs.js +2 -2
- package/dist/ssr/inputs/FileInputs.js.map +1 -1
- package/dist/ssr/inputs/SelectChip.js +9 -0
- package/dist/ssr/inputs/SelectChip.js.map +1 -1
- package/dist/ssr/inputs/emoji/EmojiPicker.js +12 -0
- package/dist/ssr/inputs/emoji/EmojiPicker.js.map +1 -1
- package/dist/ssr/inputs/file-drop.js.map +1 -1
- package/dist/ssr/layout/DetailPanel.js +112 -58
- package/dist/ssr/layout/DetailPanel.js.map +1 -1
- package/dist/ssr/layout/Discussion.js +63 -36
- package/dist/ssr/layout/Discussion.js.map +1 -1
- package/dist/ssr/layout/TableOfContents.js +10 -2
- package/dist/ssr/layout/TableOfContents.js.map +1 -1
- package/dist/ssr/layout/detail-panel-messages.js +35 -0
- package/dist/ssr/layout/detail-panel-messages.js.map +1 -0
- package/dist/ssr/surfaces/Avatar.js +20 -2
- package/dist/ssr/surfaces/Avatar.js.map +1 -1
- package/dist/ssr/surfaces/AvatarStack.js +286 -0
- package/dist/ssr/surfaces/AvatarStack.js.map +1 -0
- package/dist/ssr/surfaces/avatar-messages.js +8 -2
- package/dist/ssr/surfaces/avatar-messages.js.map +1 -1
- package/dist/ssr/surfaces/index.js +1 -0
- package/dist/ssr/surfaces/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types/actions/ContextMenu.d.ts +8 -0
- package/dist/types/actions/Dropdown.d.ts +12 -5
- package/dist/types/actions/GestureMenu.d.ts +6 -4
- package/dist/types/actions/Toolbar.d.ts +20 -0
- package/dist/types/actions/index.d.ts +1 -1
- package/dist/types/actions/menu-rows.d.ts +5 -0
- package/dist/types/actions/menu-sheet.d.ts +22 -0
- package/dist/types/actions/toolbar-messages.d.ts +8 -0
- package/dist/types/chart-inspection.d.ts +2 -0
- package/dist/types/chat/ChatComposer.d.ts +7 -0
- package/dist/types/chat/chat-messages.d.ts +10 -2
- package/dist/types/chat/command-search.d.ts +2 -0
- package/dist/types/chat/index.d.ts +2 -0
- package/dist/types/chat/reaction-people.d.ts +9 -0
- package/dist/types/content/Chart.d.ts +2 -2
- package/dist/types/content/MessageRow.d.ts +3 -10
- package/dist/types/content/ReactionBar.d.ts +32 -0
- package/dist/types/content/chart-inspection-core.d.ts +61 -0
- package/dist/types/content/chart-inspection.d.ts +4 -20
- package/dist/types/content/chart-snapshot.d.ts +1 -1
- package/dist/types/content/index.d.ts +2 -1
- package/dist/types/feedback/dialog-core.d.ts +16 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/input-mode.d.ts +7 -0
- package/dist/types/inputs/FileDropTarget.d.ts +6 -3
- package/dist/types/inputs/SelectChip.d.ts +2 -0
- package/dist/types/inputs/file-drop.d.ts +2 -0
- package/dist/types/layout/DetailPanel.d.ts +11 -0
- package/dist/types/layout/Discussion.d.ts +8 -0
- package/dist/types/layout/TableOfContents.d.ts +2 -0
- package/dist/types/layout/detail-panel-messages.d.ts +15 -0
- package/dist/types/surfaces/Avatar.d.ts +12 -0
- package/dist/types/surfaces/AvatarStack.d.ts +41 -0
- package/dist/types/surfaces/avatar-messages.d.ts +3 -0
- package/dist/types/surfaces/index.d.ts +3 -1
- package/package.json +6 -1
|
@@ -13,54 +13,50 @@ var _tmpl$ = ["<span", " style=\"", "\">", "</span>"],
|
|
|
13
13
|
_tmpl$7 = ["<time class=\"k2b-message-row__time\"", ">", "</time>"],
|
|
14
14
|
_tmpl$8 = "<i class=\"ti ti-arrow-back-up\" aria-hidden=\"true\"></i>",
|
|
15
15
|
_tmpl$9 = ["<span class=\"k2b-message-row__quote-text\"><span class=\"k2b-sr-only\">", " </span><span class=\"k2b-message-row__quote-author\">", "</span> ", "</span>"],
|
|
16
|
-
_tmpl$0 = ["<
|
|
17
|
-
_tmpl$1 =
|
|
18
|
-
_tmpl$10 = ["<
|
|
19
|
-
_tmpl$11 = "<span class=\"k2b-message-row__media-
|
|
20
|
-
_tmpl$12 = ["<span class=\"k2b-message-
|
|
21
|
-
_tmpl$13 = ["<
|
|
22
|
-
_tmpl$14 = ["<
|
|
23
|
-
_tmpl$15 = ["<div class=\"k2b-message-
|
|
24
|
-
_tmpl$16 = ["<div class=\"k2b-message-
|
|
25
|
-
_tmpl$17 = ["<
|
|
26
|
-
_tmpl$18 = ["<div
|
|
27
|
-
_tmpl$19 = ["<
|
|
28
|
-
_tmpl$20 = ["<div class=\"k2b-message-
|
|
29
|
-
_tmpl$21 = ["<div class=\"k2b-message-
|
|
30
|
-
_tmpl$22 = ["<div class=\"k2b-message-
|
|
31
|
-
_tmpl$23 = ["<div class=\"k2b-message-
|
|
32
|
-
_tmpl$24 = ["<div class=\"k2b-message-
|
|
33
|
-
_tmpl$25 = ["<div class=\"k2b-message-
|
|
34
|
-
_tmpl$26 = ["<div class=\"k2b-message-
|
|
35
|
-
_tmpl$27 = ["<div class=\"k2b-message-
|
|
36
|
-
_tmpl$28 = ["<
|
|
37
|
-
_tmpl$29 = ["<div
|
|
38
|
-
_tmpl$30 = ["<
|
|
39
|
-
_tmpl$31 = ["<
|
|
40
|
-
_tmpl$32 = ["<
|
|
41
|
-
_tmpl$33 =
|
|
42
|
-
_tmpl$34 = ["<span class=\"k2b-message-
|
|
43
|
-
_tmpl$35 = "<span class=\"k2b-message-
|
|
44
|
-
_tmpl$36 = ["<span class=\"k2b-message-row__file-
|
|
45
|
-
_tmpl$37 = ["<span class=\"k2b-message-
|
|
46
|
-
_tmpl$38 = ["<
|
|
47
|
-
_tmpl$39 = ["<
|
|
48
|
-
_tmpl$40 =
|
|
49
|
-
_tmpl$41 = ["<
|
|
50
|
-
_tmpl$42 =
|
|
51
|
-
_tmpl$43 = "<i class=\"ti ti-
|
|
52
|
-
_tmpl$44 = "<
|
|
53
|
-
_tmpl$45 =
|
|
54
|
-
_tmpl$46 = "<
|
|
55
|
-
_tmpl$47 = "<i class=\"ti ti-
|
|
56
|
-
_tmpl$48 = ["<span class=\"k2b-
|
|
57
|
-
_tmpl$49 = "<i
|
|
58
|
-
_tmpl$50 = ["<
|
|
59
|
-
_tmpl$51 = "<
|
|
60
|
-
_tmpl$52 = ["<span class=\"k2b-message-row__line-text\">", "</span>"],
|
|
61
|
-
_tmpl$53 = ["<i", " aria-hidden=\"true\"></i>"],
|
|
62
|
-
_tmpl$54 = ["<time", ">", "</time>"],
|
|
63
|
-
_tmpl$55 = ["<div", ">", "<span>", "</span>", "</div>"];
|
|
16
|
+
_tmpl$0 = ["<img", " alt", " loading=\"lazy\" decoding=\"async\">"],
|
|
17
|
+
_tmpl$1 = "<span class=\"k2b-message-row__media-play\" aria-hidden=\"true\"><i class=\"ti ti-player-play\"></i></span>",
|
|
18
|
+
_tmpl$10 = ["<span class=\"k2b-message-row__media-duration\" aria-hidden=\"true\">", "</span>"],
|
|
19
|
+
_tmpl$11 = ["<span class=\"k2b-message-row__media-more\" aria-hidden=\"true\">+", "</span>"],
|
|
20
|
+
_tmpl$12 = ["<span class=\"k2b-message-row__avatar\" aria-hidden=\"true\">", "</span>"],
|
|
21
|
+
_tmpl$13 = ["<div class=\"k2b-message-row__gutter\">", "</div>"],
|
|
22
|
+
_tmpl$14 = ["<div class=\"k2b-message-row__meta\">", "</div>"],
|
|
23
|
+
_tmpl$15 = ["<div class=\"k2b-message-row__marker\"><i class=\"ti ti-arrow-forward-up\" aria-hidden=\"true\"></i><span>", "</span></div>"],
|
|
24
|
+
_tmpl$16 = ["<div", " class=\"k2b-content-markdown k2b-message-row__text\" data-heading-scale=\"compact\"", ">", "</div>"],
|
|
25
|
+
_tmpl$17 = ["<span class=\"k2b-message-row__edited\">", "</span>"],
|
|
26
|
+
_tmpl$18 = ["<div class=\"k2b-message-row__more-line\">", "", "</div>"],
|
|
27
|
+
_tmpl$19 = ["<div class=\"k2b-message-row__bubble\"", ">", "</div>"],
|
|
28
|
+
_tmpl$20 = ["<div class=\"k2b-message-row__marker\"><i class=\"ti ti-pencil\" aria-hidden=\"true\"></i><span class=\"k2b-message-row__edited\">", "</span></div>"],
|
|
29
|
+
_tmpl$21 = ["<div class=\"k2b-message-row__media\" role=\"group\"", " style=\"", "\">", "</div>"],
|
|
30
|
+
_tmpl$22 = ["<div class=\"k2b-message-row__files\">", "</div>"],
|
|
31
|
+
_tmpl$23 = ["<div class=\"k2b-message-row__slot\" data-gesture-ignore>", "</div>"],
|
|
32
|
+
_tmpl$24 = ["<div class=\"k2b-message-row__line\">", "</div>"],
|
|
33
|
+
_tmpl$25 = ["<div class=\"k2b-message-row__footer\">", "", "</div>"],
|
|
34
|
+
_tmpl$26 = ["<div class=\"k2b-message-row__actions\" role=\"group\"", ">", "</div>"],
|
|
35
|
+
_tmpl$27 = ["<div", ">", "<div class=\"k2b-message-row__body\">", "", "", "", "", "", "", "", "", "", "", "</div>", "</div>"],
|
|
36
|
+
_tmpl$28 = ["<span class=\"k2b-sr-only\">", ", ", ": </span>"],
|
|
37
|
+
_tmpl$29 = ["<div class=\"k2b-message-row__meta\"><span class=\"k2b-sr-only\">", ", </span><time class=\"k2b-message-row__time\"", ">", "</time></div>"],
|
|
38
|
+
_tmpl$30 = ["<div class=\"k2b-message-row__quote\">", "</div>"],
|
|
39
|
+
_tmpl$31 = ["<button type=\"button\" class=\"k2b-message-row__quote\">", "</button>"],
|
|
40
|
+
_tmpl$32 = ["<span class=\"k2b-message-row__deleted\"><i class=\"ti ti-message-off\" aria-hidden=\"true\"></i>", "</span>"],
|
|
41
|
+
_tmpl$33 = "<span class=\"k2b-message-row__writing\"><span class=\"k2b-chat-progress-dots\" aria-hidden=\"true\"><span></span><span></span><span></span></span></span>",
|
|
42
|
+
_tmpl$34 = ["<span class=\"k2b-message-row__file-icon\" aria-hidden=\"true\"><i", "></i></span>"],
|
|
43
|
+
_tmpl$35 = ["<span class=\"k2b-message-row__file-detail\">", "</span>"],
|
|
44
|
+
_tmpl$36 = ["<span class=\"k2b-message-row__file-copy\"><span class=\"k2b-message-row__file-name\">", "</span>", "</span>"],
|
|
45
|
+
_tmpl$37 = ["<span class=\"k2b-message-row__thread-people\" aria-hidden=\"true\">", "</span>"],
|
|
46
|
+
_tmpl$38 = ["<button type=\"button\" class=\"k2b-message-row__thread\">", "<span class=\"k2b-message-row__thread-count\">", "</span>", "</button>"],
|
|
47
|
+
_tmpl$39 = ["<time class=\"k2b-message-row__thread-time\"", ">", "</time>"],
|
|
48
|
+
_tmpl$40 = "<i class=\"ti ti-clock\" aria-hidden=\"true\"></i>",
|
|
49
|
+
_tmpl$41 = ["<span>", "</span>"],
|
|
50
|
+
_tmpl$42 = "<i class=\"ti ti-alert-circle\" aria-hidden=\"true\"></i>",
|
|
51
|
+
_tmpl$43 = "<i class=\"ti ti-check\" aria-hidden=\"true\"></i>",
|
|
52
|
+
_tmpl$44 = ["<span class=\"k2b-sr-only\">", "</span>"],
|
|
53
|
+
_tmpl$45 = "<i class=\"ti ti-checks\" aria-hidden=\"true\"></i>",
|
|
54
|
+
_tmpl$46 = ["<span class=\"k2b-message-row__receipt\">", "</span>"],
|
|
55
|
+
_tmpl$47 = "<i class=\"ti ti-loader-2 k2b-spin\" aria-hidden=\"true\"></i>",
|
|
56
|
+
_tmpl$48 = ["<span class=\"k2b-message-row__line-text\">", "</span>"],
|
|
57
|
+
_tmpl$49 = ["<i", " aria-hidden=\"true\"></i>"],
|
|
58
|
+
_tmpl$50 = ["<time", ">", "</time>"],
|
|
59
|
+
_tmpl$51 = ["<div", ">", "<span>", "</span>", "</div>"];
|
|
64
60
|
import { fileIcons } from "@k2b/stdlib";
|
|
65
61
|
import { createMemo, createSignal, createUniqueId, For, onCleanup, Show } from "solid-js";
|
|
66
62
|
import { Button, IconButton } from "../actions/Button";
|
|
@@ -69,9 +65,9 @@ import { useChatMessages } from "../chat/chat-messages";
|
|
|
69
65
|
import { announce } from "../feedback/announce";
|
|
70
66
|
import { useLocale } from "../intl/locale";
|
|
71
67
|
import { useUiMessages } from "../intl/messages";
|
|
72
|
-
import { ScrollArea } from "../layout/ScrollArea";
|
|
73
68
|
import { Avatar } from "../surfaces/Avatar";
|
|
74
69
|
import { createSafeMarked, createSafeRenderer, escapeHtml } from "./MarkdownView";
|
|
70
|
+
import { ReactionBar } from "./ReactionBar";
|
|
75
71
|
|
|
76
72
|
/** Messages by the same author within this time continue a group. */
|
|
77
73
|
const GROUP_WINDOW_MS = 5 * 60_000;
|
|
@@ -100,6 +96,9 @@ const MEDIA_SHOWN = 4;
|
|
|
100
96
|
/** A single image keeps its own aspect ratio within these bounds; beyond them it is cropped to fit. */
|
|
101
97
|
const MEDIA_RATIO_MIN = 0.5;
|
|
102
98
|
const MEDIA_RATIO_MAX = 3;
|
|
99
|
+
|
|
100
|
+
/** Reaction labels are read by screen readers and shown in the names hint. */
|
|
101
|
+
|
|
103
102
|
const timestamp = value => value instanceof Date ? value.getTime() : new Date(value).getTime();
|
|
104
103
|
|
|
105
104
|
/**
|
|
@@ -293,9 +292,6 @@ export function MessageRow(props) {
|
|
|
293
292
|
const groupStart = () => props.groupStart ?? true;
|
|
294
293
|
const hasLine = () => props.progress !== undefined || props.status !== undefined || props.receipt !== undefined;
|
|
295
294
|
const reactions = () => props.deleted ? undefined : props.reactions;
|
|
296
|
-
// Chips follow their keys, so a chip keeps its element, and focus, when the caller passes new objects for it.
|
|
297
|
-
const reactionKeys = createMemo(() => reactions()?.map(reaction => reaction.key) ?? []);
|
|
298
|
-
const reactionByKey = createMemo(() => new Map(reactions()?.map(reaction => [reaction.key, reaction])));
|
|
299
295
|
const hasFooter = () => hasLine() || reactions() !== undefined;
|
|
300
296
|
const writing = () => props.progress !== undefined && !props.deleted && props.text.trim() === "";
|
|
301
297
|
const hasBubble = () => props.deleted || writing() || props.text.trim() !== "";
|
|
@@ -341,25 +337,6 @@ export function MessageRow(props) {
|
|
|
341
337
|
const mediaLabel = (item, more) => [item.alt, item.kind === "video" ? [chatMessages().messageVideo, item.duration].filter(Boolean).join(" ") : "", more > 0 ? chatMessages().messageMoreAttachments({
|
|
342
338
|
count: more
|
|
343
339
|
}) : ""].filter(Boolean).join(", ");
|
|
344
|
-
|
|
345
|
-
/** A toggle button, or with no `onToggleReaction` a labelled image that also says whether the reader reacted. */
|
|
346
|
-
const reactionChip = (key, reaction) => {
|
|
347
|
-
const label = own => chatMessages().messageReaction({
|
|
348
|
-
emoji: reaction().emoji,
|
|
349
|
-
count: reaction().count,
|
|
350
|
-
names: reaction().label,
|
|
351
|
-
own
|
|
352
|
-
});
|
|
353
|
-
return _$createComponent(Show, {
|
|
354
|
-
get when() {
|
|
355
|
-
return props.onToggleReaction;
|
|
356
|
-
},
|
|
357
|
-
get fallback() {
|
|
358
|
-
return _$ssr(_tmpl$0, _$ssrAttribute("aria-label", _$escape(label(Boolean(reaction().own)), true), false) + _$ssrAttribute("title", _$escape(reaction().label, true), false) + _$ssrAttribute("data-own", reaction().own ? "" : _$escape(undefined, true), false), _$escape(reaction().emoji), _$escape(reaction().count));
|
|
359
|
-
},
|
|
360
|
-
children: toggle => _$ssr(_tmpl$1, _$ssrAttribute("aria-pressed", reaction().own ? "true" : "false", false) + _$ssrAttribute("aria-label", _$escape(label(false), true), false) + _$ssrAttribute("title", _$escape(reaction().label, true), false) + _$ssrAttribute("data-own", reaction().own ? "" : _$escape(undefined, true), false), _$escape(reaction().emoji), _$escape(reaction().count))
|
|
361
|
-
});
|
|
362
|
-
};
|
|
363
340
|
const mediaItem = (item, index) => {
|
|
364
341
|
const more = () => index() === shownMedia().length - 1 ? hiddenMedia() : 0;
|
|
365
342
|
return _$createComponent(AttachmentTarget, {
|
|
@@ -379,17 +356,17 @@ export function MessageRow(props) {
|
|
|
379
356
|
return item.href;
|
|
380
357
|
},
|
|
381
358
|
get children() {
|
|
382
|
-
return [_$ssr(_tmpl$
|
|
359
|
+
return [_$ssr(_tmpl$0, _$ssrAttribute("src", _$escape(attachmentUrl(item.src, true), true), false), _$ssrAttribute("width", item.width > 0 ? _$escape(item.width, true) : _$escape(undefined, true), false) + _$ssrAttribute("height", item.height > 0 ? _$escape(item.height, true) : _$escape(undefined, true), false)), _$createComponent(Show, {
|
|
383
360
|
get when() {
|
|
384
361
|
return item.kind === "video";
|
|
385
362
|
},
|
|
386
363
|
get children() {
|
|
387
|
-
return [_$ssr(_tmpl$
|
|
364
|
+
return [_$ssr(_tmpl$1), _$createComponent(Show, {
|
|
388
365
|
get when() {
|
|
389
366
|
return item.duration;
|
|
390
367
|
},
|
|
391
368
|
get children() {
|
|
392
|
-
return _$ssr(_tmpl$
|
|
369
|
+
return _$ssr(_tmpl$10, _$escape(item.duration));
|
|
393
370
|
}
|
|
394
371
|
})];
|
|
395
372
|
}
|
|
@@ -398,23 +375,23 @@ export function MessageRow(props) {
|
|
|
398
375
|
return more() > 0;
|
|
399
376
|
},
|
|
400
377
|
get children() {
|
|
401
|
-
return _$ssr(_tmpl$
|
|
378
|
+
return _$ssr(_tmpl$11, _$escape(more()));
|
|
402
379
|
}
|
|
403
380
|
})];
|
|
404
381
|
}
|
|
405
382
|
});
|
|
406
383
|
};
|
|
407
|
-
return _$ssr(_tmpl$
|
|
384
|
+
return _$ssr(_tmpl$27, _$ssrAttribute("class", props.class ? `k2b-message-row ${_$escape(props.class, true)}` : "k2b-message-row", false) + _$ssrAttribute("data-own", props.own ? "" : _$escape(undefined, true), false) + _$ssrAttribute("data-group-start", groupStart() ? "" : _$escape(undefined, true), false) + _$ssrAttribute("data-status", _$escape(props.status, true), false) + _$ssrAttribute("data-media", media().length > 0 ? "" : _$escape(undefined, true), false), _$escape(_$createComponent(Show, {
|
|
408
385
|
get when() {
|
|
409
386
|
return !props.own;
|
|
410
387
|
},
|
|
411
388
|
get children() {
|
|
412
|
-
return _$ssr(_tmpl$
|
|
389
|
+
return _$ssr(_tmpl$13, _$escape(_$createComponent(Show, {
|
|
413
390
|
get when() {
|
|
414
391
|
return groupStart();
|
|
415
392
|
},
|
|
416
393
|
get children() {
|
|
417
|
-
return _$ssr(_tmpl$
|
|
394
|
+
return _$ssr(_tmpl$12, _$escape(_$createComponent(Avatar, {
|
|
418
395
|
get name() {
|
|
419
396
|
return props.author.name;
|
|
420
397
|
},
|
|
@@ -434,7 +411,7 @@ export function MessageRow(props) {
|
|
|
434
411
|
return groupStart();
|
|
435
412
|
},
|
|
436
413
|
get fallback() {
|
|
437
|
-
return _$ssr(_tmpl$
|
|
414
|
+
return _$ssr(_tmpl$28, _$escape(props.author.name), _$escape(props.time));
|
|
438
415
|
},
|
|
439
416
|
get children() {
|
|
440
417
|
return _$createComponent(Show, {
|
|
@@ -442,10 +419,10 @@ export function MessageRow(props) {
|
|
|
442
419
|
return !props.own;
|
|
443
420
|
},
|
|
444
421
|
get fallback() {
|
|
445
|
-
return _$ssr(_tmpl$
|
|
422
|
+
return _$ssr(_tmpl$29, _$escape(props.author.name), _$ssrAttribute("datetime", _$escape(dateTimeOf(props.dateTime), true), false), _$escape(props.time));
|
|
446
423
|
},
|
|
447
424
|
get children() {
|
|
448
|
-
return _$ssr(_tmpl$
|
|
425
|
+
return _$ssr(_tmpl$14, _$escape(header()));
|
|
449
426
|
}
|
|
450
427
|
});
|
|
451
428
|
}
|
|
@@ -454,7 +431,7 @@ export function MessageRow(props) {
|
|
|
454
431
|
return _$memo(() => !!content())() && props.forwarded;
|
|
455
432
|
},
|
|
456
433
|
get children() {
|
|
457
|
-
return _$ssr(_tmpl$
|
|
434
|
+
return _$ssr(_tmpl$15, _$escape(chatMessages().messageForwarded));
|
|
458
435
|
}
|
|
459
436
|
})), _$escape(_$createComponent(Show, {
|
|
460
437
|
get when() {
|
|
@@ -465,21 +442,21 @@ export function MessageRow(props) {
|
|
|
465
442
|
return value().onSelect;
|
|
466
443
|
},
|
|
467
444
|
get fallback() {
|
|
468
|
-
return _$ssr(_tmpl$
|
|
445
|
+
return _$ssr(_tmpl$30, _$escape(quote(value())));
|
|
469
446
|
},
|
|
470
|
-
children: select => _$ssr(_tmpl$
|
|
447
|
+
children: select => _$ssr(_tmpl$31, _$escape(quote(value())))
|
|
471
448
|
})
|
|
472
449
|
})), _$escape(_$createComponent(Show, {
|
|
473
450
|
get when() {
|
|
474
451
|
return hasBubble();
|
|
475
452
|
},
|
|
476
453
|
get children() {
|
|
477
|
-
return _$ssr(_tmpl$
|
|
454
|
+
return _$ssr(_tmpl$19, _$ssrAttribute("data-deleted", props.deleted ? "" : _$escape(undefined, true), false) + _$ssrAttribute("aria-busy", props.progress && !props.deleted ? "true" : _$escape(undefined, true), false), _$escape(_$createComponent(Show, {
|
|
478
455
|
get when() {
|
|
479
456
|
return !props.deleted;
|
|
480
457
|
},
|
|
481
458
|
get fallback() {
|
|
482
|
-
return _$ssr(_tmpl$
|
|
459
|
+
return _$ssr(_tmpl$32, _$escape(chatMessages().messageDeleted));
|
|
483
460
|
},
|
|
484
461
|
get children() {
|
|
485
462
|
return _$createComponent(Show, {
|
|
@@ -487,15 +464,15 @@ export function MessageRow(props) {
|
|
|
487
464
|
return !writing();
|
|
488
465
|
},
|
|
489
466
|
get fallback() {
|
|
490
|
-
return _$ssr(_tmpl$
|
|
467
|
+
return _$ssr(_tmpl$33);
|
|
491
468
|
},
|
|
492
469
|
get children() {
|
|
493
|
-
return [_$ssr(_tmpl$
|
|
470
|
+
return [_$ssr(_tmpl$16, _$ssrAttribute("id", _$escape(textId, true), false), _$ssrAttribute("data-collapsed", collapsed() ? "" : _$escape(undefined, true), false), rendered().html), _$createComponent(Show, {
|
|
494
471
|
get when() {
|
|
495
472
|
return collapsible();
|
|
496
473
|
},
|
|
497
474
|
get children() {
|
|
498
|
-
return _$ssr(_tmpl$
|
|
475
|
+
return _$ssr(_tmpl$18, _$escape(_$createComponent(Button, {
|
|
499
476
|
variant: "text",
|
|
500
477
|
size: "xs",
|
|
501
478
|
"class": "k2b-message-row__more",
|
|
@@ -512,7 +489,7 @@ export function MessageRow(props) {
|
|
|
512
489
|
return props.edited;
|
|
513
490
|
},
|
|
514
491
|
get children() {
|
|
515
|
-
return _$ssr(_tmpl$
|
|
492
|
+
return _$ssr(_tmpl$17, _$escape(chatMessages().messageEdited));
|
|
516
493
|
}
|
|
517
494
|
})));
|
|
518
495
|
}
|
|
@@ -527,14 +504,14 @@ export function MessageRow(props) {
|
|
|
527
504
|
return _$memo(() => !!(content() && props.edited))() && !hasBubble();
|
|
528
505
|
},
|
|
529
506
|
get children() {
|
|
530
|
-
return _$ssr(_tmpl$
|
|
507
|
+
return _$ssr(_tmpl$20, _$escape(chatMessages().messageEdited));
|
|
531
508
|
}
|
|
532
509
|
})), _$escape(_$createComponent(Show, {
|
|
533
510
|
get when() {
|
|
534
511
|
return media().length > 0;
|
|
535
512
|
},
|
|
536
513
|
get children() {
|
|
537
|
-
return _$ssr(_tmpl$
|
|
514
|
+
return _$ssr(_tmpl$21, _$ssrAttribute("aria-label", _$escape(chatMessages().attachments, true), false) + _$ssrAttribute("data-count", _$escape(Math.min(media().length, MEDIA_SHOWN), true), false), _$ssrStyle(media().length === 1 ? {
|
|
538
515
|
width: mediaWidth(media()[0])
|
|
539
516
|
} : undefined), _$escape(_$createComponent(For, {
|
|
540
517
|
get each() {
|
|
@@ -548,7 +525,7 @@ export function MessageRow(props) {
|
|
|
548
525
|
return files().length > 0;
|
|
549
526
|
},
|
|
550
527
|
get children() {
|
|
551
|
-
return _$ssr(_tmpl$
|
|
528
|
+
return _$ssr(_tmpl$22, _$escape(_$createComponent(For, {
|
|
552
529
|
get each() {
|
|
553
530
|
return files();
|
|
554
531
|
},
|
|
@@ -561,12 +538,12 @@ export function MessageRow(props) {
|
|
|
561
538
|
return file.href;
|
|
562
539
|
},
|
|
563
540
|
get children() {
|
|
564
|
-
return [_$ssr(_tmpl$
|
|
541
|
+
return [_$ssr(_tmpl$34, _$ssrAttribute("class", _$escape(fileIcon(file), true), false)), _$ssr(_tmpl$36, _$escape(file.name), _$escape(_$createComponent(Show, {
|
|
565
542
|
get when() {
|
|
566
543
|
return file.detail;
|
|
567
544
|
},
|
|
568
545
|
get children() {
|
|
569
|
-
return _$ssr(_tmpl$
|
|
546
|
+
return _$ssr(_tmpl$35, _$escape(file.detail));
|
|
570
547
|
}
|
|
571
548
|
})))];
|
|
572
549
|
}
|
|
@@ -578,25 +555,25 @@ export function MessageRow(props) {
|
|
|
578
555
|
return _$memo(() => !!content())() && props.linkPreview;
|
|
579
556
|
},
|
|
580
557
|
get children() {
|
|
581
|
-
return _$ssr(_tmpl$
|
|
558
|
+
return _$ssr(_tmpl$23, _$escape(props.linkPreview));
|
|
582
559
|
}
|
|
583
560
|
})), _$escape(_$createComponent(Show, {
|
|
584
561
|
get when() {
|
|
585
562
|
return _$memo(() => !!content())() && props.card;
|
|
586
563
|
},
|
|
587
564
|
get children() {
|
|
588
|
-
return _$ssr(_tmpl$
|
|
565
|
+
return _$ssr(_tmpl$23, _$escape(props.card));
|
|
589
566
|
}
|
|
590
567
|
})), _$escape(_$createComponent(Show, {
|
|
591
568
|
get when() {
|
|
592
569
|
return props.thread;
|
|
593
570
|
},
|
|
594
|
-
children: thread => _$ssr(_tmpl$
|
|
571
|
+
children: thread => _$ssr(_tmpl$38, _$escape(_$createComponent(Show, {
|
|
595
572
|
get when() {
|
|
596
573
|
return (thread().participants?.length ?? 0) > 0;
|
|
597
574
|
},
|
|
598
575
|
get children() {
|
|
599
|
-
return _$ssr(_tmpl$
|
|
576
|
+
return _$ssr(_tmpl$37, _$escape(_$createComponent(For, {
|
|
600
577
|
get each() {
|
|
601
578
|
return thread().participants?.slice(0, 3);
|
|
602
579
|
},
|
|
@@ -620,7 +597,7 @@ export function MessageRow(props) {
|
|
|
620
597
|
get when() {
|
|
621
598
|
return thread().lastReply;
|
|
622
599
|
},
|
|
623
|
-
children: time => _$ssr(_tmpl$
|
|
600
|
+
children: time => _$ssr(_tmpl$39, _$ssrAttribute("datetime", _$escape(dateTimeOf(thread().lastReplyDateTime), true), false), _$escape(chatMessages().messageLastReply({
|
|
624
601
|
time: time()
|
|
625
602
|
})))
|
|
626
603
|
})))
|
|
@@ -629,58 +606,27 @@ export function MessageRow(props) {
|
|
|
629
606
|
return hasFooter();
|
|
630
607
|
},
|
|
631
608
|
get children() {
|
|
632
|
-
return _$ssr(_tmpl$
|
|
609
|
+
return _$ssr(_tmpl$25, _$escape(_$createComponent(Show, {
|
|
633
610
|
get when() {
|
|
634
611
|
return reactions();
|
|
635
612
|
},
|
|
636
|
-
children: list => _$
|
|
637
|
-
get
|
|
638
|
-
return list()
|
|
613
|
+
children: list => _$createComponent(ReactionBar, {
|
|
614
|
+
get reactions() {
|
|
615
|
+
return list();
|
|
639
616
|
},
|
|
640
|
-
get
|
|
641
|
-
return
|
|
642
|
-
orientation: "horizontal",
|
|
643
|
-
"class": "k2b-message-row__reaction-list",
|
|
644
|
-
get tabindex() {
|
|
645
|
-
return props.onToggleReaction ? undefined : 0;
|
|
646
|
-
},
|
|
647
|
-
get children() {
|
|
648
|
-
return _$createComponent(For, {
|
|
649
|
-
get each() {
|
|
650
|
-
return reactionKeys();
|
|
651
|
-
},
|
|
652
|
-
children: key => _$createComponent(Show, {
|
|
653
|
-
get when() {
|
|
654
|
-
return reactionByKey().get(key);
|
|
655
|
-
},
|
|
656
|
-
children: reaction => reactionChip(key, reaction)
|
|
657
|
-
})
|
|
658
|
-
});
|
|
659
|
-
}
|
|
660
|
-
});
|
|
661
|
-
}
|
|
662
|
-
})), _$escape(_$createComponent(Show, {
|
|
663
|
-
get when() {
|
|
664
|
-
return props.onAddReaction;
|
|
617
|
+
get onToggle() {
|
|
618
|
+
return props.onToggleReaction;
|
|
665
619
|
},
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
size: "xs",
|
|
671
|
-
"class": "k2b-message-row__react",
|
|
672
|
-
onClick: event => add()(event.currentTarget),
|
|
673
|
-
get children() {
|
|
674
|
-
return _$ssr(_tmpl$43);
|
|
675
|
-
}
|
|
676
|
-
})
|
|
677
|
-
})))
|
|
620
|
+
get onAdd() {
|
|
621
|
+
return props.onAddReaction;
|
|
622
|
+
}
|
|
623
|
+
})
|
|
678
624
|
})), _$escape(_$createComponent(Show, {
|
|
679
625
|
get when() {
|
|
680
626
|
return hasLine();
|
|
681
627
|
},
|
|
682
628
|
get children() {
|
|
683
|
-
return _$ssr(_tmpl$
|
|
629
|
+
return _$ssr(_tmpl$24, _$escape(_$createComponent(Show, {
|
|
684
630
|
get when() {
|
|
685
631
|
return props.progress;
|
|
686
632
|
},
|
|
@@ -690,14 +636,14 @@ export function MessageRow(props) {
|
|
|
690
636
|
return props.status === "pending";
|
|
691
637
|
},
|
|
692
638
|
get children() {
|
|
693
|
-
return [_$ssr(_tmpl$
|
|
639
|
+
return [_$ssr(_tmpl$40), _$ssr(_tmpl$41, _$escape(chatMessages().sending))];
|
|
694
640
|
}
|
|
695
641
|
}), _$createComponent(Show, {
|
|
696
642
|
get when() {
|
|
697
643
|
return props.status === "failed";
|
|
698
644
|
},
|
|
699
645
|
get children() {
|
|
700
|
-
return [_$ssr(_tmpl$
|
|
646
|
+
return [_$ssr(_tmpl$42), _$ssr(_tmpl$41, _$escape(chatMessages().messageNotSent)), _$createComponent(Show, {
|
|
701
647
|
get when() {
|
|
702
648
|
return props.onRetry;
|
|
703
649
|
},
|
|
@@ -726,16 +672,16 @@ export function MessageRow(props) {
|
|
|
726
672
|
return props.status === "sent";
|
|
727
673
|
},
|
|
728
674
|
get children() {
|
|
729
|
-
return [_$ssr(_tmpl$
|
|
675
|
+
return [_$ssr(_tmpl$43), _$ssr(_tmpl$44, _$escape(chatMessages().messageSent))];
|
|
730
676
|
}
|
|
731
677
|
});
|
|
732
678
|
},
|
|
733
|
-
children: receipt => [_$ssr(_tmpl$
|
|
679
|
+
children: receipt => [_$ssr(_tmpl$45), _$ssr(_tmpl$46, _$escape(receipt()))]
|
|
734
680
|
});
|
|
735
681
|
}
|
|
736
682
|
})];
|
|
737
683
|
},
|
|
738
|
-
children: progress => [_$ssr(_tmpl$
|
|
684
|
+
children: progress => [_$ssr(_tmpl$47), _$ssr(_tmpl$48, _$escape(progress().status)), _$createComponent(Show, {
|
|
739
685
|
get when() {
|
|
740
686
|
return progress().onStop;
|
|
741
687
|
},
|
|
@@ -757,7 +703,7 @@ export function MessageRow(props) {
|
|
|
757
703
|
return (props.actions?.length ?? 0) > 0;
|
|
758
704
|
},
|
|
759
705
|
get children() {
|
|
760
|
-
return _$ssr(_tmpl$
|
|
706
|
+
return _$ssr(_tmpl$26, _$ssrAttribute("aria-label", _$escape(chatMessages().messageActions, true), false), _$escape(_$createComponent(For, {
|
|
761
707
|
get each() {
|
|
762
708
|
return props.actions;
|
|
763
709
|
},
|
|
@@ -771,7 +717,7 @@ export function MessageRow(props) {
|
|
|
771
717
|
},
|
|
772
718
|
onClick: () => action.onSelect(),
|
|
773
719
|
get children() {
|
|
774
|
-
return _$ssr(_tmpl$
|
|
720
|
+
return _$ssr(_tmpl$49, _$ssrAttribute("class", _$escape(action.icon, true), false));
|
|
775
721
|
}
|
|
776
722
|
})
|
|
777
723
|
})));
|
|
@@ -781,17 +727,17 @@ export function MessageRow(props) {
|
|
|
781
727
|
|
|
782
728
|
/** A quiet, centered line for something that happened in the conversation, such as a person joining. */
|
|
783
729
|
export function MessageSystemRow(props) {
|
|
784
|
-
return _$ssr(_tmpl$
|
|
730
|
+
return _$ssr(_tmpl$51, _$ssrAttribute("class", props.class ? `k2b-message-system-row ${_$escape(props.class, true)}` : "k2b-message-system-row", false), _$escape(_$createComponent(Show, {
|
|
785
731
|
get when() {
|
|
786
732
|
return props.icon;
|
|
787
733
|
},
|
|
788
|
-
children: icon => _$ssr(_tmpl$
|
|
734
|
+
children: icon => _$ssr(_tmpl$49, _$ssrAttribute("class", _$escape(icon(), true), false))
|
|
789
735
|
})), _$escape(props.children), _$escape(_$createComponent(Show, {
|
|
790
736
|
get when() {
|
|
791
737
|
return props.time;
|
|
792
738
|
},
|
|
793
739
|
get children() {
|
|
794
|
-
return _$ssr(_tmpl$
|
|
740
|
+
return _$ssr(_tmpl$50, _$ssrAttribute("datetime", _$escape(dateTimeOf(props.dateTime), true), false), _$escape(props.time));
|
|
795
741
|
}
|
|
796
742
|
})));
|
|
797
743
|
}
|