@k2b/ui 0.32.0 → 0.34.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/dist/base.css +14 -1
- package/dist/browser/actions/ContextMenu.js +13 -0
- package/dist/browser/actions/ContextMenu.js.map +1 -1
- package/dist/browser/actions/Dropdown.js +173 -102
- package/dist/browser/actions/Dropdown.js.map +1 -1
- package/dist/browser/actions/FilterChip.js +113 -56
- package/dist/browser/actions/FilterChip.js.map +1 -1
- package/dist/browser/actions/SelectionToolbar.js +129 -0
- package/dist/browser/actions/SelectionToolbar.js.map +1 -0
- package/dist/browser/actions/filter-messages.js +26 -2
- package/dist/browser/actions/filter-messages.js.map +1 -1
- package/dist/browser/actions/index.js +1 -0
- package/dist/browser/actions/index.js.map +1 -1
- package/dist/browser/actions/menu-rows.js +23 -3
- package/dist/browser/actions/menu-rows.js.map +1 -1
- package/dist/browser/actions/menu-sheet.js +2 -7
- package/dist/browser/actions/menu-sheet.js.map +1 -1
- package/dist/browser/charts.js +6 -0
- package/dist/browser/charts.js.map +1 -0
- package/dist/browser/chat/ChatComposer.js +616 -421
- package/dist/browser/chat/ChatComposer.js.map +1 -1
- package/dist/browser/chat/chat-messages.js +18 -0
- package/dist/browser/chat/chat-messages.js.map +1 -1
- package/dist/browser/chat/composer-document.js +19 -0
- package/dist/browser/chat/composer-document.js.map +1 -1
- package/dist/browser/chat/index.js.map +1 -1
- package/dist/browser/content/Calendar.js +39 -29
- package/dist/browser/content/Calendar.js.map +1 -1
- package/dist/browser/content/CalendarDayView.js +159 -165
- package/dist/browser/content/CalendarDayView.js.map +1 -1
- package/dist/browser/content/Chart.js +8 -0
- package/dist/browser/content/Chart.js.map +1 -1
- package/dist/browser/content/FileGrid.js +231 -9
- package/dist/browser/content/FileGrid.js.map +1 -1
- package/dist/browser/content/FileTypeIcon.js +15 -0
- package/dist/browser/content/FileTypeIcon.js.map +1 -1
- package/dist/browser/content/FileView.js +11 -4
- package/dist/browser/content/FileView.js.map +1 -1
- package/dist/browser/content/MessageRow.js +627 -343
- package/dist/browser/content/MessageRow.js.map +1 -1
- package/dist/browser/content/ReactionBar.js +20 -1
- package/dist/browser/content/ReactionBar.js.map +1 -1
- package/dist/browser/content/calendar-day-scroll.js +4 -3
- package/dist/browser/content/calendar-day-scroll.js.map +1 -1
- package/dist/browser/content/chart-bar.js +476 -0
- package/dist/browser/content/chart-bar.js.map +1 -0
- package/dist/browser/content/file-list-messages.js +52 -0
- package/dist/browser/content/file-list-messages.js.map +1 -0
- package/dist/browser/content/index.js +2 -2
- package/dist/browser/content/index.js.map +1 -1
- package/dist/browser/feedback/Tooltip.js +31 -14
- package/dist/browser/feedback/Tooltip.js.map +1 -1
- package/dist/browser/feedback/dialog-core.js +6 -0
- package/dist/browser/feedback/dialog-core.js.map +1 -1
- package/dist/browser/inputs/ChoiceList.js +178 -0
- package/dist/browser/inputs/ChoiceList.js.map +1 -0
- package/dist/browser/inputs/ChoiceSlider.js +314 -0
- package/dist/browser/inputs/ChoiceSlider.js.map +1 -0
- package/dist/browser/inputs/ChoiceTiles.js +135 -0
- package/dist/browser/inputs/ChoiceTiles.js.map +1 -0
- package/dist/browser/inputs/ColorChoices.js +120 -0
- package/dist/browser/inputs/ColorChoices.js.map +1 -0
- package/dist/browser/inputs/QrScanner.js +95 -13
- package/dist/browser/inputs/QrScanner.js.map +1 -1
- package/dist/browser/inputs/TextInput.js +19 -14
- package/dist/browser/inputs/TextInput.js.map +1 -1
- package/dist/browser/inputs/index.js +4 -0
- package/dist/browser/inputs/index.js.map +1 -1
- package/dist/browser/inputs/qr-messages.js +2 -0
- package/dist/browser/inputs/qr-messages.js.map +1 -1
- package/dist/browser/internal/radio-keys.js +13 -0
- package/dist/browser/internal/radio-keys.js.map +1 -0
- package/dist/browser/intl/shortcut-messages.js +4 -0
- package/dist/browser/intl/shortcut-messages.js.map +1 -1
- package/dist/browser/intl/shortcut.js +4 -0
- package/dist/browser/intl/shortcut.js.map +1 -1
- package/dist/browser/layout/AnchoredPopover.js +180 -0
- package/dist/browser/layout/AnchoredPopover.js.map +1 -0
- package/dist/browser/layout/AppWorkspace.js +684 -532
- package/dist/browser/layout/AppWorkspace.js.map +1 -1
- package/dist/browser/layout/DetailPanel.js +443 -333
- package/dist/browser/layout/DetailPanel.js.map +1 -1
- package/dist/browser/layout/MobileShell.js +231 -42
- package/dist/browser/layout/MobileShell.js.map +1 -1
- package/dist/browser/layout/Settings.js +283 -175
- package/dist/browser/layout/Settings.js.map +1 -1
- package/dist/browser/layout/SidebarRailHint.js +79 -0
- package/dist/browser/layout/SidebarRailHint.js.map +1 -0
- package/dist/browser/layout/SidebarSwitcher.js +79 -66
- package/dist/browser/layout/SidebarSwitcher.js.map +1 -1
- package/dist/browser/layout/TabBar.js +18 -4
- package/dist/browser/layout/TabBar.js.map +1 -1
- package/dist/browser/layout/app-workspace-controller.js +11 -4
- package/dist/browser/layout/app-workspace-controller.js.map +1 -1
- package/dist/browser/layout/detail-panel-messages.js +4 -2
- package/dist/browser/layout/detail-panel-messages.js.map +1 -1
- package/dist/browser/layout/index.js +3 -1
- package/dist/browser/layout/index.js.map +1 -1
- package/dist/browser/layout/scroll-fade.js +32 -5
- package/dist/browser/layout/scroll-fade.js.map +1 -1
- package/dist/browser/layout/settings-messages.js +26 -2
- package/dist/browser/layout/settings-messages.js.map +1 -1
- package/dist/browser/surfaces/Avatar.js +2 -14
- package/dist/browser/surfaces/Avatar.js.map +1 -1
- package/dist/browser/surfaces/DotStrip.js +70 -0
- package/dist/browser/surfaces/DotStrip.js.map +1 -0
- package/dist/browser/surfaces/NoticeCard.js +46 -30
- package/dist/browser/surfaces/NoticeCard.js.map +1 -1
- package/dist/browser/surfaces/ProgressRing.js +3 -0
- package/dist/browser/surfaces/ProgressRing.js.map +1 -1
- package/dist/browser/surfaces/ResourceCard.js +125 -68
- package/dist/browser/surfaces/ResourceCard.js.map +1 -1
- package/dist/browser/surfaces/index.js +2 -0
- package/dist/browser/surfaces/index.js.map +1 -1
- package/dist/browser/surfaces/person-color.js +18 -0
- package/dist/browser/surfaces/person-color.js.map +1 -0
- package/dist/browser/surfaces/resource-messages.js +8 -4
- package/dist/browser/surfaces/resource-messages.js.map +1 -1
- package/dist/browser/widgets/Widget.js +3 -2
- package/dist/browser/widgets/Widget.js.map +1 -1
- package/dist/ssr/actions/ContextMenu.js +9 -0
- package/dist/ssr/actions/ContextMenu.js.map +1 -1
- package/dist/ssr/actions/Dropdown.js +65 -31
- package/dist/ssr/actions/Dropdown.js.map +1 -1
- package/dist/ssr/actions/FilterChip.js +67 -16
- package/dist/ssr/actions/FilterChip.js.map +1 -1
- package/dist/ssr/actions/SelectionToolbar.js +104 -0
- package/dist/ssr/actions/SelectionToolbar.js.map +1 -0
- package/dist/ssr/actions/filter-messages.js +26 -2
- package/dist/ssr/actions/filter-messages.js.map +1 -1
- package/dist/ssr/actions/index.js +1 -0
- package/dist/ssr/actions/index.js.map +1 -1
- package/dist/ssr/actions/menu-rows.js +23 -3
- package/dist/ssr/actions/menu-rows.js.map +1 -1
- package/dist/ssr/actions/menu-sheet.js +2 -7
- package/dist/ssr/actions/menu-sheet.js.map +1 -1
- package/dist/ssr/charts.js +6 -0
- package/dist/ssr/charts.js.map +1 -0
- package/dist/ssr/chat/ChatComposer.js +184 -76
- package/dist/ssr/chat/ChatComposer.js.map +1 -1
- package/dist/ssr/chat/chat-messages.js +18 -0
- package/dist/ssr/chat/chat-messages.js.map +1 -1
- package/dist/ssr/chat/composer-document.js +19 -0
- package/dist/ssr/chat/composer-document.js.map +1 -1
- package/dist/ssr/chat/index.js.map +1 -1
- package/dist/ssr/content/Calendar.js +40 -31
- package/dist/ssr/content/Calendar.js.map +1 -1
- package/dist/ssr/content/CalendarDayView.js +40 -48
- package/dist/ssr/content/CalendarDayView.js.map +1 -1
- package/dist/ssr/content/Chart.js +8 -0
- package/dist/ssr/content/Chart.js.map +1 -1
- package/dist/ssr/content/FileGrid.js +132 -5
- package/dist/ssr/content/FileGrid.js.map +1 -1
- package/dist/ssr/content/FileTypeIcon.js +15 -0
- package/dist/ssr/content/FileTypeIcon.js.map +1 -1
- package/dist/ssr/content/FileView.js +11 -4
- package/dist/ssr/content/FileView.js.map +1 -1
- package/dist/ssr/content/MessageRow.js +274 -91
- package/dist/ssr/content/MessageRow.js.map +1 -1
- package/dist/ssr/content/ReactionBar.js +20 -1
- package/dist/ssr/content/ReactionBar.js.map +1 -1
- package/dist/ssr/content/calendar-day-scroll.js +4 -3
- package/dist/ssr/content/calendar-day-scroll.js.map +1 -1
- package/dist/ssr/content/chart-bar.js +476 -0
- package/dist/ssr/content/chart-bar.js.map +1 -0
- package/dist/ssr/content/file-list-messages.js +52 -0
- package/dist/ssr/content/file-list-messages.js.map +1 -0
- package/dist/ssr/content/index.js +2 -2
- package/dist/ssr/content/index.js.map +1 -1
- package/dist/ssr/feedback/Tooltip.js +31 -14
- package/dist/ssr/feedback/Tooltip.js.map +1 -1
- package/dist/ssr/feedback/dialog-core.js +6 -0
- package/dist/ssr/feedback/dialog-core.js.map +1 -1
- package/dist/ssr/inputs/ChoiceList.js +95 -0
- package/dist/ssr/inputs/ChoiceList.js.map +1 -0
- package/dist/ssr/inputs/ChoiceSlider.js +191 -0
- package/dist/ssr/inputs/ChoiceSlider.js.map +1 -0
- package/dist/ssr/inputs/ChoiceTiles.js +61 -0
- package/dist/ssr/inputs/ChoiceTiles.js.map +1 -0
- package/dist/ssr/inputs/ColorChoices.js +60 -0
- package/dist/ssr/inputs/ColorChoices.js.map +1 -0
- package/dist/ssr/inputs/QrScanner.js +89 -10
- package/dist/ssr/inputs/QrScanner.js.map +1 -1
- package/dist/ssr/inputs/TextInput.js +17 -2
- package/dist/ssr/inputs/TextInput.js.map +1 -1
- package/dist/ssr/inputs/index.js +4 -0
- package/dist/ssr/inputs/index.js.map +1 -1
- package/dist/ssr/inputs/qr-messages.js +2 -0
- package/dist/ssr/inputs/qr-messages.js.map +1 -1
- package/dist/ssr/internal/radio-keys.js +13 -0
- package/dist/ssr/internal/radio-keys.js.map +1 -0
- package/dist/ssr/intl/shortcut-messages.js +4 -0
- package/dist/ssr/intl/shortcut-messages.js.map +1 -1
- package/dist/ssr/intl/shortcut.js +4 -0
- package/dist/ssr/intl/shortcut.js.map +1 -1
- package/dist/ssr/layout/AnchoredPopover.js +142 -0
- package/dist/ssr/layout/AnchoredPopover.js.map +1 -0
- package/dist/ssr/layout/AppWorkspace.js +287 -141
- package/dist/ssr/layout/AppWorkspace.js.map +1 -1
- package/dist/ssr/layout/DetailPanel.js +181 -108
- package/dist/ssr/layout/DetailPanel.js.map +1 -1
- package/dist/ssr/layout/MobileShell.js +118 -24
- package/dist/ssr/layout/MobileShell.js.map +1 -1
- package/dist/ssr/layout/Settings.js +122 -45
- package/dist/ssr/layout/Settings.js.map +1 -1
- package/dist/ssr/layout/SidebarRailHint.js +79 -0
- package/dist/ssr/layout/SidebarRailHint.js.map +1 -0
- package/dist/ssr/layout/SidebarSwitcher.js +13 -3
- package/dist/ssr/layout/SidebarSwitcher.js.map +1 -1
- package/dist/ssr/layout/TabBar.js +11 -3
- package/dist/ssr/layout/TabBar.js.map +1 -1
- package/dist/ssr/layout/app-workspace-controller.js +11 -4
- package/dist/ssr/layout/app-workspace-controller.js.map +1 -1
- package/dist/ssr/layout/detail-panel-messages.js +4 -2
- package/dist/ssr/layout/detail-panel-messages.js.map +1 -1
- package/dist/ssr/layout/index.js +3 -1
- package/dist/ssr/layout/index.js.map +1 -1
- package/dist/ssr/layout/scroll-fade.js +32 -5
- package/dist/ssr/layout/scroll-fade.js.map +1 -1
- package/dist/ssr/layout/settings-messages.js +26 -2
- package/dist/ssr/layout/settings-messages.js.map +1 -1
- package/dist/ssr/surfaces/Avatar.js +2 -14
- package/dist/ssr/surfaces/Avatar.js.map +1 -1
- package/dist/ssr/surfaces/DotStrip.js +31 -0
- package/dist/ssr/surfaces/DotStrip.js.map +1 -0
- package/dist/ssr/surfaces/NoticeCard.js +21 -12
- package/dist/ssr/surfaces/NoticeCard.js.map +1 -1
- package/dist/ssr/surfaces/ProgressRing.js +3 -0
- package/dist/ssr/surfaces/ProgressRing.js.map +1 -1
- package/dist/ssr/surfaces/ResourceCard.js +40 -15
- package/dist/ssr/surfaces/ResourceCard.js.map +1 -1
- package/dist/ssr/surfaces/index.js +2 -0
- package/dist/ssr/surfaces/index.js.map +1 -1
- package/dist/ssr/surfaces/person-color.js +18 -0
- package/dist/ssr/surfaces/person-color.js.map +1 -0
- package/dist/ssr/surfaces/resource-messages.js +8 -4
- package/dist/ssr/surfaces/resource-messages.js.map +1 -1
- package/dist/ssr/widgets/Widget.js +3 -2
- package/dist/ssr/widgets/Widget.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types/actions/ContextMenu.d.ts +5 -0
- package/dist/types/actions/Dropdown.d.ts +19 -0
- package/dist/types/actions/FilterChip.d.ts +11 -0
- package/dist/types/actions/SelectionToolbar.d.ts +38 -0
- package/dist/types/actions/filter-messages.d.ts +12 -0
- package/dist/types/actions/index.d.ts +2 -0
- package/dist/types/actions/menu-rows.d.ts +7 -2
- package/dist/types/charts.d.ts +5 -0
- package/dist/types/chat/ChatComposer.d.ts +28 -0
- package/dist/types/chat/chat-messages.d.ts +9 -0
- package/dist/types/chat/composer-document.d.ts +5 -0
- package/dist/types/chat/index.d.ts +1 -1
- package/dist/types/content/Calendar.d.ts +7 -0
- package/dist/types/content/Chart.d.ts +2 -1
- package/dist/types/content/FileGrid.d.ts +43 -3
- package/dist/types/content/FileTypeIcon.d.ts +10 -0
- package/dist/types/content/FileView.d.ts +5 -1
- package/dist/types/content/MessageRow.d.ts +66 -2
- package/dist/types/content/calendar-day-scroll.d.ts +2 -1
- package/dist/types/content/chart-bar.d.ts +60 -0
- package/dist/types/content/file-list-messages.d.ts +24 -0
- package/dist/types/content/index.d.ts +4 -4
- package/dist/types/feedback/Tooltip.d.ts +8 -2
- package/dist/types/feedback/dialog-core.d.ts +3 -0
- package/dist/types/inputs/ChoiceList.d.ts +28 -0
- package/dist/types/inputs/ChoiceSlider.d.ts +36 -0
- package/dist/types/inputs/ChoiceTiles.d.ts +25 -0
- package/dist/types/inputs/ColorChoices.d.ts +19 -0
- package/dist/types/inputs/index.d.ts +8 -0
- package/dist/types/inputs/qr-messages.d.ts +1 -0
- package/dist/types/internal/radio-keys.d.ts +5 -0
- package/dist/types/intl/shortcut-messages.d.ts +2 -0
- package/dist/types/layout/AnchoredPopover.d.ts +31 -0
- package/dist/types/layout/AppWorkspace.d.ts +12 -0
- package/dist/types/layout/DetailPanel.d.ts +17 -0
- package/dist/types/layout/MobileShell.d.ts +55 -5
- package/dist/types/layout/Settings.d.ts +22 -0
- package/dist/types/layout/SidebarRailHint.d.ts +26 -0
- package/dist/types/layout/TabBar.d.ts +5 -0
- package/dist/types/layout/detail-panel-messages.d.ts +1 -0
- package/dist/types/layout/index.d.ts +5 -3
- package/dist/types/layout/scroll-fade.d.ts +5 -0
- package/dist/types/layout/settings-messages.d.ts +12 -0
- package/dist/types/surfaces/DotStrip.d.ts +22 -0
- package/dist/types/surfaces/NoticeCard.d.ts +3 -0
- package/dist/types/surfaces/ProgressRing.d.ts +2 -1
- package/dist/types/surfaces/ResourceCard.d.ts +9 -0
- package/dist/types/surfaces/index.d.ts +4 -1
- package/dist/types/surfaces/person-color.d.ts +10 -0
- package/dist/types/surfaces/resource-messages.d.ts +2 -0
- package/dist/types/widgets/Widget.d.ts +3 -2
- package/package.json +7 -2
|
@@ -8,35 +8,35 @@ var _tmpl$ = ["<span", " style=\"", "\">", "</span>"],
|
|
|
8
8
|
_tmpl$2 = ["<span", " style=\"", "\" role=\"img\"", ">", "</span>"],
|
|
9
9
|
_tmpl$3 = ["<a", " style=\"", "\"", " target=\"_blank\" rel=\"noopener noreferrer\"", ">", "</a>"],
|
|
10
10
|
_tmpl$4 = ["<button type=\"button\"", " style=\"", "\"", ">", "</button>"],
|
|
11
|
-
_tmpl$5 =
|
|
12
|
-
_tmpl$6 = ["<span class=\"k2b-message-
|
|
13
|
-
_tmpl$7 = ["<
|
|
14
|
-
_tmpl$8 = "<
|
|
15
|
-
_tmpl$9 = ["<span class=\"k2b-message-row__quote-
|
|
16
|
-
_tmpl$0 = ["<
|
|
17
|
-
_tmpl$1 = "<
|
|
18
|
-
_tmpl$10 = ["<
|
|
19
|
-
_tmpl$11 = ["<
|
|
20
|
-
_tmpl$12 =
|
|
21
|
-
_tmpl$13 = ["<
|
|
22
|
-
_tmpl$14 = ["<
|
|
23
|
-
_tmpl$15 = ["<
|
|
24
|
-
_tmpl$16 = ["<div
|
|
25
|
-
_tmpl$17 = ["<
|
|
26
|
-
_tmpl$18 = ["<div class=\"k2b-message-
|
|
27
|
-
_tmpl$19 = ["<div class=\"k2b-message-
|
|
28
|
-
_tmpl$20 = ["<
|
|
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
|
|
36
|
-
_tmpl$28 = ["<
|
|
37
|
-
_tmpl$29 = ["<div
|
|
38
|
-
_tmpl$30 = ["<
|
|
39
|
-
_tmpl$31 = ["<
|
|
11
|
+
_tmpl$5 = "<i class=\"ti ti-dots\" aria-hidden=\"true\"></i>",
|
|
12
|
+
_tmpl$6 = ["<span class=\"k2b-message-row__name\">", "</span>"],
|
|
13
|
+
_tmpl$7 = ["<span class=\"k2b-message-row__badge\">", "</span>"],
|
|
14
|
+
_tmpl$8 = ["<time class=\"k2b-message-row__time\"", ">", "</time>"],
|
|
15
|
+
_tmpl$9 = ["<span class=\"k2b-message-row__quote-author\"><span class=\"k2b-sr-only\">", " </span>", "</span>"],
|
|
16
|
+
_tmpl$0 = ["<span class=\"k2b-message-row__quote-text\">", "</span>"],
|
|
17
|
+
_tmpl$1 = ["<div class=\"k2b-message-row__quote\">", "</div>"],
|
|
18
|
+
_tmpl$10 = ["<button type=\"button\" class=\"k2b-message-row__quote\">", "</button>"],
|
|
19
|
+
_tmpl$11 = ["<img", " alt", " loading=\"lazy\" decoding=\"async\">"],
|
|
20
|
+
_tmpl$12 = "<span class=\"k2b-message-row__media-play\" aria-hidden=\"true\"><i class=\"ti ti-player-play\"></i></span>",
|
|
21
|
+
_tmpl$13 = ["<span class=\"k2b-message-row__media-duration\" aria-hidden=\"true\">", "</span>"],
|
|
22
|
+
_tmpl$14 = ["<span class=\"k2b-message-row__media-more\" aria-hidden=\"true\">+", "</span>"],
|
|
23
|
+
_tmpl$15 = ["<span class=\"k2b-message-row__avatar\" aria-hidden=\"true\">", "</span>"],
|
|
24
|
+
_tmpl$16 = ["<div class=\"k2b-message-row__gutter\">", "</div>"],
|
|
25
|
+
_tmpl$17 = ["<div class=\"k2b-message-row__meta\">", "</div>"],
|
|
26
|
+
_tmpl$18 = ["<div class=\"k2b-message-row__marker\"><i class=\"ti ti-arrow-forward-up\" aria-hidden=\"true\"></i><span>", "</span></div>"],
|
|
27
|
+
_tmpl$19 = ["<div", " class=\"k2b-content-markdown k2b-message-row__text\" data-heading-scale=\"compact\"", ">", "</div>"],
|
|
28
|
+
_tmpl$20 = ["<span class=\"k2b-message-row__edited\">", "</span>"],
|
|
29
|
+
_tmpl$21 = ["<div class=\"k2b-message-row__more-line\">", "", "</div>"],
|
|
30
|
+
_tmpl$22 = ["<div class=\"k2b-message-row__bubble\"", ">", "", "", "</div>"],
|
|
31
|
+
_tmpl$23 = ["<div class=\"k2b-message-row__marker\"><i class=\"ti ti-pencil\" aria-hidden=\"true\"></i><span class=\"k2b-message-row__edited\">", "</span></div>"],
|
|
32
|
+
_tmpl$24 = ["<div class=\"k2b-message-row__media\" role=\"group\"", " style=\"", "\">", "</div>"],
|
|
33
|
+
_tmpl$25 = ["<div class=\"k2b-message-row__files\">", "</div>"],
|
|
34
|
+
_tmpl$26 = ["<div class=\"k2b-message-row__slot\" data-gesture-ignore>", "</div>"],
|
|
35
|
+
_tmpl$27 = ["<div class=\"k2b-message-row__line\">", "</div>"],
|
|
36
|
+
_tmpl$28 = ["<div class=\"k2b-message-row__footer\">", "", "</div>"],
|
|
37
|
+
_tmpl$29 = ["<div", ">", "<div class=\"k2b-message-row__body\">", "", "", "", "", "", "", "", "", "", "", "", "", "</div></div>"],
|
|
38
|
+
_tmpl$30 = ["<span class=\"k2b-sr-only\">", ", ", ": </span>"],
|
|
39
|
+
_tmpl$31 = ["<div class=\"k2b-message-row__meta\"><span class=\"k2b-sr-only\">", ", </span><time class=\"k2b-message-row__time\"", ">", "</time></div>"],
|
|
40
40
|
_tmpl$32 = ["<span class=\"k2b-message-row__deleted\"><i class=\"ti ti-message-off\" aria-hidden=\"true\"></i>", "</span>"],
|
|
41
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
42
|
_tmpl$34 = ["<span class=\"k2b-message-row__file-icon\" aria-hidden=\"true\"><i", "></i></span>"],
|
|
@@ -54,18 +54,27 @@ var _tmpl$ = ["<span", " style=\"", "\">", "</span>"],
|
|
|
54
54
|
_tmpl$46 = ["<span class=\"k2b-message-row__receipt\">", "</span>"],
|
|
55
55
|
_tmpl$47 = "<i class=\"ti ti-loader-2 k2b-spin\" aria-hidden=\"true\"></i>",
|
|
56
56
|
_tmpl$48 = ["<span class=\"k2b-message-row__line-text\">", "</span>"],
|
|
57
|
-
_tmpl$49 = ["<
|
|
58
|
-
_tmpl$50 = ["<
|
|
59
|
-
_tmpl$51 = ["<
|
|
57
|
+
_tmpl$49 = ["<span class=\"k2b-message-row__origin\">", "", "</span>"],
|
|
58
|
+
_tmpl$50 = ["<i", " aria-hidden=\"true\"></i>"],
|
|
59
|
+
_tmpl$51 = ["<button type=\"button\" class=\"k2b-message-row__origin\"", ">", "", "</button>"],
|
|
60
|
+
_tmpl$52 = ["<time", ">", "</time>"],
|
|
61
|
+
_tmpl$53 = ["<div", "><i", " aria-hidden=\"true\"></i>", "", "", "</div>"],
|
|
62
|
+
_tmpl$54 = ["<span class=\"k2b-message-event-row__text\">", "</span>"],
|
|
63
|
+
_tmpl$55 = ["<a class=\"k2b-message-event-row__text k2b-message-event-row__link\"", ">", "</a>"],
|
|
64
|
+
_tmpl$56 = ["<button type=\"button\"", "><i class=\"ti ti-history\" aria-hidden=\"true\"></i><span class=\"k2b-message-event-row__text\">", "</span>", "<i", " aria-hidden=\"true\"></i></button>"],
|
|
65
|
+
_tmpl$57 = ["<div", ">", "<span>", "</span>", "</div>"];
|
|
60
66
|
import { fileIcons } from "@k2b/stdlib";
|
|
61
67
|
import { createMemo, createSignal, createUniqueId, For, onCleanup, Show } from "solid-js";
|
|
62
|
-
import { Button
|
|
68
|
+
import { Button } from "../actions/Button";
|
|
63
69
|
import { copyText } from "../actions/CopyButton";
|
|
70
|
+
import { Dropdown } from "../actions/Dropdown";
|
|
71
|
+
import { GestureMenu } from "../actions/GestureMenu";
|
|
64
72
|
import { useChatMessages } from "../chat/chat-messages";
|
|
65
73
|
import { announce } from "../feedback/announce";
|
|
66
74
|
import { useLocale } from "../intl/locale";
|
|
67
75
|
import { useUiMessages } from "../intl/messages";
|
|
68
76
|
import { Avatar } from "../surfaces/Avatar";
|
|
77
|
+
import { Kbd } from "./Kbd";
|
|
69
78
|
import { createSafeMarked, createSafeRenderer, escapeHtml } from "./MarkdownView";
|
|
70
79
|
import { ReactionBar } from "./ReactionBar";
|
|
71
80
|
|
|
@@ -82,6 +91,8 @@ const LINE_CHARS = 100;
|
|
|
82
91
|
/** Lines at the bottom of a collapsed message that fade out, as `.k2b-message-row__text[data-collapsed]` draws them. */
|
|
83
92
|
const FADE_LINES = 2;
|
|
84
93
|
const COPIED_MS = 2_000;
|
|
94
|
+
/** Alt+click on these keeps its own meaning, such as downloading a link. */
|
|
95
|
+
const ALT_CLICK_IGNORE = "a[href], button, input, textarea, select, summary, label, audio, video, [role='button'], [role='link']";
|
|
85
96
|
/** Links in messages may only use these schemes; other links show as their text. */
|
|
86
97
|
const LINK_PROTOCOLS = ["https:", "http:", "mailto:"];
|
|
87
98
|
/** Attachments open and load only from these schemes or from a relative URL. */
|
|
@@ -99,6 +110,8 @@ const MEDIA_RATIO_MAX = 3;
|
|
|
99
110
|
|
|
100
111
|
/** Reaction labels are read by screen readers and shown in the names hint. */
|
|
101
112
|
|
|
113
|
+
/** Where a message belongs, shown as a small chip under it, for example its thread in a timeline of several. */
|
|
114
|
+
|
|
102
115
|
const timestamp = value => value instanceof Date ? value.getTime() : new Date(value).getTime();
|
|
103
116
|
|
|
104
117
|
/**
|
|
@@ -323,15 +336,91 @@ export function MessageRow(props) {
|
|
|
323
336
|
const fade = text.getBoundingClientRect().bottom - FADE_LINES * Number.parseFloat(getComputedStyle(text).lineHeight);
|
|
324
337
|
if (event.target.getBoundingClientRect().bottom > fade) setExpanded(true);
|
|
325
338
|
};
|
|
326
|
-
|
|
339
|
+
|
|
340
|
+
// The same entries serve "…", right-click, the keyboard, and a long press. Alt+click and keys show at the entry's end.
|
|
341
|
+
// Each menu gets its own entries: a rendered shortcut is a DOM node and can live in only one menu.
|
|
342
|
+
const entries = () => (props.actions ?? []).map(entry => ({
|
|
343
|
+
label: entry.label,
|
|
344
|
+
icon: entry.icon,
|
|
345
|
+
description: entry.description,
|
|
346
|
+
disabled: entry.disabled,
|
|
347
|
+
variant: entry.variant,
|
|
348
|
+
gesture: entry.gesture,
|
|
349
|
+
immediate: entry.immediate,
|
|
350
|
+
trailing: entry.altClick ? _$createComponent(Kbd, {
|
|
351
|
+
keys: "alt+click"
|
|
352
|
+
}) : entry.shortcut ? _$createComponent(Kbd, {
|
|
353
|
+
get keys() {
|
|
354
|
+
return entry.shortcut;
|
|
355
|
+
}
|
|
356
|
+
}) : undefined,
|
|
357
|
+
action: () => entry.onSelect()
|
|
358
|
+
}));
|
|
359
|
+
const menuItems = createMemo(entries);
|
|
360
|
+
const gestureItems = createMemo(entries);
|
|
361
|
+
const hasMenu = () => (props.actions?.length ?? 0) > 0;
|
|
362
|
+
|
|
363
|
+
// Alt+click (Option+click) on the message, not on a link or control inside it, runs the entry that asks for it.
|
|
364
|
+
const altClick = event => {
|
|
365
|
+
if (!event.altKey || event.button !== 0 || event.ctrlKey || event.metaKey || event.shiftKey) return;
|
|
366
|
+
const entry = props.actions?.find(action => action.altClick && !action.disabled);
|
|
367
|
+
const target = event.target instanceof Element ? event.target : null;
|
|
368
|
+
if (!entry || target?.closest(ALT_CLICK_IGNORE)) return;
|
|
369
|
+
event.preventDefault();
|
|
370
|
+
entry.onSelect();
|
|
371
|
+
};
|
|
372
|
+
const more = () => _$createComponent(Dropdown.Root, {
|
|
373
|
+
get items() {
|
|
374
|
+
return menuItems();
|
|
375
|
+
},
|
|
376
|
+
get label() {
|
|
377
|
+
return chatMessages().messageActions;
|
|
378
|
+
},
|
|
379
|
+
"class": "k2b-message-row__menu-root",
|
|
380
|
+
get position() {
|
|
381
|
+
return props.own ? "bottom-right" : "bottom-left";
|
|
382
|
+
},
|
|
383
|
+
phone: "sheet",
|
|
384
|
+
get children() {
|
|
385
|
+
return _$createComponent(Dropdown.Trigger, {
|
|
386
|
+
iconOnly: true,
|
|
387
|
+
variant: "ghost",
|
|
388
|
+
size: "sm",
|
|
389
|
+
get label() {
|
|
390
|
+
return chatMessages().messageActions;
|
|
391
|
+
},
|
|
392
|
+
"class": "k2b-message-row__menu",
|
|
393
|
+
get children() {
|
|
394
|
+
return _$ssr(_tmpl$5);
|
|
395
|
+
}
|
|
396
|
+
});
|
|
397
|
+
}
|
|
398
|
+
});
|
|
399
|
+
const header = () => [_$ssr(_tmpl$6, _$escape(props.author.name)), _$createComponent(Show, {
|
|
327
400
|
get when() {
|
|
328
401
|
return props.badge;
|
|
329
402
|
},
|
|
330
403
|
get children() {
|
|
331
|
-
return _$ssr(_tmpl$
|
|
404
|
+
return _$ssr(_tmpl$7, _$escape(props.badge));
|
|
332
405
|
}
|
|
333
|
-
}), _$ssr(_tmpl$
|
|
334
|
-
const quote = value => [_$ssr(_tmpl$
|
|
406
|
+
}), _$ssr(_tmpl$8, _$ssrAttribute("datetime", _$escape(dateTimeOf(props.dateTime), true), false), _$escape(props.time))];
|
|
407
|
+
const quote = value => [_$ssr(_tmpl$9, _$escape(chatMessages().messageReplyTo), _$escape(value.author)), _$ssr(_tmpl$0, _$escape(value.text))];
|
|
408
|
+
|
|
409
|
+
/** The answered message on a quiet tint at the top of the bubble, or in its place without one. */
|
|
410
|
+
const quoteBlock = () => _$createComponent(Show, {
|
|
411
|
+
get when() {
|
|
412
|
+
return _$memo(() => !!content())() && props.quote;
|
|
413
|
+
},
|
|
414
|
+
children: value => _$createComponent(Show, {
|
|
415
|
+
get when() {
|
|
416
|
+
return value().onSelect;
|
|
417
|
+
},
|
|
418
|
+
get fallback() {
|
|
419
|
+
return _$ssr(_tmpl$1, _$escape(quote(value())));
|
|
420
|
+
},
|
|
421
|
+
children: select => _$ssr(_tmpl$10, _$escape(quote(value())))
|
|
422
|
+
})
|
|
423
|
+
});
|
|
335
424
|
|
|
336
425
|
/** The picture's description, then that it is a video and how long, then how many more the grid hides. */
|
|
337
426
|
const mediaLabel = (item, more) => [item.alt, item.kind === "video" ? [chatMessages().messageVideo, item.duration].filter(Boolean).join(" ") : "", more > 0 ? chatMessages().messageMoreAttachments({
|
|
@@ -356,17 +445,17 @@ export function MessageRow(props) {
|
|
|
356
445
|
return item.href;
|
|
357
446
|
},
|
|
358
447
|
get children() {
|
|
359
|
-
return [_$ssr(_tmpl$
|
|
448
|
+
return [_$ssr(_tmpl$11, _$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, {
|
|
360
449
|
get when() {
|
|
361
450
|
return item.kind === "video";
|
|
362
451
|
},
|
|
363
452
|
get children() {
|
|
364
|
-
return [_$ssr(_tmpl$
|
|
453
|
+
return [_$ssr(_tmpl$12), _$createComponent(Show, {
|
|
365
454
|
get when() {
|
|
366
455
|
return item.duration;
|
|
367
456
|
},
|
|
368
457
|
get children() {
|
|
369
|
-
return _$ssr(_tmpl$
|
|
458
|
+
return _$ssr(_tmpl$13, _$escape(item.duration));
|
|
370
459
|
}
|
|
371
460
|
})];
|
|
372
461
|
}
|
|
@@ -375,23 +464,24 @@ export function MessageRow(props) {
|
|
|
375
464
|
return more() > 0;
|
|
376
465
|
},
|
|
377
466
|
get children() {
|
|
378
|
-
return _$ssr(_tmpl$
|
|
467
|
+
return _$ssr(_tmpl$14, _$escape(more()));
|
|
379
468
|
}
|
|
380
469
|
})];
|
|
381
470
|
}
|
|
382
471
|
});
|
|
383
472
|
};
|
|
384
|
-
|
|
473
|
+
const row = // biome-ignore lint/a11y/noStaticElementInteractions lint/a11y/useKeyWithClickEvents: Alt+click is a pointer shortcut for a menu entry that the keyboard reaches through "…".
|
|
474
|
+
_$ssr(_tmpl$29, _$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, {
|
|
385
475
|
get when() {
|
|
386
476
|
return !props.own;
|
|
387
477
|
},
|
|
388
478
|
get children() {
|
|
389
|
-
return _$ssr(_tmpl$
|
|
479
|
+
return _$ssr(_tmpl$16, _$escape(_$createComponent(Show, {
|
|
390
480
|
get when() {
|
|
391
481
|
return groupStart();
|
|
392
482
|
},
|
|
393
483
|
get children() {
|
|
394
|
-
return _$ssr(_tmpl$
|
|
484
|
+
return _$ssr(_tmpl$15, _$escape(_$createComponent(Avatar, {
|
|
395
485
|
get name() {
|
|
396
486
|
return props.author.name;
|
|
397
487
|
},
|
|
@@ -411,7 +501,7 @@ export function MessageRow(props) {
|
|
|
411
501
|
return groupStart();
|
|
412
502
|
},
|
|
413
503
|
get fallback() {
|
|
414
|
-
return _$ssr(_tmpl$
|
|
504
|
+
return _$ssr(_tmpl$30, _$escape(props.author.name), _$escape(props.time));
|
|
415
505
|
},
|
|
416
506
|
get children() {
|
|
417
507
|
return _$createComponent(Show, {
|
|
@@ -419,10 +509,10 @@ export function MessageRow(props) {
|
|
|
419
509
|
return !props.own;
|
|
420
510
|
},
|
|
421
511
|
get fallback() {
|
|
422
|
-
return _$ssr(_tmpl$
|
|
512
|
+
return _$ssr(_tmpl$31, _$escape(props.author.name), _$ssrAttribute("datetime", _$escape(dateTimeOf(props.dateTime), true), false), _$escape(props.time));
|
|
423
513
|
},
|
|
424
514
|
get children() {
|
|
425
|
-
return _$ssr(_tmpl$
|
|
515
|
+
return _$ssr(_tmpl$17, _$escape(header()));
|
|
426
516
|
}
|
|
427
517
|
});
|
|
428
518
|
}
|
|
@@ -431,27 +521,21 @@ export function MessageRow(props) {
|
|
|
431
521
|
return _$memo(() => !!content())() && props.forwarded;
|
|
432
522
|
},
|
|
433
523
|
get children() {
|
|
434
|
-
return _$ssr(_tmpl$
|
|
524
|
+
return _$ssr(_tmpl$18, _$escape(chatMessages().messageForwarded));
|
|
435
525
|
}
|
|
436
526
|
})), _$escape(_$createComponent(Show, {
|
|
437
527
|
get when() {
|
|
438
|
-
return
|
|
528
|
+
return !hasBubble();
|
|
439
529
|
},
|
|
440
|
-
children
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
},
|
|
444
|
-
get fallback() {
|
|
445
|
-
return _$ssr(_tmpl$30, _$escape(quote(value())));
|
|
446
|
-
},
|
|
447
|
-
children: select => _$ssr(_tmpl$31, _$escape(quote(value())))
|
|
448
|
-
})
|
|
530
|
+
get children() {
|
|
531
|
+
return quoteBlock();
|
|
532
|
+
}
|
|
449
533
|
})), _$escape(_$createComponent(Show, {
|
|
450
534
|
get when() {
|
|
451
535
|
return hasBubble();
|
|
452
536
|
},
|
|
453
537
|
get children() {
|
|
454
|
-
return _$ssr(_tmpl$
|
|
538
|
+
return _$ssr(_tmpl$22, _$ssrAttribute("data-deleted", props.deleted ? "" : _$escape(undefined, true), false) + _$ssrAttribute("aria-busy", props.progress && !props.deleted ? "true" : _$escape(undefined, true), false), _$escape(quoteBlock()), _$escape(_$createComponent(Show, {
|
|
455
539
|
get when() {
|
|
456
540
|
return !props.deleted;
|
|
457
541
|
},
|
|
@@ -467,12 +551,12 @@ export function MessageRow(props) {
|
|
|
467
551
|
return _$ssr(_tmpl$33);
|
|
468
552
|
},
|
|
469
553
|
get children() {
|
|
470
|
-
return [_$ssr(_tmpl$
|
|
554
|
+
return [_$ssr(_tmpl$19, _$ssrAttribute("id", _$escape(textId, true), false), _$ssrAttribute("data-collapsed", collapsed() ? "" : _$escape(undefined, true), false), rendered().html), _$createComponent(Show, {
|
|
471
555
|
get when() {
|
|
472
556
|
return collapsible();
|
|
473
557
|
},
|
|
474
558
|
get children() {
|
|
475
|
-
return _$ssr(_tmpl$
|
|
559
|
+
return _$ssr(_tmpl$21, _$escape(_$createComponent(Button, {
|
|
476
560
|
variant: "text",
|
|
477
561
|
size: "xs",
|
|
478
562
|
"class": "k2b-message-row__more",
|
|
@@ -489,7 +573,7 @@ export function MessageRow(props) {
|
|
|
489
573
|
return props.edited;
|
|
490
574
|
},
|
|
491
575
|
get children() {
|
|
492
|
-
return _$ssr(_tmpl$
|
|
576
|
+
return _$ssr(_tmpl$20, _$escape(chatMessages().messageEdited));
|
|
493
577
|
}
|
|
494
578
|
})));
|
|
495
579
|
}
|
|
@@ -497,21 +581,35 @@ export function MessageRow(props) {
|
|
|
497
581
|
}
|
|
498
582
|
});
|
|
499
583
|
}
|
|
584
|
+
})), _$escape(_$createComponent(Show, {
|
|
585
|
+
get when() {
|
|
586
|
+
return hasMenu();
|
|
587
|
+
},
|
|
588
|
+
get children() {
|
|
589
|
+
return more();
|
|
590
|
+
}
|
|
500
591
|
})));
|
|
501
592
|
}
|
|
593
|
+
})), _$escape(_$createComponent(Show, {
|
|
594
|
+
get when() {
|
|
595
|
+
return _$memo(() => !!hasMenu())() && !hasBubble();
|
|
596
|
+
},
|
|
597
|
+
get children() {
|
|
598
|
+
return more();
|
|
599
|
+
}
|
|
502
600
|
})), _$escape(_$createComponent(Show, {
|
|
503
601
|
get when() {
|
|
504
602
|
return _$memo(() => !!(content() && props.edited))() && !hasBubble();
|
|
505
603
|
},
|
|
506
604
|
get children() {
|
|
507
|
-
return _$ssr(_tmpl$
|
|
605
|
+
return _$ssr(_tmpl$23, _$escape(chatMessages().messageEdited));
|
|
508
606
|
}
|
|
509
607
|
})), _$escape(_$createComponent(Show, {
|
|
510
608
|
get when() {
|
|
511
609
|
return media().length > 0;
|
|
512
610
|
},
|
|
513
611
|
get children() {
|
|
514
|
-
return _$ssr(_tmpl$
|
|
612
|
+
return _$ssr(_tmpl$24, _$ssrAttribute("aria-label", _$escape(chatMessages().attachments, true), false) + _$ssrAttribute("data-count", _$escape(Math.min(media().length, MEDIA_SHOWN), true), false), _$ssrStyle(media().length === 1 ? {
|
|
515
613
|
width: mediaWidth(media()[0])
|
|
516
614
|
} : undefined), _$escape(_$createComponent(For, {
|
|
517
615
|
get each() {
|
|
@@ -525,7 +623,7 @@ export function MessageRow(props) {
|
|
|
525
623
|
return files().length > 0;
|
|
526
624
|
},
|
|
527
625
|
get children() {
|
|
528
|
-
return _$ssr(_tmpl$
|
|
626
|
+
return _$ssr(_tmpl$25, _$escape(_$createComponent(For, {
|
|
529
627
|
get each() {
|
|
530
628
|
return files();
|
|
531
629
|
},
|
|
@@ -555,14 +653,14 @@ export function MessageRow(props) {
|
|
|
555
653
|
return _$memo(() => !!content())() && props.linkPreview;
|
|
556
654
|
},
|
|
557
655
|
get children() {
|
|
558
|
-
return _$ssr(_tmpl$
|
|
656
|
+
return _$ssr(_tmpl$26, _$escape(props.linkPreview));
|
|
559
657
|
}
|
|
560
658
|
})), _$escape(_$createComponent(Show, {
|
|
561
659
|
get when() {
|
|
562
660
|
return _$memo(() => !!content())() && props.card;
|
|
563
661
|
},
|
|
564
662
|
get children() {
|
|
565
|
-
return _$ssr(_tmpl$
|
|
663
|
+
return _$ssr(_tmpl$26, _$escape(props.card));
|
|
566
664
|
}
|
|
567
665
|
})), _$escape(_$createComponent(Show, {
|
|
568
666
|
get when() {
|
|
@@ -601,12 +699,21 @@ export function MessageRow(props) {
|
|
|
601
699
|
time: time()
|
|
602
700
|
})))
|
|
603
701
|
})))
|
|
702
|
+
})), _$escape(_$createComponent(Show, {
|
|
703
|
+
get when() {
|
|
704
|
+
return props.origin;
|
|
705
|
+
},
|
|
706
|
+
children: origin => _$createComponent(OriginChip, {
|
|
707
|
+
get origin() {
|
|
708
|
+
return origin();
|
|
709
|
+
}
|
|
710
|
+
})
|
|
604
711
|
})), _$escape(_$createComponent(Show, {
|
|
605
712
|
get when() {
|
|
606
713
|
return hasFooter();
|
|
607
714
|
},
|
|
608
715
|
get children() {
|
|
609
|
-
return _$ssr(_tmpl$
|
|
716
|
+
return _$ssr(_tmpl$28, _$escape(_$createComponent(Show, {
|
|
610
717
|
get when() {
|
|
611
718
|
return reactions();
|
|
612
719
|
},
|
|
@@ -626,7 +733,7 @@ export function MessageRow(props) {
|
|
|
626
733
|
return hasLine();
|
|
627
734
|
},
|
|
628
735
|
get children() {
|
|
629
|
-
return _$ssr(_tmpl$
|
|
736
|
+
return _$ssr(_tmpl$27, _$escape(_$createComponent(Show, {
|
|
630
737
|
get when() {
|
|
631
738
|
return props.progress;
|
|
632
739
|
},
|
|
@@ -655,6 +762,18 @@ export function MessageRow(props) {
|
|
|
655
762
|
return chatMessages().messageRetry;
|
|
656
763
|
}
|
|
657
764
|
})
|
|
765
|
+
}), _$createComponent(Show, {
|
|
766
|
+
get when() {
|
|
767
|
+
return props.onDiscard;
|
|
768
|
+
},
|
|
769
|
+
children: discard => _$createComponent(Button, {
|
|
770
|
+
variant: "text",
|
|
771
|
+
size: "xs",
|
|
772
|
+
onClick: () => discard()(),
|
|
773
|
+
get children() {
|
|
774
|
+
return chatMessages().messageDiscard;
|
|
775
|
+
}
|
|
776
|
+
})
|
|
658
777
|
})];
|
|
659
778
|
}
|
|
660
779
|
}), _$createComponent(Show, {
|
|
@@ -698,46 +817,110 @@ export function MessageRow(props) {
|
|
|
698
817
|
}
|
|
699
818
|
})));
|
|
700
819
|
}
|
|
701
|
-
}))
|
|
820
|
+
})));
|
|
821
|
+
return _$createComponent(Show, {
|
|
702
822
|
get when() {
|
|
703
|
-
return (
|
|
823
|
+
return hasMenu();
|
|
704
824
|
},
|
|
825
|
+
fallback: row,
|
|
705
826
|
get children() {
|
|
706
|
-
return _$
|
|
707
|
-
get
|
|
708
|
-
return
|
|
827
|
+
return _$createComponent(GestureMenu, {
|
|
828
|
+
get items() {
|
|
829
|
+
return gestureItems();
|
|
709
830
|
},
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
831
|
+
get label() {
|
|
832
|
+
return chatMessages().messageMenu({
|
|
833
|
+
author: props.author.name,
|
|
834
|
+
time: props.time
|
|
835
|
+
});
|
|
836
|
+
},
|
|
837
|
+
tabIndex: -1,
|
|
838
|
+
children: row
|
|
839
|
+
});
|
|
840
|
+
}
|
|
841
|
+
});
|
|
842
|
+
}
|
|
843
|
+
|
|
844
|
+
/** Where a row belongs, such as its thread; a control when it opens that place. */
|
|
845
|
+
function OriginChip(props) {
|
|
846
|
+
return _$createComponent(Show, {
|
|
847
|
+
get when() {
|
|
848
|
+
return props.origin.onSelect;
|
|
849
|
+
},
|
|
850
|
+
get fallback() {
|
|
851
|
+
return _$ssr(_tmpl$49, _$escape(_$createComponent(Show, {
|
|
852
|
+
get when() {
|
|
853
|
+
return props.origin.icon;
|
|
854
|
+
},
|
|
855
|
+
children: icon => _$ssr(_tmpl$50, _$ssrAttribute("class", _$escape(icon(), true), false))
|
|
856
|
+
})), _$escape(props.origin.label));
|
|
857
|
+
},
|
|
858
|
+
children: select => _$ssr(_tmpl$51, _$ssrAttribute("aria-label", _$escape(props.origin.selectLabel, true), false), _$escape(_$createComponent(Show, {
|
|
859
|
+
get when() {
|
|
860
|
+
return props.origin.icon;
|
|
861
|
+
},
|
|
862
|
+
children: icon => _$ssr(_tmpl$50, _$ssrAttribute("class", _$escape(icon(), true), false))
|
|
863
|
+
})), _$escape(props.origin.label))
|
|
864
|
+
});
|
|
865
|
+
}
|
|
866
|
+
|
|
867
|
+
/**
|
|
868
|
+
* A quiet line for a change to something the conversation is about, such as a task's new status: no bubble, aligned
|
|
869
|
+
* with the messages' text, with its time at the end. It is no message: it never counts as unread.
|
|
870
|
+
*/
|
|
871
|
+
export function MessageEventRow(props) {
|
|
872
|
+
return _$ssr(_tmpl$53, _$ssrAttribute("class", props.class ? `k2b-message-event-row ${_$escape(props.class, true)}` : "k2b-message-event-row", false), _$ssrAttribute("class", _$escape(props.icon ?? "ti ti-point", true), false), _$escape(_$createComponent(Show, {
|
|
873
|
+
get when() {
|
|
874
|
+
return props.href;
|
|
875
|
+
},
|
|
876
|
+
get fallback() {
|
|
877
|
+
return _$ssr(_tmpl$54, _$escape(props.children));
|
|
878
|
+
},
|
|
879
|
+
children: href => _$ssr(_tmpl$55, _$ssrAttribute("href", _$escape(href(), true), false), _$escape(props.children))
|
|
880
|
+
})), _$escape(_$createComponent(Show, {
|
|
881
|
+
get when() {
|
|
882
|
+
return props.origin;
|
|
883
|
+
},
|
|
884
|
+
children: origin => _$createComponent(OriginChip, {
|
|
885
|
+
get origin() {
|
|
886
|
+
return origin();
|
|
887
|
+
}
|
|
888
|
+
})
|
|
889
|
+
})), _$escape(_$createComponent(Show, {
|
|
890
|
+
get when() {
|
|
891
|
+
return props.time;
|
|
892
|
+
},
|
|
893
|
+
get children() {
|
|
894
|
+
return _$ssr(_tmpl$52, _$ssrAttribute("datetime", _$escape(dateTimeOf(props.dateTime), true), false), _$escape(props.time));
|
|
724
895
|
}
|
|
725
896
|
})));
|
|
726
897
|
}
|
|
727
898
|
|
|
899
|
+
/** Several event lines in a row as one line that opens them, such as "4 changes to Invitation and Light test". */
|
|
900
|
+
export function MessageEventGroup(props) {
|
|
901
|
+
return _$ssr(_tmpl$56, _$ssrAttribute("class", props.class ? `k2b-message-event-row k2b-message-event-group ${_$escape(props.class, true)}` : "k2b-message-event-row k2b-message-event-group", false) + _$ssrAttribute("aria-expanded", _$escape(props.expanded, true), false), _$escape(props.label), _$escape(_$createComponent(Show, {
|
|
902
|
+
get when() {
|
|
903
|
+
return props.time;
|
|
904
|
+
},
|
|
905
|
+
get children() {
|
|
906
|
+
return _$ssr(_tmpl$52, _$ssrAttribute("datetime", _$escape(dateTimeOf(props.dateTime), true), false), _$escape(props.time));
|
|
907
|
+
}
|
|
908
|
+
})), _$ssrAttribute("class", props.expanded ? "ti ti-chevron-up" : "ti ti-chevron-down", false));
|
|
909
|
+
}
|
|
910
|
+
|
|
728
911
|
/** A quiet, centered line for something that happened in the conversation, such as a person joining. */
|
|
729
912
|
export function MessageSystemRow(props) {
|
|
730
|
-
return _$ssr(_tmpl$
|
|
913
|
+
return _$ssr(_tmpl$57, _$ssrAttribute("class", props.class ? `k2b-message-system-row ${_$escape(props.class, true)}` : "k2b-message-system-row", false), _$escape(_$createComponent(Show, {
|
|
731
914
|
get when() {
|
|
732
915
|
return props.icon;
|
|
733
916
|
},
|
|
734
|
-
children: icon => _$ssr(_tmpl$
|
|
917
|
+
children: icon => _$ssr(_tmpl$50, _$ssrAttribute("class", _$escape(icon(), true), false))
|
|
735
918
|
})), _$escape(props.children), _$escape(_$createComponent(Show, {
|
|
736
919
|
get when() {
|
|
737
920
|
return props.time;
|
|
738
921
|
},
|
|
739
922
|
get children() {
|
|
740
|
-
return _$ssr(_tmpl$
|
|
923
|
+
return _$ssr(_tmpl$52, _$ssrAttribute("datetime", _$escape(dateTimeOf(props.dateTime), true), false), _$escape(props.time));
|
|
741
924
|
}
|
|
742
925
|
})));
|
|
743
926
|
}
|