@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
|
@@ -22,38 +22,45 @@ var _tmpl$ = ["<span><strong", ">", "</strong></span>"],
|
|
|
22
22
|
_tmpl$13 = ["<button class=\"k2b-chat-composer__command\"", " type=\"button\" role=\"option\" tabindex=\"-1\"", "><i", " aria-hidden=\"true\"></i><span class=\"k2b-chat-composer__command-text\"><strong>", "</strong>", "</span>", "</button>"],
|
|
23
23
|
_tmpl$14 = ["<b>", "</b>"],
|
|
24
24
|
_tmpl$15 = ["<small", ">", "</small>"],
|
|
25
|
-
_tmpl$16 = ["<
|
|
26
|
-
_tmpl$17 = ["<
|
|
27
|
-
_tmpl$18 = ["<div
|
|
28
|
-
_tmpl$19 = ["<
|
|
29
|
-
_tmpl$20 = ["<div role=\"status\">", "</div>"],
|
|
30
|
-
_tmpl$21 = ["<div
|
|
31
|
-
_tmpl$22 = ["<div
|
|
32
|
-
_tmpl$23 = ["<div class=\"k2b-chat-
|
|
33
|
-
_tmpl$24 = ["<div class=\"k2b-chat-
|
|
34
|
-
_tmpl$25 = ["<div class=\"k2b-chat-
|
|
35
|
-
_tmpl$26 = ["<div class=\"k2b-chat-
|
|
36
|
-
_tmpl$27 = ["<div class=\"k2b-chat-
|
|
37
|
-
_tmpl$28 = ["<
|
|
38
|
-
_tmpl$29 = ["<
|
|
39
|
-
_tmpl$30 = "<
|
|
40
|
-
_tmpl$31 = ["<
|
|
41
|
-
_tmpl$32 = "<
|
|
42
|
-
_tmpl$33 = ["<
|
|
43
|
-
_tmpl$34 =
|
|
44
|
-
_tmpl$35 = ["<
|
|
45
|
-
_tmpl$36 =
|
|
46
|
-
_tmpl$37 = ["<
|
|
47
|
-
_tmpl$38 = ["<
|
|
48
|
-
_tmpl$39 = ["<
|
|
49
|
-
_tmpl$40 = ["<
|
|
50
|
-
_tmpl$41 = ["<
|
|
51
|
-
_tmpl$42 = ["<
|
|
52
|
-
_tmpl$43 = ["<
|
|
53
|
-
_tmpl$44 = ["<div class=\"k2b-chat-
|
|
54
|
-
_tmpl$45 = ["<
|
|
55
|
-
_tmpl$46 = ["<div class=\"k2b-chat-
|
|
56
|
-
_tmpl$47 = ["<
|
|
25
|
+
_tmpl$16 = ["<span class=\"k2b-message-row__quote-author\"><span class=\"k2b-sr-only\">", " </span>", "</span>"],
|
|
26
|
+
_tmpl$17 = ["<span class=\"k2b-message-row__quote-text\">", "</span>"],
|
|
27
|
+
_tmpl$18 = ["<div class=\"k2b-chat-composer-accessory\"><div", " class=\"k2b-chat-composer__commands\" role=\"listbox\"", ">", "</div></div>"],
|
|
28
|
+
_tmpl$19 = ["<label class=\"k2b-chat-composer__command-search\"><i class=\"ti ti-search\" aria-hidden=\"true\"></i><input type=\"text\" role=\"combobox\"", " aria-autocomplete=\"list\"", " aria-expanded=\"true\"", " autocomplete=\"off\" autocapitalize=\"off\" spellcheck=\"false\"", "></label>"],
|
|
29
|
+
_tmpl$20 = ["<div role=\"status\" class=\"k2b-chat-composer__loading\"><i class=\"ti ti-loader-2 k2b-spin\" aria-hidden=\"true\"></i><strong>", "</strong></div>"],
|
|
30
|
+
_tmpl$21 = ["<div role=\"status\"><i class=\"ti ti-alert-circle\"></i> ", "</div>"],
|
|
31
|
+
_tmpl$22 = ["<div role=\"status\">", "</div>"],
|
|
32
|
+
_tmpl$23 = ["<div class=\"k2b-chat-composer-accessory\" data-commands", ">", "<div", " class=\"k2b-chat-composer__commands\" role=\"listbox\"", ">", "", "", "", "", "</div></div>"],
|
|
33
|
+
_tmpl$24 = ["<div class=\"k2b-chat-composer-slot\"", "><div style=\"", "\"", ">", "</div>", "", "", "</div>"],
|
|
34
|
+
_tmpl$25 = ["<div class=\"k2b-chat-composer__hint\" aria-live=\"polite\">", "</div>"],
|
|
35
|
+
_tmpl$26 = ["<div class=\"k2b-chat-composer__attachments\" role=\"list\"", " tabindex=\"0\">", "</div>"],
|
|
36
|
+
_tmpl$27 = ["<div class=\"k2b-chat-composer__error\" role=\"alert\"><i class=\"ti ti-alert-circle\" aria-hidden=\"true\"></i>", "</div>"],
|
|
37
|
+
_tmpl$28 = ["<div class=\"k2b-chat-composer__row\">", "", "<div class=\"k2b-chat-composer__field\">", "<div class=\"k2b-chat-composer__field-tools\">", "", "", "</div></div>", "</div>"],
|
|
38
|
+
_tmpl$29 = ["<div class=\"k2b-chat-composer-shell\">", "<section class=\"", "\"", " role=\"group\"", ">", "", "", "", "", "</section><div class=\"k2b-sr-only\" role=\"status\" aria-live=\"polite\">", "</div><div class=\"k2b-chat-composer__status\" role=\"status\">", "", "</div></div>"],
|
|
39
|
+
_tmpl$30 = ["<button id=\"", "\" type=\"button\" role=\"option\" tabindex=\"-1\"", "><span class=\"k2b-chat-composer__emoji-glyph\" aria-hidden=\"true\">", "</span><strong>", "</strong>", "</button>"],
|
|
40
|
+
_tmpl$31 = ["<small>:", ":</small>"],
|
|
41
|
+
_tmpl$32 = ["<small>", "</small>"],
|
|
42
|
+
_tmpl$33 = ["<button id=\"", "\" type=\"button\" role=\"option\" tabindex=\"-1\"", "><i", " aria-hidden=\"true\"></i><strong>", "</strong>", "</button>"],
|
|
43
|
+
_tmpl$34 = "<i class=\"ti ti-loader-2 k2b-spin\" aria-hidden=\"true\"></i>",
|
|
44
|
+
_tmpl$35 = ["<div class=\"k2b-chat-composer__command-group\" role=\"group\"", "><div class=\"k2b-chat-composer__command-heading\"", " role=\"presentation\"><span>", "</span>", "</div>", "", "</div>"],
|
|
45
|
+
_tmpl$36 = "<div class=\"k2b-chat-composer__command-placeholder\" aria-hidden=\"true\"><span></span><span><span></span><span></span></span></div>",
|
|
46
|
+
_tmpl$37 = ["<span class=\"k2b-chat-composer__hint-text\">", "</span>"],
|
|
47
|
+
_tmpl$38 = ["<span class=\"k2b-chat-composer__dictation\"", "><i", " aria-hidden=\"true\"></i><span>", "</span></span>"],
|
|
48
|
+
_tmpl$39 = ["<button type=\"button\" class=\"k2b-chat-composer__hint-action\"", ">", "</button>"],
|
|
49
|
+
_tmpl$40 = ["<div class=\"k2b-chat-composer__reply\">", "<button type=\"button\" class=\"k2b-chat-composer__icon-action k2b-chat-composer__reply-cancel\"", "><i class=\"ti ti-x\" aria-hidden=\"true\"></i></button></div>"],
|
|
50
|
+
_tmpl$41 = ["<div class=\"k2b-message-row__quote\">", "</div>"],
|
|
51
|
+
_tmpl$42 = ["<button type=\"button\" class=\"k2b-message-row__quote\">", "</button>"],
|
|
52
|
+
_tmpl$43 = ["<button type=\"button\" class=\"k2b-chat-composer__attachment-remove\"", "", "><i class=\"ti ti-x\" aria-hidden=\"true\"></i></button>"],
|
|
53
|
+
_tmpl$44 = ["<div class=\"k2b-chat-composer__attachment\" role=\"listitem\"><div class=\"", "\">", "", "</div>", "</div>"],
|
|
54
|
+
_tmpl$45 = ["<img", ">"],
|
|
55
|
+
_tmpl$46 = ["<div class=\"k2b-chat-composer__attachment-identity\">", "", "</div>"],
|
|
56
|
+
_tmpl$47 = ["<a class=\"k2b-chat-composer__attachment-link\"", " target=\"_blank\" rel=\"noopener noreferrer\"", ">", "", "</a>"],
|
|
57
|
+
_tmpl$48 = ["<button type=\"button\" class=\"k2b-chat-composer__attachment-action\"", ">", "", "</button>"],
|
|
58
|
+
_tmpl$49 = ["<footer class=\"k2b-chat-composer__footer\">", "</footer>"],
|
|
59
|
+
_tmpl$50 = ["<div class=\"k2b-chat-composer__tools\">", "", "", "", "", "", "", "</div>"],
|
|
60
|
+
_tmpl$51 = ["<div class=\"k2b-chat-composer__submit\">", "", "", "", "", "</div>"],
|
|
61
|
+
_tmpl$52 = ["<span>", "</span>"],
|
|
62
|
+
_tmpl$53 = ["<div class=\"k2b-chat-composer__status-line\"", "><i aria-hidden=\"true\"", "></i><span>", "</span></div>"],
|
|
63
|
+
_tmpl$54 = ["<span class=\"k2b-sr-only\">", "</span>"];
|
|
57
64
|
import { batch, children, createEffect, createMemo, createSignal, createUniqueId, For, Index, on, onCleanup, onMount, Show, untrack } from "solid-js";
|
|
58
65
|
import { Dropdown } from "../actions/Dropdown";
|
|
59
66
|
import { dialogHistorySettled, holdDialogHistory } from "../feedback/dialog-core";
|
|
@@ -72,7 +79,7 @@ import { ChatContextUsage as ContextUsage } from "./ChatPrimitives";
|
|
|
72
79
|
import { chatCommandKey, conversationEnterAction, executeChatAction, nextChatCommandIndex, reportChatFailure, runChatSubmission } from "./chat-behavior";
|
|
73
80
|
import { useChatMessages } from "./chat-messages";
|
|
74
81
|
import { chatCommandListModel, parseChatCommandQuery } from "./command-search";
|
|
75
|
-
import { chatCommandQuery, chatMentionSegments, reconcileChatMentions } from "./composer-document";
|
|
82
|
+
import { chatCommandQuery, chatMentionSegments, chatPeopleQuery, reconcileChatMentions } from "./composer-document";
|
|
76
83
|
const composerMaxInputHeight = 309;
|
|
77
84
|
const commandDoneMs = 3_000;
|
|
78
85
|
/** Emoji suggestions for a `:shortcode`, as many as fit the list without scrolling on a phone. */
|
|
@@ -98,6 +105,10 @@ const composerUndoBudgetChars = 1_000_000;
|
|
|
98
105
|
|
|
99
106
|
/** Passed as the third argument to `searchCommands`. */
|
|
100
107
|
|
|
108
|
+
/** A person `@` can mention: a member of the conversation, a person or an agent. */
|
|
109
|
+
|
|
110
|
+
/** Suggests people for `@`; the composer inserts the chosen one as a mention named "@Name". */
|
|
111
|
+
|
|
101
112
|
/** The row stays short: what a chat message needs. Other Markdown, typed by hand, keeps working. */
|
|
102
113
|
const formatTools = [{
|
|
103
114
|
id: "bold",
|
|
@@ -295,6 +306,32 @@ export function ChatComposer(props) {
|
|
|
295
306
|
return token && index ? suggestEmoji(index, token.query, emojiSuggestionLimit) : [];
|
|
296
307
|
});
|
|
297
308
|
const emojiOpen = () => emojiMatches().length > 0;
|
|
309
|
+
// People for `@name`: each change of the query asks again and gives up the previous question.
|
|
310
|
+
const peopleQuery = createMemo(() => !props.people || dismissed() || composing() ? null : chatPeopleQuery(props.value, caret(), selectionEnd(), mentions()));
|
|
311
|
+
// Results belong to the query they answer; while a newer query is asked, the older results show nothing to pick.
|
|
312
|
+
const [peopleResults, setPeopleResults] = createSignal();
|
|
313
|
+
const peopleMatches = () => {
|
|
314
|
+
const results = peopleResults();
|
|
315
|
+
return results && results.query === peopleQuery()?.query ? results.people : [];
|
|
316
|
+
};
|
|
317
|
+
const setPeopleMatches = (people, query = peopleQuery()?.query ?? "") => setPeopleResults({
|
|
318
|
+
query,
|
|
319
|
+
people
|
|
320
|
+
});
|
|
321
|
+
createEffect(on(() => [peopleQuery()?.start, peopleQuery()?.query], ([start, query]) => {
|
|
322
|
+
if (start === undefined || query === undefined || !props.people) {
|
|
323
|
+
setPeopleMatches([]);
|
|
324
|
+
return;
|
|
325
|
+
}
|
|
326
|
+
const abort = new AbortController();
|
|
327
|
+
onCleanup(() => abort.abort());
|
|
328
|
+
props.people.search(query, abort.signal).then(found => {
|
|
329
|
+
if (!abort.signal.aborted) setPeopleMatches(found.slice(0, 8), query);
|
|
330
|
+
}, () => {
|
|
331
|
+
if (!abort.signal.aborted) setPeopleMatches([], query);
|
|
332
|
+
});
|
|
333
|
+
}));
|
|
334
|
+
const peopleOpen = () => !emojiOpen() && Boolean(peopleQuery()) && peopleMatches().length > 0;
|
|
298
335
|
// From "+", the search field's text is the query of an empty token at the field's stored caret.
|
|
299
336
|
const caretCommandToken = createMemo(() => {
|
|
300
337
|
const search = addSearch();
|
|
@@ -389,7 +426,7 @@ export function ChatComposer(props) {
|
|
|
389
426
|
currentCommandQuery();
|
|
390
427
|
setCommandMoved(false);
|
|
391
428
|
});
|
|
392
|
-
const commandsOpen = () => Boolean(!emojiOpen() && commandQuery() && (localCommands().length || props.searchCommands || commandFallbackRow()));
|
|
429
|
+
const commandsOpen = () => Boolean(!emojiOpen() && !peopleOpen() && commandQuery() && (localCommands().length || props.searchCommands || commandFallbackRow()));
|
|
393
430
|
// Rows that arrive for a pending section never move a visible row of the overview: until the person types, the list
|
|
394
431
|
// keeps the height it had with its placeholders and scrolls what does not fit. A list below its maximum height grows
|
|
395
432
|
// upward from the field, so a change of height alone would move its first row. While searching, the rows arrive
|
|
@@ -459,7 +496,7 @@ export function ChatComposer(props) {
|
|
|
459
496
|
if (!commandSheetHeld()) return;
|
|
460
497
|
onCleanup(holdDialogHistory(() => closeCommandList()));
|
|
461
498
|
});
|
|
462
|
-
const suggestionsOpen = () => commandsOpen() || emojiOpen();
|
|
499
|
+
const suggestionsOpen = () => commandsOpen() || emojiOpen() || peopleOpen();
|
|
463
500
|
const fieldOwnsList = () => suggestionsOpen() && !addSearch();
|
|
464
501
|
// From "+", the panel keeps the height it opened with while the person types or rows arrive, so neither the search
|
|
465
502
|
// field nor the first row moves; what does not fit scrolls. The space above the field still bounds it.
|
|
@@ -774,7 +811,7 @@ export function ChatComposer(props) {
|
|
|
774
811
|
const editBlocked = () => conversation() ? busy() : blocked();
|
|
775
812
|
const hasDraft = () => Boolean(props.value.trim() || !running() && attachments().length > 0);
|
|
776
813
|
/** The draft may go out now, apart from a submission that is already on its way. */
|
|
777
|
-
const submittable = () => !busy() && hasDraft() && !(running() && runningSubmitIntent() === "steer" && mentions().length);
|
|
814
|
+
const submittable = () => !busy() && !props.submitDisabled && hasDraft() && !(running() && runningSubmitIntent() === "steer" && mentions().length);
|
|
778
815
|
const canSubmit = () => !submitting() && submittable();
|
|
779
816
|
const canSelectFiles = () => Boolean(props.fileSelection && !props.fileSelection.disabled && !running() && !blocked());
|
|
780
817
|
const hasAddMenu = () => Boolean(props.fileSelection || props.menuActions?.length);
|
|
@@ -804,7 +841,16 @@ export function ChatComposer(props) {
|
|
|
804
841
|
label: action.label,
|
|
805
842
|
variant: action.variant,
|
|
806
843
|
disabled: action.disabled,
|
|
807
|
-
action: () => reportChatFailure(() =>
|
|
844
|
+
action: () => reportChatFailure(async () => {
|
|
845
|
+
await executeChatAction(action);
|
|
846
|
+
// Like attaching files, an add action returns to the field when the focus is still on this composer's add
|
|
847
|
+
// button or nowhere; focus the action moved somewhere on purpose stays there.
|
|
848
|
+
queueMicrotask(() => {
|
|
849
|
+
const active = textareaRef?.ownerDocument.activeElement;
|
|
850
|
+
const root = textareaRef?.closest(".k2b-chat-composer");
|
|
851
|
+
if (!active || active === active.ownerDocument.body || root?.contains(active) && active.matches("[data-chat-composer-add]")) focus();
|
|
852
|
+
});
|
|
853
|
+
}, props.onError)
|
|
808
854
|
});
|
|
809
855
|
}
|
|
810
856
|
return items;
|
|
@@ -835,11 +881,12 @@ export function ChatComposer(props) {
|
|
|
835
881
|
});
|
|
836
882
|
createEffect(() => {
|
|
837
883
|
emojiMatches();
|
|
884
|
+
peopleMatches();
|
|
838
885
|
setSelectedCommandIndex(0);
|
|
839
886
|
});
|
|
840
887
|
createEffect(() => {
|
|
841
888
|
const command = selectedCommand();
|
|
842
|
-
const id = emojiOpen() ? `${commandListId}-${selectedCommandIndex()}` : command ? commandOptionId(command) : undefined;
|
|
889
|
+
const id = emojiOpen() || peopleOpen() ? `${commandListId}-${selectedCommandIndex()}` : command ? commandOptionId(command) : undefined;
|
|
843
890
|
queueMicrotask(() => {
|
|
844
891
|
const list = commandListRef;
|
|
845
892
|
const item = id ? list?.querySelector(`[id="${id}"]`) : undefined;
|
|
@@ -1286,6 +1333,32 @@ export function ChatComposer(props) {
|
|
|
1286
1333
|
syncCaret();
|
|
1287
1334
|
reportChatFailure(() => props.emoji?.onPick?.(emoji), props.onError);
|
|
1288
1335
|
};
|
|
1336
|
+
/** Replaces `@query` with "@Name" as a mention and a space, as one edit the person can undo. */
|
|
1337
|
+
const pickPersonSuggestion = position => {
|
|
1338
|
+
const token = peopleQuery();
|
|
1339
|
+
const person = peopleMatches()[position];
|
|
1340
|
+
if (!token || !person || !textareaRef || editBlocked()) return;
|
|
1341
|
+
const text = `@${person.name}`;
|
|
1342
|
+
const nextValue = `${props.value.slice(0, token.start)}${text} ${props.value.slice(token.end)}`;
|
|
1343
|
+
const nextMentions = reconcileChatMentions(props.value, nextValue, mentions());
|
|
1344
|
+
nextMentions.push({
|
|
1345
|
+
start: token.start,
|
|
1346
|
+
end: token.start + text.length,
|
|
1347
|
+
attachment: {
|
|
1348
|
+
id: person.id,
|
|
1349
|
+
name: text,
|
|
1350
|
+
kind: "resource",
|
|
1351
|
+
icon: person.agent ? "ti ti-robot" : "ti ti-user"
|
|
1352
|
+
}
|
|
1353
|
+
});
|
|
1354
|
+
edit(nextValue, nextMentions);
|
|
1355
|
+
setPeopleMatches([]);
|
|
1356
|
+
const after = token.start + text.length + 1;
|
|
1357
|
+
queueMicrotask(() => {
|
|
1358
|
+
textareaRef?.setSelectionRange(after, after);
|
|
1359
|
+
syncCaret();
|
|
1360
|
+
});
|
|
1361
|
+
};
|
|
1289
1362
|
const pickEmojiSuggestion = position => {
|
|
1290
1363
|
const token = emojiQuery();
|
|
1291
1364
|
const entry = emojiMatches()[position];
|
|
@@ -1384,17 +1457,18 @@ export function ChatComposer(props) {
|
|
|
1384
1457
|
restoreHistory(event.shiftKey ? 1 : -1);
|
|
1385
1458
|
return;
|
|
1386
1459
|
}
|
|
1387
|
-
if (emojiOpen()) {
|
|
1460
|
+
if (emojiOpen() || peopleOpen()) {
|
|
1461
|
+
const count = emojiOpen() ? emojiMatches().length : peopleMatches().length;
|
|
1388
1462
|
if (event.key === "ArrowUp" || event.key === "ArrowDown") {
|
|
1389
1463
|
event.preventDefault();
|
|
1390
|
-
setSelectedCommandIndex(index => nextChatCommandIndex(index,
|
|
1464
|
+
setSelectedCommandIndex(index => nextChatCommandIndex(index, count, event.key === "ArrowUp" ? -1 : 1));
|
|
1391
1465
|
return;
|
|
1392
1466
|
}
|
|
1393
1467
|
// Only a plain Enter or Tab picks: Shift+Enter still breaks the line, Shift+Tab still moves the focus back.
|
|
1394
1468
|
const plain = !event.shiftKey && !event.altKey && !event.ctrlKey && !event.metaKey;
|
|
1395
1469
|
if (plain && (event.key === "Enter" || event.key === "Tab")) {
|
|
1396
1470
|
event.preventDefault();
|
|
1397
|
-
pickEmojiSuggestion(selectedCommandIndex());
|
|
1471
|
+
if (emojiOpen()) pickEmojiSuggestion(selectedCommandIndex());else pickPersonSuggestion(selectedCommandIndex());
|
|
1398
1472
|
return;
|
|
1399
1473
|
}
|
|
1400
1474
|
if (event.key === "Escape") {
|
|
@@ -1517,6 +1591,7 @@ export function ChatComposer(props) {
|
|
|
1517
1591
|
return _$createComponent(Dropdown.Trigger, {
|
|
1518
1592
|
appearance: "plain",
|
|
1519
1593
|
"class": `k2b-chat-composer__icon-action${extraClass}`,
|
|
1594
|
+
"data-chat-composer-add": "",
|
|
1520
1595
|
get label() {
|
|
1521
1596
|
return chatMessages().addToChat;
|
|
1522
1597
|
},
|
|
@@ -1853,7 +1928,7 @@ export function ChatComposer(props) {
|
|
|
1853
1928
|
children: part => _$ssr(_tmpl$10, Boolean(part.mention) ? "k2b-chat-composer__mention" : "", _$escape(part.text))
|
|
1854
1929
|
})));
|
|
1855
1930
|
}
|
|
1856
|
-
})), mentions().length > 0 ? "k2b-chat-composer__textarea--highlighted" : "", _$ssrAttribute("value", _$escape(props.value, true), false), _$ssrAttribute("disabled", editBlocked() && openingRow() === undefined, true) + _$ssrAttribute("readonly", _$escape(openingRow(), true) !== _$escape(undefined, true), false) + _$ssrAttribute("enterkeyhint", conversation() ? "enter" : _$escape(undefined, true), false) + _$ssrAttribute("placeholder", _$escape(props.placeholder ?? (running() ? chatMessages().addGuidance : conversation() ? chatMessages().writeConversationMessage : chatMessages().writeMessage), true), false) + _$ssrAttribute("aria-label", _$escape(props.inputLabel ?? messages().message, true), false) + _$ssrAttribute("role", fieldOwnsList() ? "combobox" : _$escape(undefined, true), false) + _$ssrAttribute("aria-autocomplete", fieldOwnsList() ? "list" : _$escape(undefined, true), false) + _$ssrAttribute("aria-controls", fieldOwnsList() ? _$escape(commandListId, true) : _$escape(undefined, true), false) + _$ssrAttribute("aria-expanded", fieldOwnsList() ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("aria-activedescendant", !fieldOwnsList() ? _$escape(undefined, true) : emojiOpen() ? `${_$escape(commandListId, true)}-${_$escape(selectedCommandIndex(), true)}` : selectedCommand() ? _$escape(commandOptionId(selectedCommand()), true) : _$escape(undefined, true), false), _$escape(_$createComponent(Show, {
|
|
1931
|
+
})), mentions().length > 0 ? "k2b-chat-composer__textarea--highlighted" : "", _$ssrAttribute("value", _$escape(props.value, true), false), _$ssrAttribute("disabled", editBlocked() && openingRow() === undefined, true) + _$ssrAttribute("readonly", _$escape(openingRow(), true) !== _$escape(undefined, true), false) + _$ssrAttribute("enterkeyhint", conversation() ? "enter" : _$escape(undefined, true), false) + _$ssrAttribute("placeholder", _$escape(props.placeholder ?? (running() ? chatMessages().addGuidance : conversation() ? chatMessages().writeConversationMessage : chatMessages().writeMessage), true), false) + _$ssrAttribute("aria-label", _$escape(props.inputLabel ?? messages().message, true), false) + _$ssrAttribute("role", fieldOwnsList() ? "combobox" : _$escape(undefined, true), false) + _$ssrAttribute("aria-autocomplete", fieldOwnsList() ? "list" : _$escape(undefined, true), false) + _$ssrAttribute("aria-controls", fieldOwnsList() ? _$escape(commandListId, true) : _$escape(undefined, true), false) + _$ssrAttribute("aria-expanded", fieldOwnsList() ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("aria-activedescendant", !fieldOwnsList() ? _$escape(undefined, true) : emojiOpen() || peopleOpen() ? `${_$escape(commandListId, true)}-${_$escape(selectedCommandIndex(), true)}` : selectedCommand() ? _$escape(commandOptionId(selectedCommand()), true) : _$escape(undefined, true), false), _$escape(_$createComponent(Show, {
|
|
1857
1932
|
get when() {
|
|
1858
1933
|
return conversation();
|
|
1859
1934
|
},
|
|
@@ -1902,25 +1977,45 @@ export function ChatComposer(props) {
|
|
|
1902
1977
|
}
|
|
1903
1978
|
})));
|
|
1904
1979
|
};
|
|
1905
|
-
|
|
1980
|
+
const replyQuote = reply => [_$ssr(_tmpl$16, _$escape(chatMessages().replyingTo), _$escape(reply.author)), _$ssr(_tmpl$17, _$escape(reply.text))];
|
|
1981
|
+
return _$ssr(_tmpl$29, _$escape(_$createComponent(Show, {
|
|
1906
1982
|
get when() {
|
|
1907
1983
|
return suggestionsOpen() || hasAccessory();
|
|
1908
1984
|
},
|
|
1909
1985
|
get children() {
|
|
1910
|
-
return _$ssr(_tmpl$
|
|
1986
|
+
return _$ssr(_tmpl$24, _$ssrAttribute("data-overlay", hasAccessory() ? _$escape(undefined, true) : "true", false), _$ssrStyleProperty("visibility:", suggestionsOpen() ? "hidden" : _$escape(undefined, true)), _$ssrAttribute("inert", suggestionsOpen(), true), _$escape(accessory()), _$escape(_$createComponent(Show, {
|
|
1911
1987
|
get when() {
|
|
1912
1988
|
return emojiOpen();
|
|
1913
1989
|
},
|
|
1914
1990
|
get children() {
|
|
1915
|
-
return _$ssr(_tmpl$
|
|
1991
|
+
return _$ssr(_tmpl$18, _$ssrAttribute("id", _$escape(commandListId, true), false), _$ssrAttribute("aria-label", _$escape(chatMessages().emojiSuggestions, true), false), _$escape(_$createComponent(For, {
|
|
1916
1992
|
get each() {
|
|
1917
1993
|
return emojiMatches();
|
|
1918
1994
|
},
|
|
1919
|
-
children: (entry, index) => _$ssr(_tmpl$
|
|
1995
|
+
children: (entry, index) => _$ssr(_tmpl$30, `${_$escape(commandListId, true)}-${_$escape(index(), true)}`, _$ssrAttribute("aria-selected", _$escape(index(), true) === _$escape(selectedCommandIndex(), true), false) + _$ssrAttribute("aria-label", _$escape(emojiName(entry, locale()), true), false) + _$ssrAttribute("data-active", index() === selectedCommandIndex() ? "true" : _$escape(undefined, true), false), _$escape(emojiInTone(entry, props.emoji?.skinTone ?? 0)), _$escape(emojiName(entry, locale())), _$escape(_$createComponent(Show, {
|
|
1920
1996
|
get when() {
|
|
1921
1997
|
return entry.shortcodes[0];
|
|
1922
1998
|
},
|
|
1923
|
-
children: code => _$ssr(_tmpl$
|
|
1999
|
+
children: code => _$ssr(_tmpl$31, _$escape(code()))
|
|
2000
|
+
})))
|
|
2001
|
+
})));
|
|
2002
|
+
}
|
|
2003
|
+
})), _$escape(_$createComponent(Show, {
|
|
2004
|
+
get when() {
|
|
2005
|
+
return peopleOpen();
|
|
2006
|
+
},
|
|
2007
|
+
get children() {
|
|
2008
|
+
return _$ssr(_tmpl$18, _$ssrAttribute("id", _$escape(commandListId, true), false), _$ssrAttribute("aria-label", _$escape(chatMessages().peopleSuggestions, true), false), _$escape(_$createComponent(For, {
|
|
2009
|
+
get each() {
|
|
2010
|
+
return peopleMatches();
|
|
2011
|
+
},
|
|
2012
|
+
children: (person, index) => _$ssr(_tmpl$33, `${_$escape(commandListId, true)}-${_$escape(index(), true)}`, _$ssrAttribute("aria-selected", _$escape(index(), true) === _$escape(selectedCommandIndex(), true), false) + _$ssrAttribute("data-active", index() === selectedCommandIndex() ? "true" : _$escape(undefined, true), false), _$ssrAttribute("class", person.agent ? "ti ti-robot" : "ti ti-user", false), _$escape(person.name), _$escape(_$createComponent(Show, {
|
|
2013
|
+
get when() {
|
|
2014
|
+
return person.agent;
|
|
2015
|
+
},
|
|
2016
|
+
get children() {
|
|
2017
|
+
return _$ssr(_tmpl$32, _$escape(chatMessages().agentLabel));
|
|
2018
|
+
}
|
|
1924
2019
|
})))
|
|
1925
2020
|
})));
|
|
1926
2021
|
}
|
|
@@ -1929,12 +2024,12 @@ export function ChatComposer(props) {
|
|
|
1929
2024
|
return commandsOpen();
|
|
1930
2025
|
},
|
|
1931
2026
|
get children() {
|
|
1932
|
-
return _$ssr(_tmpl$
|
|
2027
|
+
return _$ssr(_tmpl$23, _$ssrAttribute("data-search", addSearch() ? "" : _$escape(undefined, true), false), _$escape(_$createComponent(Show, {
|
|
1933
2028
|
get when() {
|
|
1934
2029
|
return addSearch();
|
|
1935
2030
|
},
|
|
1936
2031
|
get children() {
|
|
1937
|
-
return _$ssr(_tmpl$
|
|
2032
|
+
return _$ssr(_tmpl$19, _$ssrAttribute("value", _$escape(addQuery(), true), false) + _$ssrAttribute("placeholder", _$escape(chatMessages().commandSearch, true), false) + _$ssrAttribute("aria-label", _$escape(chatMessages().commandSearchLabel, true), false), _$ssrAttribute("aria-controls", _$escape(commandListId, true), false), _$ssrAttribute("aria-activedescendant", selectedCommand() ? _$escape(commandOptionId(selectedCommand()), true) : _$escape(undefined, true), false), _$ssrAttribute("readonly", _$escape(openingRow(), true) !== _$escape(undefined, true), false));
|
|
1938
2033
|
}
|
|
1939
2034
|
})), _$ssrAttribute("id", _$escape(commandListId, true), false), _$ssrAttribute("aria-label", _$escape(chatMessages().commands, true), false) + _$ssrAttribute("aria-busy", searching() ? "true" : _$escape(undefined, true), false), _$escape(_$createComponent(For, {
|
|
1940
2035
|
get each() {
|
|
@@ -1955,12 +2050,12 @@ export function ChatComposer(props) {
|
|
|
1955
2050
|
});
|
|
1956
2051
|
},
|
|
1957
2052
|
get children() {
|
|
1958
|
-
return _$ssr(_tmpl$
|
|
2053
|
+
return _$ssr(_tmpl$35, _$ssrAttribute("aria-labelledby", _$escape(headingId(), true), false), _$ssrAttribute("id", _$escape(headingId(), true), false), _$escape(group()?.scopeTitle ?? group()?.section?.label), _$escape(_$createComponent(Show, {
|
|
1959
2054
|
get when() {
|
|
1960
2055
|
return group()?.loading;
|
|
1961
2056
|
},
|
|
1962
2057
|
get children() {
|
|
1963
|
-
return _$ssr(_tmpl$
|
|
2058
|
+
return _$ssr(_tmpl$34);
|
|
1964
2059
|
}
|
|
1965
2060
|
})), _$escape(_$createComponent(For, {
|
|
1966
2061
|
get each() {
|
|
@@ -1973,7 +2068,7 @@ export function ChatComposer(props) {
|
|
|
1973
2068
|
length: Math.max(group()?.placeholder ? 1 : 0, group()?.pendingRows ?? 0)
|
|
1974
2069
|
});
|
|
1975
2070
|
},
|
|
1976
|
-
children: () => _$ssr(_tmpl$
|
|
2071
|
+
children: () => _$ssr(_tmpl$36)
|
|
1977
2072
|
})));
|
|
1978
2073
|
}
|
|
1979
2074
|
});
|
|
@@ -1983,21 +2078,21 @@ export function ChatComposer(props) {
|
|
|
1983
2078
|
return _$memo(() => !!(searching() && foundCommandCount() === 0))() && !commandModel().groups.some(group => group.section || group.scopeTitle);
|
|
1984
2079
|
},
|
|
1985
2080
|
get children() {
|
|
1986
|
-
return _$ssr(_tmpl$
|
|
2081
|
+
return _$ssr(_tmpl$20, _$escape(messages().loading));
|
|
1987
2082
|
}
|
|
1988
2083
|
})), _$escape(_$createComponent(Show, {
|
|
1989
2084
|
get when() {
|
|
1990
2085
|
return searchError();
|
|
1991
2086
|
},
|
|
1992
2087
|
get children() {
|
|
1993
|
-
return _$ssr(_tmpl$
|
|
2088
|
+
return _$ssr(_tmpl$21, _$escape(messages().error));
|
|
1994
2089
|
}
|
|
1995
2090
|
})), _$escape(_$createComponent(Show, {
|
|
1996
2091
|
get when() {
|
|
1997
2092
|
return _$memo(() => !!(!searching() && !searchError() && foundCommandCount() === 0))() && !commandModel().groups.some(group => group.pendingRows);
|
|
1998
2093
|
},
|
|
1999
2094
|
get children() {
|
|
2000
|
-
return _$ssr(_tmpl$
|
|
2095
|
+
return _$ssr(_tmpl$22, !parsedCommandQuery().query.trim() ? _$escape(messages().noResults) : _$escape(chatMessages().commandsNothingFound({
|
|
2001
2096
|
query: parsedCommandQuery().query.trim()
|
|
2002
2097
|
})));
|
|
2003
2098
|
}
|
|
@@ -2016,36 +2111,49 @@ export function ChatComposer(props) {
|
|
|
2016
2111
|
return showHint();
|
|
2017
2112
|
},
|
|
2018
2113
|
get children() {
|
|
2019
|
-
return _$ssr(_tmpl$
|
|
2114
|
+
return _$ssr(_tmpl$25, _$escape(_$createComponent(Show, {
|
|
2020
2115
|
get when() {
|
|
2021
2116
|
return dictationStatus();
|
|
2022
2117
|
},
|
|
2023
2118
|
get fallback() {
|
|
2024
|
-
return _$ssr(_tmpl$
|
|
2119
|
+
return _$ssr(_tmpl$37, _$escape(hint()));
|
|
2025
2120
|
},
|
|
2026
|
-
children: status => [_$ssr(_tmpl$
|
|
2121
|
+
children: status => [_$ssr(_tmpl$38, _$ssrAttribute("data-state", _$escape(dictation() ?? undefined, true), false), _$ssrAttribute("class", _$escape(status().icon, true), false), _$escape(status().text)), _$createComponent(Show, {
|
|
2027
2122
|
get when() {
|
|
2028
2123
|
return _$memo(() => dictation() === "refined")() ? props.microphone?.onRestoreOriginal : undefined;
|
|
2029
2124
|
},
|
|
2030
|
-
children: restore => _$ssr(_tmpl$
|
|
2125
|
+
children: restore => _$ssr(_tmpl$39, _$ssrAttribute("disabled", microphoneDisabled(), true), _$escape(chatMessages().restoreOriginal))
|
|
2031
2126
|
})]
|
|
2032
2127
|
})));
|
|
2033
2128
|
}
|
|
2129
|
+
})), _$escape(_$createComponent(Show, {
|
|
2130
|
+
get when() {
|
|
2131
|
+
return props.reply;
|
|
2132
|
+
},
|
|
2133
|
+
children: reply => _$ssr(_tmpl$40, _$escape(_$createComponent(Show, {
|
|
2134
|
+
get when() {
|
|
2135
|
+
return reply().onSelect;
|
|
2136
|
+
},
|
|
2137
|
+
get fallback() {
|
|
2138
|
+
return _$ssr(_tmpl$41, _$escape(replyQuote(reply())));
|
|
2139
|
+
},
|
|
2140
|
+
children: select => _$ssr(_tmpl$42, _$escape(replyQuote(reply())))
|
|
2141
|
+
})), _$ssrAttribute("aria-label", _$escape(chatMessages().cancelReply, true), false) + _$ssrAttribute("title", _$escape(chatMessages().cancelReply, true), false))
|
|
2034
2142
|
})), _$escape(_$createComponent(Show, {
|
|
2035
2143
|
get when() {
|
|
2036
2144
|
return attachments().length > 0;
|
|
2037
2145
|
},
|
|
2038
2146
|
get children() {
|
|
2039
|
-
return _$ssr(_tmpl$
|
|
2147
|
+
return _$ssr(_tmpl$26, _$ssrAttribute("aria-label", _$escape(chatMessages().attachments, true), false), _$escape(_$createComponent(For, {
|
|
2040
2148
|
get each() {
|
|
2041
2149
|
return attachments();
|
|
2042
2150
|
},
|
|
2043
|
-
children: attachment => _$ssr(_tmpl$
|
|
2151
|
+
children: attachment => _$ssr(_tmpl$44, `k2b-chat-composer__attachment-content ${Boolean(attachment.action) ? "k2b-chat-composer__attachment-content--action" : ""}`, _$escape(_$createComponent(Show, {
|
|
2044
2152
|
get when() {
|
|
2045
2153
|
return attachment.href;
|
|
2046
2154
|
},
|
|
2047
2155
|
get fallback() {
|
|
2048
|
-
return _$ssr(_tmpl$
|
|
2156
|
+
return _$ssr(_tmpl$46, _$escape(_$createComponent(Show, {
|
|
2049
2157
|
get when() {
|
|
2050
2158
|
return _$memo(() => attachment.kind === "image")() && attachment.previewUrl;
|
|
2051
2159
|
},
|
|
@@ -2053,11 +2161,11 @@ export function ChatComposer(props) {
|
|
|
2053
2161
|
return _$ssr(_tmpl$3, _$ssrAttribute("class", _$escape(attachmentIcon(attachment), true), false));
|
|
2054
2162
|
},
|
|
2055
2163
|
get children() {
|
|
2056
|
-
return _$ssr(_tmpl$
|
|
2164
|
+
return _$ssr(_tmpl$45, _$ssrAttribute("src", _$escape(attachment.previewUrl, true), false) + _$ssrAttribute("alt", _$escape(attachment.alt ?? "", true), false));
|
|
2057
2165
|
}
|
|
2058
2166
|
})), _$escape(renderAttachmentCopy(attachment)));
|
|
2059
2167
|
},
|
|
2060
|
-
children: href => _$ssr(_tmpl$
|
|
2168
|
+
children: href => _$ssr(_tmpl$47, _$ssrAttribute("href", _$escape(href(), true), false), _$ssrAttribute("aria-label", _$escape(chatMessages().openInNewTab({
|
|
2061
2169
|
name: attachment.name
|
|
2062
2170
|
}), true), false), _$escape(_$createComponent(Show, {
|
|
2063
2171
|
get when() {
|
|
@@ -2067,14 +2175,14 @@ export function ChatComposer(props) {
|
|
|
2067
2175
|
return _$ssr(_tmpl$3, _$ssrAttribute("class", _$escape(attachmentIcon(attachment), true), false));
|
|
2068
2176
|
},
|
|
2069
2177
|
get children() {
|
|
2070
|
-
return _$ssr(_tmpl$
|
|
2178
|
+
return _$ssr(_tmpl$45, _$ssrAttribute("src", _$escape(attachment.previewUrl, true), false) + _$ssrAttribute("alt", _$escape(attachment.alt ?? "", true), false));
|
|
2071
2179
|
}
|
|
2072
2180
|
})), _$escape(renderAttachmentCopy(attachment)))
|
|
2073
2181
|
})), _$escape(_$createComponent(Show, {
|
|
2074
2182
|
get when() {
|
|
2075
2183
|
return attachment.action;
|
|
2076
2184
|
},
|
|
2077
|
-
children: action => _$ssr(_tmpl$
|
|
2185
|
+
children: action => _$ssr(_tmpl$48, _$ssrAttribute("disabled", blocked() || action().disabled, true), _$escape(_$createComponent(Show, {
|
|
2078
2186
|
get when() {
|
|
2079
2187
|
return action().icon;
|
|
2080
2188
|
},
|
|
@@ -2085,7 +2193,7 @@ export function ChatComposer(props) {
|
|
|
2085
2193
|
return props.onAttachmentsChange;
|
|
2086
2194
|
},
|
|
2087
2195
|
get children() {
|
|
2088
|
-
return _$ssr(_tmpl$
|
|
2196
|
+
return _$ssr(_tmpl$43, _$ssrAttribute("aria-label", _$escape(selectMessages().removeNamed({
|
|
2089
2197
|
name: attachment.name
|
|
2090
2198
|
}), true), false), _$ssrAttribute("disabled", blocked(), true));
|
|
2091
2199
|
}
|
|
@@ -2102,14 +2210,14 @@ export function ChatComposer(props) {
|
|
|
2102
2210
|
return props.error;
|
|
2103
2211
|
},
|
|
2104
2212
|
get children() {
|
|
2105
|
-
return _$ssr(_tmpl$
|
|
2213
|
+
return _$ssr(_tmpl$27, _$escape(props.error));
|
|
2106
2214
|
}
|
|
2107
|
-
}), formatRow(), _$ssr(_tmpl$
|
|
2215
|
+
}), formatRow(), _$ssr(_tmpl$49, _$escape(_$createComponent(Show, {
|
|
2108
2216
|
get when() {
|
|
2109
2217
|
return footer();
|
|
2110
2218
|
},
|
|
2111
2219
|
get fallback() {
|
|
2112
|
-
return [_$ssr(_tmpl$
|
|
2220
|
+
return [_$ssr(_tmpl$50, _$escape(props.footerTools), _$escape(_$createComponent(Show, {
|
|
2113
2221
|
get when() {
|
|
2114
2222
|
return addOpensCommands();
|
|
2115
2223
|
},
|
|
@@ -2172,7 +2280,7 @@ export function ChatComposer(props) {
|
|
|
2172
2280
|
}
|
|
2173
2281
|
});
|
|
2174
2282
|
}
|
|
2175
|
-
})), _$escape(props.modelDetails)), _$ssr(_tmpl$
|
|
2283
|
+
})), _$escape(props.modelDetails)), _$ssr(_tmpl$51, _$escape(_$createComponent(For, {
|
|
2176
2284
|
get each() {
|
|
2177
2285
|
return props.contextActions;
|
|
2178
2286
|
},
|
|
@@ -2224,9 +2332,9 @@ export function ChatComposer(props) {
|
|
|
2224
2332
|
return props.error;
|
|
2225
2333
|
},
|
|
2226
2334
|
get children() {
|
|
2227
|
-
return _$ssr(_tmpl$
|
|
2335
|
+
return _$ssr(_tmpl$27, _$escape(props.error));
|
|
2228
2336
|
}
|
|
2229
|
-
}), formatRow(), _$ssr(_tmpl$
|
|
2337
|
+
}), formatRow(), _$ssr(_tmpl$28, _$escape(attachControl()), _$escape(fileInput()), _$escape(field()), _$escape(formatToggle()), _$escape(emojiButton()), _$escape(microphoneControl()), _$escape(sendControl()))];
|
|
2230
2338
|
}
|
|
2231
2339
|
})), _$escape(_$createComponent(Show, {
|
|
2232
2340
|
get when() {
|
|
@@ -2252,18 +2360,18 @@ export function ChatComposer(props) {
|
|
|
2252
2360
|
return suggestionAnnouncement();
|
|
2253
2361
|
},
|
|
2254
2362
|
keyed: true,
|
|
2255
|
-
children: announced => _$ssr(_tmpl$
|
|
2363
|
+
children: announced => _$ssr(_tmpl$52, _$escape(announced.text))
|
|
2256
2364
|
})), _$escape(_$createComponent(Show, {
|
|
2257
2365
|
get when() {
|
|
2258
2366
|
return _$memo(() => !!!suggestionsOpen())() && commandStatus();
|
|
2259
2367
|
},
|
|
2260
|
-
children: status => _$ssr(_tmpl$
|
|
2368
|
+
children: status => _$ssr(_tmpl$53, _$ssrAttribute("data-tone", _$escape(status().tone, true), false), _$ssrAttribute("class", status().tone === "busy" ? "ti ti-loader-2 k2b-spin" : status().tone === "done" ? "ti ti-check" : "ti ti-alert-circle", false), _$escape(status().text))
|
|
2261
2369
|
})), _$escape(_$createComponent(Show, {
|
|
2262
2370
|
get when() {
|
|
2263
2371
|
return _$memo(() => !!suggestionsOpen())() && announcement();
|
|
2264
2372
|
},
|
|
2265
2373
|
keyed: true,
|
|
2266
|
-
children: announced => _$ssr(_tmpl$
|
|
2374
|
+
children: announced => _$ssr(_tmpl$54, _$escape(announced.text))
|
|
2267
2375
|
})));
|
|
2268
2376
|
}
|
|
2269
2377
|
//# sourceMappingURL=ChatComposer.js.map
|