@k2b/ui 0.27.0 → 0.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/base.css +147 -2
- package/dist/browser/actions/ContextMenu.js +35 -4
- package/dist/browser/actions/ContextMenu.js.map +1 -1
- package/dist/browser/actions/DragAndDrop.js +89 -0
- package/dist/browser/actions/DragAndDrop.js.map +1 -0
- package/dist/browser/actions/Dropdown.js +184 -158
- package/dist/browser/actions/Dropdown.js.map +1 -1
- package/dist/browser/actions/GestureMenu.js +95 -139
- package/dist/browser/actions/GestureMenu.js.map +1 -1
- package/dist/browser/actions/Toolbar.js +379 -48
- package/dist/browser/actions/Toolbar.js.map +1 -1
- package/dist/browser/actions/drag-and-drop-messages.js +75 -0
- package/dist/browser/actions/drag-and-drop-messages.js.map +1 -0
- package/dist/browser/actions/drag-and-drop.js +692 -0
- package/dist/browser/actions/drag-and-drop.js.map +1 -0
- package/dist/browser/actions/index.js +1 -0
- package/dist/browser/actions/index.js.map +1 -1
- package/dist/browser/actions/menu-rows.js +15 -0
- package/dist/browser/actions/menu-rows.js.map +1 -0
- package/dist/browser/actions/menu-sheet.js +154 -0
- package/dist/browser/actions/menu-sheet.js.map +1 -0
- package/dist/browser/actions/toolbar-messages.js +20 -0
- package/dist/browser/actions/toolbar-messages.js.map +1 -0
- package/dist/browser/chart-inspection.js +3 -0
- package/dist/browser/chart-inspection.js.map +1 -0
- package/dist/browser/chat/ChatComposer.js +714 -410
- package/dist/browser/chat/ChatComposer.js.map +1 -1
- package/dist/browser/chat/ChatDecision.js +778 -0
- package/dist/browser/chat/ChatDecision.js.map +1 -0
- package/dist/browser/chat/ChatPrimitives.js +34 -28
- package/dist/browser/chat/ChatPrimitives.js.map +1 -1
- package/dist/browser/chat/ChatTimeline.js.map +1 -1
- package/dist/browser/chat/chat-messages.js +25 -1
- package/dist/browser/chat/chat-messages.js.map +1 -1
- package/dist/browser/chat/command-search.js +13 -3
- package/dist/browser/chat/command-search.js.map +1 -1
- package/dist/browser/chat/index.js +8 -1
- package/dist/browser/chat/index.js.map +1 -1
- package/dist/browser/chat/reaction-people.js +15 -0
- package/dist/browser/chat/reaction-people.js.map +1 -0
- package/dist/browser/chat/types.js.map +1 -1
- package/dist/browser/content/Calendar.js +3 -3
- package/dist/browser/content/Calendar.js.map +1 -1
- package/dist/browser/content/Chart.js +60 -86
- package/dist/browser/content/Chart.js.map +1 -1
- package/dist/browser/content/ChartSnapshotView.js +7 -10
- package/dist/browser/content/ChartSnapshotView.js.map +1 -1
- package/dist/browser/content/FileBrowser.js +2 -2
- package/dist/browser/content/FileBrowser.js.map +1 -1
- package/dist/browser/content/FileTree.js +42 -36
- package/dist/browser/content/FileTree.js.map +1 -1
- package/dist/browser/content/FileTypeIcon.js +72 -0
- package/dist/browser/content/FileTypeIcon.js.map +1 -0
- package/dist/browser/content/FileView.js +2 -2
- package/dist/browser/content/FileView.js.map +1 -1
- package/dist/browser/content/MessageRow.js +330 -448
- package/dist/browser/content/MessageRow.js.map +1 -1
- package/dist/browser/content/ReactionBar.js +419 -0
- package/dist/browser/content/ReactionBar.js.map +1 -0
- package/dist/browser/content/ReferenceChip.js +162 -0
- package/dist/browser/content/ReferenceChip.js.map +1 -0
- package/dist/browser/content/calendar-pointer.js +9 -0
- package/dist/browser/content/calendar-pointer.js.map +1 -1
- package/dist/browser/content/calendar-time-view.js +6 -3
- package/dist/browser/content/calendar-time-view.js.map +1 -1
- package/dist/browser/content/chart-inspection-core.js +557 -0
- package/dist/browser/content/chart-inspection-core.js.map +1 -0
- package/dist/browser/content/chart-inspection.js +10 -445
- package/dist/browser/content/chart-inspection.js.map +1 -1
- package/dist/browser/content/chart-line-gaps.js +1 -1
- package/dist/browser/content/chart-line-gaps.js.map +1 -1
- package/dist/browser/content/chart-snapshot.js +1 -1
- package/dist/browser/content/chart-snapshot.js.map +1 -1
- package/dist/browser/content/index.js +3 -0
- package/dist/browser/content/index.js.map +1 -1
- package/dist/browser/feedback/dialog-core.js +135 -23
- package/dist/browser/feedback/dialog-core.js.map +1 -1
- package/dist/browser/index.js +1 -0
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/input-mode.js +40 -0
- package/dist/browser/input-mode.js.map +1 -0
- package/dist/browser/inputs/FileDropTarget.js +24 -9
- package/dist/browser/inputs/FileDropTarget.js.map +1 -1
- package/dist/browser/inputs/FileInputs.js +2 -2
- package/dist/browser/inputs/FileInputs.js.map +1 -1
- package/dist/browser/inputs/SelectChip.js +9 -0
- package/dist/browser/inputs/SelectChip.js.map +1 -1
- package/dist/browser/inputs/emoji/EmojiPicker.js +13 -0
- package/dist/browser/inputs/emoji/EmojiPicker.js.map +1 -1
- package/dist/browser/inputs/file-drop.js.map +1 -1
- package/dist/browser/layout/AppOverview.js +1 -1
- package/dist/browser/layout/AppOverview.js.map +1 -1
- package/dist/browser/layout/AppWorkspace.js +644 -445
- package/dist/browser/layout/AppWorkspace.js.map +1 -1
- package/dist/browser/layout/DetailPanel.js +283 -197
- package/dist/browser/layout/DetailPanel.js.map +1 -1
- package/dist/browser/layout/Discussion.js +233 -185
- package/dist/browser/layout/Discussion.js.map +1 -1
- package/dist/browser/layout/PanelDialog.js +88 -86
- package/dist/browser/layout/PanelDialog.js.map +1 -1
- package/dist/browser/layout/ResizeSeparator.js +81 -0
- package/dist/browser/layout/ResizeSeparator.js.map +1 -0
- package/dist/browser/layout/SidebarSwitcher.js +9 -2
- package/dist/browser/layout/SidebarSwitcher.js.map +1 -1
- package/dist/browser/layout/TabBar.js +15 -12
- package/dist/browser/layout/TabBar.js.map +1 -1
- package/dist/browser/layout/TableOfContents.js +10 -2
- package/dist/browser/layout/TableOfContents.js.map +1 -1
- package/dist/browser/layout/app-workspace-controller.js +130 -17
- package/dist/browser/layout/app-workspace-controller.js.map +1 -1
- package/dist/browser/layout/detail-panel-messages.js +35 -0
- package/dist/browser/layout/detail-panel-messages.js.map +1 -0
- package/dist/browser/layout/index.js +3 -1
- package/dist/browser/layout/index.js.map +1 -1
- package/dist/browser/layout/resize-separator.js +90 -0
- package/dist/browser/layout/resize-separator.js.map +1 -0
- package/dist/browser/layout/workspace-messages.js +12 -2
- package/dist/browser/layout/workspace-messages.js.map +1 -1
- package/dist/browser/surfaces/Avatar.js +50 -20
- package/dist/browser/surfaces/Avatar.js.map +1 -1
- package/dist/browser/surfaces/AvatarStack.js +406 -0
- package/dist/browser/surfaces/AvatarStack.js.map +1 -0
- package/dist/browser/surfaces/LinkCard.js +1 -1
- package/dist/browser/surfaces/LinkCard.js.map +1 -1
- package/dist/browser/surfaces/Placeholder.js +14 -3
- package/dist/browser/surfaces/Placeholder.js.map +1 -1
- package/dist/browser/surfaces/StatCell.js +23 -0
- package/dist/browser/surfaces/StatCell.js.map +1 -1
- package/dist/browser/surfaces/avatar-messages.js +8 -2
- package/dist/browser/surfaces/avatar-messages.js.map +1 -1
- package/dist/browser/surfaces/index.js +1 -0
- package/dist/browser/surfaces/index.js.map +1 -1
- package/dist/browser/widgets/Widget.js +1 -1
- package/dist/browser/widgets/Widget.js.map +1 -1
- package/dist/ssr/actions/ContextMenu.js +26 -3
- package/dist/ssr/actions/ContextMenu.js.map +1 -1
- package/dist/ssr/actions/DragAndDrop.js +63 -0
- package/dist/ssr/actions/DragAndDrop.js.map +1 -0
- package/dist/ssr/actions/Dropdown.js +140 -72
- package/dist/ssr/actions/Dropdown.js.map +1 -1
- package/dist/ssr/actions/GestureMenu.js +76 -107
- package/dist/ssr/actions/GestureMenu.js.map +1 -1
- package/dist/ssr/actions/Toolbar.js +294 -14
- package/dist/ssr/actions/Toolbar.js.map +1 -1
- package/dist/ssr/actions/drag-and-drop-messages.js +75 -0
- package/dist/ssr/actions/drag-and-drop-messages.js.map +1 -0
- package/dist/ssr/actions/drag-and-drop.js +692 -0
- package/dist/ssr/actions/drag-and-drop.js.map +1 -0
- package/dist/ssr/actions/index.js +1 -0
- package/dist/ssr/actions/index.js.map +1 -1
- package/dist/ssr/actions/menu-rows.js +15 -0
- package/dist/ssr/actions/menu-rows.js.map +1 -0
- package/dist/ssr/actions/menu-sheet.js +138 -0
- package/dist/ssr/actions/menu-sheet.js.map +1 -0
- package/dist/ssr/actions/toolbar-messages.js +20 -0
- package/dist/ssr/actions/toolbar-messages.js.map +1 -0
- package/dist/ssr/chart-inspection.js +3 -0
- package/dist/ssr/chart-inspection.js.map +1 -0
- package/dist/ssr/chat/ChatComposer.js +393 -102
- package/dist/ssr/chat/ChatComposer.js.map +1 -1
- package/dist/ssr/chat/ChatDecision.js +465 -0
- package/dist/ssr/chat/ChatDecision.js.map +1 -0
- package/dist/ssr/chat/ChatPrimitives.js +2 -2
- package/dist/ssr/chat/ChatPrimitives.js.map +1 -1
- package/dist/ssr/chat/ChatTimeline.js.map +1 -1
- package/dist/ssr/chat/chat-messages.js +25 -1
- package/dist/ssr/chat/chat-messages.js.map +1 -1
- package/dist/ssr/chat/command-search.js +13 -3
- package/dist/ssr/chat/command-search.js.map +1 -1
- package/dist/ssr/chat/index.js +8 -1
- package/dist/ssr/chat/index.js.map +1 -1
- package/dist/ssr/chat/reaction-people.js +15 -0
- package/dist/ssr/chat/reaction-people.js.map +1 -0
- package/dist/ssr/chat/types.js.map +1 -1
- package/dist/ssr/content/Calendar.js +3 -3
- package/dist/ssr/content/Calendar.js.map +1 -1
- package/dist/ssr/content/Chart.js +25 -38
- package/dist/ssr/content/Chart.js.map +1 -1
- package/dist/ssr/content/ChartSnapshotView.js +7 -10
- package/dist/ssr/content/ChartSnapshotView.js.map +1 -1
- package/dist/ssr/content/FileBrowser.js +2 -2
- package/dist/ssr/content/FileBrowser.js.map +1 -1
- package/dist/ssr/content/FileTree.js +21 -14
- package/dist/ssr/content/FileTree.js.map +1 -1
- package/dist/ssr/content/FileTypeIcon.js +50 -0
- package/dist/ssr/content/FileTypeIcon.js.map +1 -0
- package/dist/ssr/content/FileView.js +2 -2
- package/dist/ssr/content/FileView.js.map +1 -1
- package/dist/ssr/content/MessageRow.js +98 -152
- package/dist/ssr/content/MessageRow.js.map +1 -1
- package/dist/ssr/content/ReactionBar.js +304 -0
- package/dist/ssr/content/ReactionBar.js.map +1 -0
- package/dist/ssr/content/ReferenceChip.js +121 -0
- package/dist/ssr/content/ReferenceChip.js.map +1 -0
- package/dist/ssr/content/calendar-pointer.js +9 -0
- package/dist/ssr/content/calendar-pointer.js.map +1 -1
- package/dist/ssr/content/calendar-time-view.js +6 -3
- package/dist/ssr/content/calendar-time-view.js.map +1 -1
- package/dist/ssr/content/chart-inspection-core.js +557 -0
- package/dist/ssr/content/chart-inspection-core.js.map +1 -0
- package/dist/ssr/content/chart-inspection.js +10 -445
- package/dist/ssr/content/chart-inspection.js.map +1 -1
- package/dist/ssr/content/chart-line-gaps.js +1 -1
- package/dist/ssr/content/chart-line-gaps.js.map +1 -1
- package/dist/ssr/content/chart-snapshot.js +1 -1
- package/dist/ssr/content/chart-snapshot.js.map +1 -1
- package/dist/ssr/content/index.js +3 -0
- package/dist/ssr/content/index.js.map +1 -1
- package/dist/ssr/feedback/dialog-core.js +135 -23
- package/dist/ssr/feedback/dialog-core.js.map +1 -1
- package/dist/ssr/index.js +1 -0
- package/dist/ssr/index.js.map +1 -1
- package/dist/ssr/input-mode.js +40 -0
- package/dist/ssr/input-mode.js.map +1 -0
- package/dist/ssr/inputs/FileDropTarget.js +17 -5
- package/dist/ssr/inputs/FileDropTarget.js.map +1 -1
- package/dist/ssr/inputs/FileInputs.js +2 -2
- package/dist/ssr/inputs/FileInputs.js.map +1 -1
- package/dist/ssr/inputs/SelectChip.js +9 -0
- package/dist/ssr/inputs/SelectChip.js.map +1 -1
- package/dist/ssr/inputs/emoji/EmojiPicker.js +12 -0
- package/dist/ssr/inputs/emoji/EmojiPicker.js.map +1 -1
- package/dist/ssr/inputs/file-drop.js.map +1 -1
- package/dist/ssr/layout/AppOverview.js +1 -1
- package/dist/ssr/layout/AppOverview.js.map +1 -1
- package/dist/ssr/layout/AppWorkspace.js +272 -95
- package/dist/ssr/layout/AppWorkspace.js.map +1 -1
- package/dist/ssr/layout/DetailPanel.js +112 -58
- package/dist/ssr/layout/DetailPanel.js.map +1 -1
- package/dist/ssr/layout/Discussion.js +63 -36
- package/dist/ssr/layout/Discussion.js.map +1 -1
- package/dist/ssr/layout/PanelDialog.js +7 -6
- package/dist/ssr/layout/PanelDialog.js.map +1 -1
- package/dist/ssr/layout/ResizeSeparator.js +45 -0
- package/dist/ssr/layout/ResizeSeparator.js.map +1 -0
- package/dist/ssr/layout/SidebarSwitcher.js +9 -2
- package/dist/ssr/layout/SidebarSwitcher.js.map +1 -1
- package/dist/ssr/layout/TabBar.js +1 -1
- package/dist/ssr/layout/TabBar.js.map +1 -1
- package/dist/ssr/layout/TableOfContents.js +10 -2
- package/dist/ssr/layout/TableOfContents.js.map +1 -1
- package/dist/ssr/layout/app-workspace-controller.js +130 -17
- package/dist/ssr/layout/app-workspace-controller.js.map +1 -1
- package/dist/ssr/layout/detail-panel-messages.js +35 -0
- package/dist/ssr/layout/detail-panel-messages.js.map +1 -0
- package/dist/ssr/layout/index.js +3 -1
- package/dist/ssr/layout/index.js.map +1 -1
- package/dist/ssr/layout/resize-separator.js +90 -0
- package/dist/ssr/layout/resize-separator.js.map +1 -0
- package/dist/ssr/layout/workspace-messages.js +12 -2
- package/dist/ssr/layout/workspace-messages.js.map +1 -1
- package/dist/ssr/surfaces/Avatar.js +20 -2
- package/dist/ssr/surfaces/Avatar.js.map +1 -1
- package/dist/ssr/surfaces/AvatarStack.js +286 -0
- package/dist/ssr/surfaces/AvatarStack.js.map +1 -0
- package/dist/ssr/surfaces/LinkCard.js +1 -1
- package/dist/ssr/surfaces/LinkCard.js.map +1 -1
- package/dist/ssr/surfaces/Placeholder.js +4 -2
- package/dist/ssr/surfaces/Placeholder.js.map +1 -1
- package/dist/ssr/surfaces/StatCell.js +23 -0
- package/dist/ssr/surfaces/StatCell.js.map +1 -1
- package/dist/ssr/surfaces/avatar-messages.js +8 -2
- package/dist/ssr/surfaces/avatar-messages.js.map +1 -1
- package/dist/ssr/surfaces/index.js +1 -0
- package/dist/ssr/surfaces/index.js.map +1 -1
- package/dist/ssr/widgets/Widget.js +1 -1
- package/dist/ssr/widgets/Widget.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types/actions/ContextMenu.d.ts +9 -0
- package/dist/types/actions/DragAndDrop.d.ts +29 -0
- package/dist/types/actions/Dropdown.d.ts +12 -5
- package/dist/types/actions/GestureMenu.d.ts +6 -4
- package/dist/types/actions/Toolbar.d.ts +20 -0
- package/dist/types/actions/drag-and-drop-messages.d.ts +35 -0
- package/dist/types/actions/drag-and-drop.d.ts +36 -0
- package/dist/types/actions/index.d.ts +3 -1
- package/dist/types/actions/menu-rows.d.ts +5 -0
- package/dist/types/actions/menu-sheet.d.ts +22 -0
- package/dist/types/actions/toolbar-messages.d.ts +8 -0
- package/dist/types/chart-inspection.d.ts +2 -0
- package/dist/types/chat/ChatComposer.d.ts +26 -1
- package/dist/types/chat/ChatDecision.d.ts +133 -0
- package/dist/types/chat/ChatPrimitives.d.ts +4 -1
- package/dist/types/chat/ChatTimeline.d.ts +2 -1
- package/dist/types/chat/chat-messages.d.ts +13 -2
- package/dist/types/chat/command-search.d.ts +5 -0
- package/dist/types/chat/index.d.ts +25 -1
- package/dist/types/chat/reaction-people.d.ts +9 -0
- package/dist/types/chat/types.d.ts +54 -1
- package/dist/types/content/Chart.d.ts +11 -5
- package/dist/types/content/FileTypeIcon.d.ts +27 -0
- package/dist/types/content/MessageRow.d.ts +3 -10
- package/dist/types/content/ReactionBar.d.ts +32 -0
- package/dist/types/content/ReferenceChip.d.ts +49 -0
- package/dist/types/content/calendar-pointer.d.ts +6 -0
- package/dist/types/content/chart-inspection-core.d.ts +61 -0
- package/dist/types/content/chart-inspection.d.ts +4 -20
- package/dist/types/content/chart-snapshot.d.ts +1 -1
- package/dist/types/content/index.d.ts +5 -1
- package/dist/types/feedback/dialog-core.d.ts +16 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/input-mode.d.ts +7 -0
- package/dist/types/inputs/FileDropTarget.d.ts +6 -3
- package/dist/types/inputs/SelectChip.d.ts +2 -0
- package/dist/types/inputs/file-drop.d.ts +2 -0
- package/dist/types/layout/AppWorkspace.d.ts +5 -3
- package/dist/types/layout/DetailPanel.d.ts +11 -0
- package/dist/types/layout/Discussion.d.ts +8 -0
- package/dist/types/layout/ResizeSeparator.d.ts +9 -0
- package/dist/types/layout/TabBar.d.ts +7 -0
- package/dist/types/layout/TableOfContents.d.ts +2 -0
- package/dist/types/layout/app-workspace-controller.d.ts +2 -0
- package/dist/types/layout/detail-panel-messages.d.ts +15 -0
- package/dist/types/layout/index.d.ts +3 -1
- package/dist/types/layout/resize-separator.d.ts +18 -0
- package/dist/types/layout/workspace-messages.d.ts +5 -0
- package/dist/types/surfaces/Avatar.d.ts +12 -0
- package/dist/types/surfaces/AvatarStack.d.ts +41 -0
- package/dist/types/surfaces/StatCell.d.ts +6 -0
- package/dist/types/surfaces/avatar-messages.d.ts +3 -0
- package/dist/types/surfaces/index.d.ts +3 -1
- package/package.json +7 -2
|
@@ -16,55 +16,60 @@ var _tmpl$ = ["<button type=\"button\" class=\"k2b-app-workspace__resize\" role=
|
|
|
16
16
|
_tmpl$7 = "<i class=\"ti ti-chevron-left\" aria-hidden=\"true\"></i>",
|
|
17
17
|
_tmpl$8 = ["<div class=\"k2b-app-workspace__level-body\"", ">", "</div>"],
|
|
18
18
|
_tmpl$9 = ["<style>", "</style>"],
|
|
19
|
-
_tmpl$0 =
|
|
20
|
-
_tmpl$1 = ["<aside", " class=\"", "\"", "", " style=\"", "\">", "</aside>"],
|
|
21
|
-
_tmpl$10 = ["<
|
|
22
|
-
_tmpl$11 = ["<
|
|
23
|
-
_tmpl$12 = ["<
|
|
24
|
-
_tmpl$13 = ["<
|
|
25
|
-
_tmpl$14 = ["<
|
|
26
|
-
_tmpl$15 = ["<
|
|
27
|
-
_tmpl$16 = ["<
|
|
28
|
-
_tmpl$17 = ["<
|
|
29
|
-
_tmpl$18 = ["<div
|
|
30
|
-
_tmpl$19 = ["<
|
|
31
|
-
_tmpl$20 = ["<div class=\"k2b-app-workspace__sidebar-
|
|
32
|
-
_tmpl$21 = "<
|
|
33
|
-
_tmpl$22 = "<
|
|
34
|
-
_tmpl$23 =
|
|
35
|
-
_tmpl$24 =
|
|
36
|
-
_tmpl$25 = ["<span class=\"k2b-
|
|
37
|
-
_tmpl$26 = ["<span class=\"k2b-app-workspace__sidebar-status\"
|
|
38
|
-
_tmpl$27 = "<span class=\"k2b-
|
|
39
|
-
_tmpl$28 = ["<span class=\"k2b-app-workspace__sidebar-
|
|
40
|
-
_tmpl$29 =
|
|
41
|
-
_tmpl$30 = ["<span
|
|
42
|
-
_tmpl$31 = ["<span class=\"k2b-app-workspace__sidebar-item-
|
|
43
|
-
_tmpl$32 = ["<span class=\"k2b-app-workspace__sidebar-item-
|
|
44
|
-
_tmpl$33 = ["<span class=\"k2b-app-workspace__sidebar-item-
|
|
45
|
-
_tmpl$34 = ["<
|
|
46
|
-
_tmpl$35 = ["<
|
|
47
|
-
_tmpl$36 = ["<
|
|
48
|
-
_tmpl$37 = ["<
|
|
49
|
-
_tmpl$38 = ["<
|
|
50
|
-
_tmpl$39 = ["<span class=\"k2b-app-
|
|
51
|
-
_tmpl$40 = ["<span class=\"
|
|
52
|
-
_tmpl$41 = ["<
|
|
53
|
-
_tmpl$42 = ["<
|
|
54
|
-
_tmpl$43 = ["<div class=\"
|
|
55
|
-
_tmpl$44 = ["<div class=\"k2b-app-
|
|
56
|
-
_tmpl$45 = ["<
|
|
57
|
-
_tmpl$46 = "<
|
|
58
|
-
_tmpl$47 = ["<
|
|
59
|
-
_tmpl$48 =
|
|
60
|
-
_tmpl$49 = ["<div class=\"
|
|
61
|
-
_tmpl$50 = ["<
|
|
19
|
+
_tmpl$0 = "<i class=\"ti ti-layout-sidebar-right\" aria-hidden=\"true\"></i>",
|
|
20
|
+
_tmpl$1 = ["<aside", " class=\"", "\"", "", " style=\"", "\"><button type=\"button\" class=\"k2b-app-workspace__detail-grabber\"", " aria-pressed=\"false\"><span aria-hidden=\"true\"></span></button>", "</aside>"],
|
|
21
|
+
_tmpl$10 = ["<aside", " class=\"", "\"", "", " style=\"", "\">", "</aside>"],
|
|
22
|
+
_tmpl$11 = ["<nav class=\"k2b-app-workspace__sidebar-sheet\"", " style=\"", "\">", "</nav>"],
|
|
23
|
+
_tmpl$12 = ["<div class=\"k2b-app-workspace__sidebar-desktop\"", ">", "</div>"],
|
|
24
|
+
_tmpl$13 = ["<button type=\"button\" class=\"k2b-app-workspace__sidebar-all\" aria-haspopup=\"dialog\"", "><span>", "</span><i class=\"ti ti-chevron-down\" aria-hidden=\"true\"></i></button>"],
|
|
25
|
+
_tmpl$14 = ["<script>", "</script>"],
|
|
26
|
+
_tmpl$15 = ["<span aria-hidden=\"true\"><i", "></i></span>"],
|
|
27
|
+
_tmpl$16 = ["<span class=\"k2b-app-workspace__sidebar-section-count\">", "</span>"],
|
|
28
|
+
_tmpl$17 = ["<button type=\"button\" class=\"k2b-app-workspace__sidebar-section-toggle\"", ">", "<i", " aria-hidden=\"true\"></i></button>"],
|
|
29
|
+
_tmpl$18 = ["<div class=\"k2b-app-workspace__sidebar-section-actions\">", "</div>"],
|
|
30
|
+
_tmpl$19 = ["<header class=\"k2b-app-workspace__sidebar-section-header\">", "", "</header>"],
|
|
31
|
+
_tmpl$20 = ["<div", "", " class=\"k2b-app-workspace__sidebar-section-content\">", "</div>"],
|
|
32
|
+
_tmpl$21 = ["<h2>", "</h2>"],
|
|
33
|
+
_tmpl$22 = ["<div class=\"k2b-app-workspace__sidebar-item-actions\"", ">", "</div>"],
|
|
34
|
+
_tmpl$23 = "<span class=\"k2b-app-workspace__sidebar-status-mention\" aria-hidden=\"true\">@</span>",
|
|
35
|
+
_tmpl$24 = "<span class=\"k2b-app-workspace__sidebar-status-muted\" aria-hidden=\"true\"><i class=\"ti ti-bell-off\"></i></span>",
|
|
36
|
+
_tmpl$25 = ["<span class=\"k2b-app-workspace__sidebar-status-count\"", ">", "</span>"],
|
|
37
|
+
_tmpl$26 = ["<span class=\"k2b-app-workspace__sidebar-status-unread\" aria-hidden=\"true\">", "</span>"],
|
|
38
|
+
_tmpl$27 = ["<span class=\"k2b-sr-only\">, ", "</span>"],
|
|
39
|
+
_tmpl$28 = ["<span class=\"k2b-app-workspace__sidebar-status\"", ">", "</span>"],
|
|
40
|
+
_tmpl$29 = "<span class=\"k2b-app-workspace__sidebar-status-dot\"></span>",
|
|
41
|
+
_tmpl$30 = ["<span", " aria-hidden=\"true\">", "</span>"],
|
|
42
|
+
_tmpl$31 = ["<span class=\"k2b-app-workspace__sidebar-item-context-meta\">", "</span>"],
|
|
43
|
+
_tmpl$32 = ["<span class=\"k2b-app-workspace__sidebar-item-context\"><span class=\"k2b-app-workspace__sidebar-item-context-label\">", "</span>", "</span>"],
|
|
44
|
+
_tmpl$33 = ["<span class=\"k2b-app-workspace__sidebar-item-description\">", "</span>"],
|
|
45
|
+
_tmpl$34 = ["<span class=\"k2b-app-workspace__sidebar-item-copy\">", "<span class=\"k2b-app-workspace__sidebar-item-label\"", "><span class=\"k2b-app-workspace__sidebar-item-label-text\">", "</span></span>", "</span>"],
|
|
46
|
+
_tmpl$35 = ["<span class=\"k2b-app-workspace__sidebar-item-meta\"", ">", "</span>"],
|
|
47
|
+
_tmpl$36 = ["<i", "></i>"],
|
|
48
|
+
_tmpl$37 = ["<a", " class=\"k2b-app-workspace__sidebar-item-action\"", ">", "</a>"],
|
|
49
|
+
_tmpl$38 = ["<button type=\"button\" class=\"k2b-app-workspace__sidebar-item-action\"", ">", "</button>"],
|
|
50
|
+
_tmpl$39 = ["<span class=\"k2b-app-workspace__sidebar-item-copy\"><span class=\"k2b-app-workspace__sidebar-item-label\"", "><span class=\"k2b-app-workspace__sidebar-item-label-text\">", "</span></span><span class=\"k2b-app-workspace__sidebar-item-description\">", "</span></span>"],
|
|
51
|
+
_tmpl$40 = ["<span class=\"", "\"", ">", "</span>"],
|
|
52
|
+
_tmpl$41 = ["<span class=\"k2b-app-workspace__nav-tree-toggle\" data-k2b-nav-tree-toggle aria-hidden=\"true\"><i class=\"", "\"></i></span>"],
|
|
53
|
+
_tmpl$42 = ["<span class=\"k2b-app-workspace__sidebar-item-label\"", "><span class=\"k2b-app-workspace__sidebar-item-label-text\">", "</span></span>"],
|
|
54
|
+
_tmpl$43 = ["<div class=\"k2b-app-workspace__nav-tree-group\" role=\"group\">", "</div>"],
|
|
55
|
+
_tmpl$44 = ["<div class=\"k2b-app-workspace__nav-tree-node\" role=\"treeitem\"", " style=\"", "\">", "", "</div>"],
|
|
56
|
+
_tmpl$45 = ["<div class=\"", "\" role=\"tree\"", ">", "</div>"],
|
|
57
|
+
_tmpl$46 = ["<div class=\"k2b-app-workspace__sidebar-icon-grid\"", ">", "</div>"],
|
|
58
|
+
_tmpl$47 = ["<i", " aria-hidden=\"true\"></i>"],
|
|
59
|
+
_tmpl$48 = "<i class=\"ti ti-layout-sidebar\" aria-hidden=\"true\"></i>",
|
|
60
|
+
_tmpl$49 = ["<div class=\"k2b-app-workspace__head\"", ">", "", "</div>"],
|
|
61
|
+
_tmpl$50 = ["<h1 class=\"k2b-app-workspace__head-heading\" data-k2b-page-trail-title", ">", "</h1>"],
|
|
62
|
+
_tmpl$51 = ["<div class=\"", "\" data-k2b-app-workspace", " style=\"", "\">", "", "</div>"],
|
|
63
|
+
_tmpl$52 = ["<div class=\"", "\">", "</div>"];
|
|
62
64
|
import { Link } from "@k2b/ssr/nav";
|
|
63
|
-
import { children, createContext, createEffect, createMemo, createSignal, createUniqueId, For, mergeProps, on, onCleanup, onMount, Show, useContext } from "solid-js";
|
|
64
|
-
import { isServer } from "solid-js/web";
|
|
65
|
-
import { IconButton, IconButtonLink } from "../actions/Button";
|
|
65
|
+
import { children, createContext, createEffect, createMemo, createRoot, createSignal, createUniqueId, For, getOwner, mergeProps, on, onCleanup, onMount, Show, useContext } from "solid-js";
|
|
66
|
+
import { Dynamic, isServer } from "solid-js/web";
|
|
67
|
+
import { Button, IconButton, IconButtonLink } from "../actions/Button";
|
|
68
|
+
import { dialogCore } from "../feedback/dialog-core";
|
|
69
|
+
import { RenderErrorBoundary } from "../internal/render-error";
|
|
66
70
|
import { APP_WORKSPACE_DETAIL_CLOSE_EVENT, APP_WORKSPACE_DETAIL_STEP_EVENT, APP_WORKSPACE_SIDEBAR_HIDE_EVENT, installAppWorkspaceController } from "./app-workspace-controller";
|
|
67
71
|
import { APP_WORKSPACE_DETAIL_DEFAULT, APP_WORKSPACE_DETAIL_MAX, APP_WORKSPACE_DETAIL_MIN, APP_WORKSPACE_DRAWER_DEFAULT, APP_WORKSPACE_DRAWER_MAX, APP_WORKSPACE_DRAWER_MIN, APP_WORKSPACE_PANE_DEFAULT, APP_WORKSPACE_PANE_MAX, APP_WORKSPACE_PANE_MIN, APP_WORKSPACE_SIDEBAR_COLLAPSED, APP_WORKSPACE_SIDEBAR_DEFAULT, APP_WORKSPACE_SIDEBAR_MAX, APP_WORKSPACE_SIDEBAR_MIN, appWorkspaceLayoutStyle, appWorkspacePanelVariable } from "./app-workspace-state";
|
|
72
|
+
import BottomSheet, { bottomSheetAdaptiveOptions } from "./BottomSheet";
|
|
68
73
|
import { PageTitle, usePageTrail } from "./PageTitle";
|
|
69
74
|
import { SidebarItemPreview } from "./SidebarItemPreview";
|
|
70
75
|
import { AppWorkspaceSidebarSwitcher } from "./SidebarSwitcher";
|
|
@@ -452,7 +457,19 @@ function AppWorkspaceDetail(props) {
|
|
|
452
457
|
aside?.removeEventListener(APP_WORKSPACE_DETAIL_STEP_EVENT, step);
|
|
453
458
|
});
|
|
454
459
|
});
|
|
455
|
-
return [_$ssr(_tmpl$9, workspaceRule()), _$createComponent(
|
|
460
|
+
return [_$ssr(_tmpl$9, workspaceRule()), _$createComponent(Button, {
|
|
461
|
+
type: "button",
|
|
462
|
+
variant: "ghost",
|
|
463
|
+
get ["aria-controls"]() {
|
|
464
|
+
return domId();
|
|
465
|
+
},
|
|
466
|
+
"aria-expanded": "false",
|
|
467
|
+
"data-app-workspace-detail-toggle": "",
|
|
468
|
+
"class": "k2b-app-workspace__detail-toggle",
|
|
469
|
+
get children() {
|
|
470
|
+
return [_$ssr(_tmpl$0), workspaceMessages().details];
|
|
471
|
+
}
|
|
472
|
+
}), _$createComponent(Show, {
|
|
456
473
|
get when() {
|
|
457
474
|
return resizable();
|
|
458
475
|
},
|
|
@@ -480,7 +497,7 @@ function AppWorkspaceDetail(props) {
|
|
|
480
497
|
}
|
|
481
498
|
});
|
|
482
499
|
}
|
|
483
|
-
}), _$ssr(_tmpl$
|
|
500
|
+
}), _$ssr(_tmpl$1, _$ssrAttribute("id", _$escape(domId(), true), false), `k2b-app-workspace__detail ${_$escape(props.class ?? "", true)}`, _$ssrAttribute("data-width", _$escape(props.width ?? "md", true), false) + _$ssrAttribute("data-workspace-detail-phone", props.phone === "page" ? "page" : _$escape(undefined, true), false) + _$ssrAttribute("data-workspace-panel-id", _$escape(panelId(), true), false) + _$ssrAttribute("data-workspace-resizable", resizable() ? "true" : "false", false) + _$ssrAttribute("data-workspace-detail-closable", props.onClose ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("data-workspace-detail-steppable", props.onStep ? "true" : _$escape(undefined, true), false), _$ssrAttribute("hidden", !props.open, true), _$ssrStyle({
|
|
484
501
|
...sizeStyle(),
|
|
485
502
|
"view-transition-name": props.viewTransitionName
|
|
486
503
|
}), _$ssrAttribute("aria-label", _$escape(workspaceMessages().detailFullHeight, true), false), _$escape(props.children))];
|
|
@@ -531,7 +548,7 @@ function AppWorkspaceBottomDrawer(props) {
|
|
|
531
548
|
}
|
|
532
549
|
});
|
|
533
550
|
}
|
|
534
|
-
}), _$ssr(_tmpl$
|
|
551
|
+
}), _$ssr(_tmpl$10, _$ssrAttribute("id", _$escape(domId(), true), false), `k2b-app-workspace__drawer ${_$escape(props.class ?? "", true)}`, _$ssrAttribute("data-height", _$escape(props.height ?? "md", true), false) + _$ssrAttribute("data-workspace-panel-id", _$escape(panelId(), true), false) + _$ssrAttribute("data-workspace-resizable", resizable() ? "true" : "false", false), _$ssrAttribute("hidden", !props.open, true), _$ssrStyleProperty("--k2b-workspace-panel-size:", `var(${_$escape(variable(), true)}, ${_$escape(defaultHeight(), true)}px)`) + _$ssrStyleProperty(";view-transition-name:", _$escape(props.viewTransitionName, true)), _$escape(props.children))];
|
|
535
552
|
}
|
|
536
553
|
function AppWorkspaceSidebar(props) {
|
|
537
554
|
const rootResizable = useContext(ResizeContext);
|
|
@@ -549,20 +566,154 @@ function AppWorkspaceSidebar(props) {
|
|
|
549
566
|
const resolved = children(() => props.hidden ? undefined : props.children);
|
|
550
567
|
const slots = createMemo(() => flatten(resolved()).filter(sidebarChildSlot));
|
|
551
568
|
const desktop = createMemo(() => slots().find(slot => slot.kind === SIDEBAR_DESKTOP));
|
|
569
|
+
const stacked = () => props.mobile === "stacked";
|
|
570
|
+
const workspaceMessages = useWorkspaceMessages();
|
|
571
|
+
const owner = getOwner();
|
|
572
|
+
const [sheetOpen, setSheetOpen] = createSignal(false);
|
|
552
573
|
let aside;
|
|
574
|
+
let row;
|
|
575
|
+
// Fades mark the row's cut edges; the sidebar column never scrolls sideways, so it never shows one.
|
|
576
|
+
createScrollFade(() => row, () => stacked());
|
|
553
577
|
onMount(() => {
|
|
554
578
|
const requestHide = () => props.onHiddenChange?.(true);
|
|
555
579
|
aside?.addEventListener(APP_WORKSPACE_SIDEBAR_HIDE_EVENT, requestHide);
|
|
556
580
|
onCleanup(() => aside?.removeEventListener(APP_WORKSPACE_SIDEBAR_HIDE_EVENT, requestHide));
|
|
581
|
+
// A client-rendered row settles here; server markup settled in its inline script.
|
|
582
|
+
if (stacked() && row) settleChipRow(row, scrollFadeEdges);
|
|
557
583
|
});
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
584
|
+
/**
|
|
585
|
+
* The complete sidebar for a chip row: a second rendering of the same
|
|
586
|
+
* children in a sheet. It shares the application's state through its
|
|
587
|
+
* signals, inherits this sidebar's context and accent, and is disposed with
|
|
588
|
+
* the sheet. A chosen link runs its own handlers in the sheet and closes it.
|
|
589
|
+
*/
|
|
590
|
+
const openAll = button => {
|
|
591
|
+
if (sheetOpen() || !aside) return;
|
|
592
|
+
setSheetOpen(true);
|
|
593
|
+
const computed = getComputedStyle(aside);
|
|
594
|
+
const accent = Object.fromEntries(["--k2b-app-workspace-active", "--k2b-app-workspace-selected", "--k2b-link-accent", "--k2b-detail-panel-accent"].map(name => [name, computed.getPropertyValue(name).trim()]).filter(([, value]) => value));
|
|
595
|
+
// The sheet belongs to the chip row: when the workspace widens into the sidebar column, All disappears and the sheet closes.
|
|
596
|
+
const leave = new AbortController();
|
|
597
|
+
const watch = new ResizeObserver(() => {
|
|
598
|
+
if (button.getClientRects().length === 0) leave.abort();
|
|
599
|
+
});
|
|
600
|
+
watch.observe(button);
|
|
601
|
+
/** A chosen link closes the sheet once its own handlers ran, an enhanced navigation's included. */
|
|
602
|
+
const choose = (event, close) => {
|
|
603
|
+
const target = event.target;
|
|
604
|
+
if (!target?.closest?.("a[href]")) return;
|
|
605
|
+
if (event.button !== 0 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) return;
|
|
606
|
+
// A tree branch's disclosure inside its link only expands the branch.
|
|
607
|
+
if (target.closest("[data-k2b-nav-tree-toggle]")) return;
|
|
608
|
+
// A task, not a microtask: the document's delegated handlers run later in this dispatch.
|
|
609
|
+
setTimeout(close);
|
|
610
|
+
};
|
|
611
|
+
void dialogCore.open((close, context) => {
|
|
612
|
+
let dispose;
|
|
613
|
+
const view = createRoot(disposeRoot => {
|
|
614
|
+
dispose = disposeRoot;
|
|
615
|
+
return _$createComponent(BottomSheet, {
|
|
616
|
+
get onDismiss() {
|
|
617
|
+
return context.requestDismiss;
|
|
618
|
+
},
|
|
619
|
+
get children() {
|
|
620
|
+
return [_$createComponent(BottomSheet.Header, {
|
|
621
|
+
get title() {
|
|
622
|
+
return props.label;
|
|
623
|
+
},
|
|
624
|
+
close: () => void context.requestDismiss()
|
|
625
|
+
}), _$createComponent(BottomSheet.Body, {
|
|
626
|
+
get children() {
|
|
627
|
+
return _$createComponent(RenderErrorBoundary, {
|
|
628
|
+
onClose: () => void context.requestDismiss(),
|
|
629
|
+
content: () => {
|
|
630
|
+
const resolved = children(() => flatten(props.hidden ? undefined : props.children).filter(sidebarChildSlot).find(slot => slot.kind === SIDEBAR_DESKTOP)?.children);
|
|
631
|
+
// Pre-resolved children belong to the row; inserting them here would move its nodes into the sheet.
|
|
632
|
+
if (resolved.toArray().some(node => node instanceof Node && aside?.contains(node))) {
|
|
633
|
+
console.error("AppWorkspace.Sidebar: write the sidebar children as JSX inside AppWorkspace.Sidebar so they can render a second time in the All sheet; pre-resolved children cannot be reused.");
|
|
634
|
+
return null;
|
|
635
|
+
}
|
|
636
|
+
return _$ssr(_tmpl$11, _$ssrAttribute("aria-label", _$escape(props.label, true), false), _$ssrStyle(accent), _$escape(resolved()));
|
|
637
|
+
}
|
|
638
|
+
});
|
|
639
|
+
}
|
|
640
|
+
})];
|
|
641
|
+
}
|
|
642
|
+
});
|
|
643
|
+
}, owner);
|
|
644
|
+
onCleanup(() => dispose?.());
|
|
645
|
+
return view;
|
|
646
|
+
},
|
|
647
|
+
// No history entry: an application may replace the URL from inside the sidebar, such as a search, and an
|
|
648
|
+
// entry of the sheet would then outlive it. So Back leaves the page here, unlike other phone sheets.
|
|
649
|
+
{
|
|
650
|
+
...bottomSheetAdaptiveOptions,
|
|
651
|
+
ariaLabel: props.label,
|
|
652
|
+
signal: leave.signal
|
|
653
|
+
}).finally(() => {
|
|
654
|
+
watch.disconnect();
|
|
655
|
+
setSheetOpen(false);
|
|
656
|
+
if (button.isConnected && !aside?.contains(document.activeElement)) {
|
|
657
|
+
if (button.getClientRects().length) button.focus({
|
|
658
|
+
preventScroll: true
|
|
659
|
+
});else {
|
|
660
|
+
const current = aside?.querySelector("[aria-current], .k2b-app-workspace__sidebar-item.is-active");
|
|
661
|
+
const link = current?.matches("a[href]") ? current : current?.querySelector("a[href]");
|
|
662
|
+
(link ?? aside?.querySelector("a[href]"))?.focus({
|
|
663
|
+
preventScroll: true
|
|
664
|
+
});
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
});
|
|
668
|
+
};
|
|
669
|
+
return [_$createComponent(Dynamic, {
|
|
670
|
+
get component() {
|
|
671
|
+
return stacked() ? "nav" : "aside";
|
|
672
|
+
},
|
|
673
|
+
get id() {
|
|
674
|
+
return domId();
|
|
675
|
+
},
|
|
676
|
+
get ["class"]() {
|
|
677
|
+
return `k2b-app-workspace__sidebar ${props.class ?? ""}`;
|
|
678
|
+
},
|
|
679
|
+
get ["aria-label"]() {
|
|
680
|
+
return props.label;
|
|
681
|
+
},
|
|
682
|
+
get hidden() {
|
|
683
|
+
return props.hidden || undefined;
|
|
684
|
+
},
|
|
685
|
+
get ["data-mobile"]() {
|
|
686
|
+
return stacked() ? "stacked" : undefined;
|
|
687
|
+
},
|
|
688
|
+
get ["data-workspace-resizable"]() {
|
|
689
|
+
return resizable() ? "true" : "false";
|
|
690
|
+
},
|
|
691
|
+
get ["data-workspace-collapsible"]() {
|
|
692
|
+
return props.collapsible ? "true" : "false";
|
|
693
|
+
},
|
|
694
|
+
get ["data-workspace-hideable"]() {
|
|
695
|
+
return props.onHiddenChange ? "true" : undefined;
|
|
561
696
|
},
|
|
562
697
|
get children() {
|
|
563
|
-
return _$
|
|
698
|
+
return _$createComponent(Show, {
|
|
699
|
+
get when() {
|
|
700
|
+
return !props.hidden;
|
|
701
|
+
},
|
|
702
|
+
get children() {
|
|
703
|
+
return [_$ssr(_tmpl$12, _$ssrAttribute("data-scroll-fade-mode", stacked() ? "both" : _$escape(undefined, true), false) + _$ssrAttribute("data-scroll-fade-axis", stacked() ? "horizontal" : _$escape(undefined, true), false), _$escape(desktop()?.children)), _$createComponent(Show, {
|
|
704
|
+
get when() {
|
|
705
|
+
return stacked();
|
|
706
|
+
},
|
|
707
|
+
get children() {
|
|
708
|
+
return [_$ssr(_tmpl$13, _$ssrAttribute("aria-expanded", _$escape(sheetOpen(), true), false) + _$ssrAttribute("aria-label", props.label ? _$escape(workspaceMessages().sidebarAllLabel({
|
|
709
|
+
label: props.label
|
|
710
|
+
}), true) : _$escape(undefined, true), false), _$escape(workspaceMessages().sidebarAll)), _$ssr(_tmpl$14, CHIP_ROW_SCRIPT)];
|
|
711
|
+
}
|
|
712
|
+
})];
|
|
713
|
+
}
|
|
714
|
+
});
|
|
564
715
|
}
|
|
565
|
-
})
|
|
716
|
+
}), _$createComponent(Show, {
|
|
566
717
|
get when() {
|
|
567
718
|
return _$memo(() => !!resizable())() && !props.hidden;
|
|
568
719
|
},
|
|
@@ -589,6 +740,29 @@ function AppWorkspaceSidebar(props) {
|
|
|
589
740
|
}
|
|
590
741
|
})];
|
|
591
742
|
}
|
|
743
|
+
|
|
744
|
+
/**
|
|
745
|
+
* A chip row that overflows shows the current object, centered when it is
|
|
746
|
+
* not in view from the row's start, and fades its cut edges. Self-contained, because the inline script after server markup
|
|
747
|
+
* embeds its source and runs it before the first paint; at 64 rem the column
|
|
748
|
+
* does not overflow sideways and nothing changes.
|
|
749
|
+
*/
|
|
750
|
+
function settleChipRow(row, edges) {
|
|
751
|
+
if (!(row instanceof HTMLElement) || row.scrollWidth - row.clientWidth <= 1) return;
|
|
752
|
+
const current = row.querySelector(".k2b-app-workspace__sidebar-item.is-active, [aria-current]");
|
|
753
|
+
const chip = current && (current.closest(".k2b-app-workspace__sidebar-item") || current);
|
|
754
|
+
if (chip) {
|
|
755
|
+
// From the row's start, whatever scrolled it before (a body's own restore
|
|
756
|
+
// runs first on the client, last on the server), so both paths agree.
|
|
757
|
+
row.scrollLeft = 0;
|
|
758
|
+
const bounds = row.getBoundingClientRect();
|
|
759
|
+
const item = chip.getBoundingClientRect();
|
|
760
|
+
if (item.left < bounds.left || item.right > bounds.right) row.scrollLeft += item.left - bounds.left - (bounds.width - item.width) / 2;
|
|
761
|
+
}
|
|
762
|
+
const fade = edges(row);
|
|
763
|
+
if (fade) row.setAttribute("data-scroll-fade", fade);
|
|
764
|
+
}
|
|
765
|
+
const CHIP_ROW_SCRIPT = `(${settleChipRow})(document.currentScript&&document.currentScript.parentElement.querySelector(":scope>.k2b-app-workspace__sidebar-desktop"),${scrollFadeEdges})`;
|
|
592
766
|
const AppWorkspaceSidebarDesktop = props => ({
|
|
593
767
|
kind: SIDEBAR_DESKTOP,
|
|
594
768
|
children: props.children
|
|
@@ -613,7 +787,7 @@ const AppWorkspaceSidebarBody = props => {
|
|
|
613
787
|
get ["data-scroll-fade-mode"]() {
|
|
614
788
|
return props.scrollFade !== false ? "both" : undefined;
|
|
615
789
|
}
|
|
616
|
-
}, () => scrollAttrs(props.scrollPreserveKey), () => modeAttrs(props.sidebarMode)), _$escape(props.children), false), _$ssr(_tmpl$
|
|
790
|
+
}, () => scrollAttrs(props.scrollPreserveKey), () => modeAttrs(props.sidebarMode)), _$escape(props.children), false), _$ssr(_tmpl$14, SIDEBAR_SCROLL_MEMORY_SCRIPT)];
|
|
617
791
|
};
|
|
618
792
|
const AppWorkspaceSidebarFooter = props => _$ssrElement("footer", _$mergeProps({
|
|
619
793
|
get ["class"]() {
|
|
@@ -629,14 +803,14 @@ const AppWorkspaceSidebarSection = props => {
|
|
|
629
803
|
return props.icon;
|
|
630
804
|
},
|
|
631
805
|
get children() {
|
|
632
|
-
return _$ssr(_tmpl$
|
|
806
|
+
return _$ssr(_tmpl$15, _$ssrAttribute("class", _$escape(iconClass(props.icon), true), false));
|
|
633
807
|
}
|
|
634
808
|
}), props.title, _$createComponent(Show, {
|
|
635
809
|
get when() {
|
|
636
810
|
return props.count !== undefined;
|
|
637
811
|
},
|
|
638
812
|
get children() {
|
|
639
|
-
return _$ssr(_tmpl$
|
|
813
|
+
return _$ssr(_tmpl$16, _$escape(props.count));
|
|
640
814
|
}
|
|
641
815
|
})];
|
|
642
816
|
return _$ssrElement("section", _$mergeProps({
|
|
@@ -651,7 +825,7 @@ const AppWorkspaceSidebarSection = props => {
|
|
|
651
825
|
return props.title || props.actions;
|
|
652
826
|
},
|
|
653
827
|
get children() {
|
|
654
|
-
return _$ssr(_tmpl$
|
|
828
|
+
return _$ssr(_tmpl$19, _$escape(_$createComponent(Show, {
|
|
655
829
|
get when() {
|
|
656
830
|
return props.collapsible;
|
|
657
831
|
},
|
|
@@ -661,23 +835,23 @@ const AppWorkspaceSidebarSection = props => {
|
|
|
661
835
|
return props.title;
|
|
662
836
|
},
|
|
663
837
|
get children() {
|
|
664
|
-
return _$ssr(_tmpl$
|
|
838
|
+
return _$ssr(_tmpl$21, _$escape(title()));
|
|
665
839
|
}
|
|
666
840
|
});
|
|
667
841
|
},
|
|
668
842
|
get children() {
|
|
669
|
-
return _$ssr(_tmpl$
|
|
843
|
+
return _$ssr(_tmpl$17, _$ssrAttribute("aria-expanded", _$escape(open(), true), false) + _$ssrAttribute("aria-controls", _$escape(id, true), false), _$escape(title()), _$ssrAttribute("class", open() ? "ti ti-chevron-down" : "ti ti-chevron-right", false));
|
|
670
844
|
}
|
|
671
845
|
})), _$escape(_$createComponent(Show, {
|
|
672
846
|
get when() {
|
|
673
847
|
return props.actions;
|
|
674
848
|
},
|
|
675
849
|
get children() {
|
|
676
|
-
return _$ssr(_tmpl$
|
|
850
|
+
return _$ssr(_tmpl$18, _$escape(props.actions));
|
|
677
851
|
}
|
|
678
852
|
})));
|
|
679
853
|
}
|
|
680
|
-
})), _$ssr(_tmpl$
|
|
854
|
+
})), _$ssr(_tmpl$20, _$ssrAttribute("id", _$escape(id, true), false), _$ssrAttribute("hidden", !open(), true), _$escape(props.children))], false);
|
|
681
855
|
};
|
|
682
856
|
const AppWorkspaceSidebarItemIcon = props => mergeProps({
|
|
683
857
|
kind: SIDEBAR_ITEM_ICON
|
|
@@ -691,7 +865,7 @@ const AppWorkspaceSidebarItemMeta = props => mergeProps({
|
|
|
691
865
|
const AppWorkspaceSidebarItemAction = props => mergeProps({
|
|
692
866
|
kind: SIDEBAR_ITEM_ACTION
|
|
693
867
|
}, props);
|
|
694
|
-
const AppWorkspaceSidebarItemActions = props => _$ssr(_tmpl$
|
|
868
|
+
const AppWorkspaceSidebarItemActions = props => _$ssr(_tmpl$22, _$ssrAttribute("data-visibility", props.visibility === "hover" ? "hover" : _$escape(undefined, true), false), _$escape(props.children));
|
|
695
869
|
const AppWorkspaceSidebarItemStatus = props => {
|
|
696
870
|
const workspaceMessages = useWorkspaceMessages();
|
|
697
871
|
const waiting = () => props.waiting && Number.isFinite(props.waiting.count) ? Math.max(0, Math.floor(props.waiting.count)) : null;
|
|
@@ -707,7 +881,7 @@ const AppWorkspaceSidebarItemStatus = props => {
|
|
|
707
881
|
// The element itself stays when there is nothing to show: empty, it takes no
|
|
708
882
|
// space, and it still keeps the row's label on one line, so the first count
|
|
709
883
|
// never re-wraps the label and moves the rows below.
|
|
710
|
-
return _$ssr(_tmpl$
|
|
884
|
+
return _$ssr(_tmpl$28, _$ssrAttribute("data-unread", waiting() !== null ? _$escape(undefined, true) : count() ? "count" : dot() ? "dot" : _$escape(undefined, true), false) + _$ssrAttribute("data-waiting", waiting() === null ? _$escape(undefined, true) : waiting() ? "count" : "zero", false), _$escape(_$createComponent(Show, {
|
|
711
885
|
get when() {
|
|
712
886
|
return description();
|
|
713
887
|
},
|
|
@@ -717,16 +891,16 @@ const AppWorkspaceSidebarItemStatus = props => {
|
|
|
717
891
|
return props.mention;
|
|
718
892
|
},
|
|
719
893
|
get children() {
|
|
720
|
-
return _$ssr(_tmpl$
|
|
894
|
+
return _$ssr(_tmpl$23);
|
|
721
895
|
}
|
|
722
896
|
}), _$createComponent(Show, {
|
|
723
897
|
get when() {
|
|
724
898
|
return props.muted;
|
|
725
899
|
},
|
|
726
900
|
get children() {
|
|
727
|
-
return _$ssr(_tmpl$
|
|
901
|
+
return _$ssr(_tmpl$24);
|
|
728
902
|
}
|
|
729
|
-
}), _$ssr(_tmpl$
|
|
903
|
+
}), _$ssr(_tmpl$26, _$escape(_$createComponent(Show, {
|
|
730
904
|
get when() {
|
|
731
905
|
return count() || waiting() === 0;
|
|
732
906
|
},
|
|
@@ -736,14 +910,14 @@ const AppWorkspaceSidebarItemStatus = props => {
|
|
|
736
910
|
return dot();
|
|
737
911
|
},
|
|
738
912
|
get children() {
|
|
739
|
-
return _$ssr(_tmpl$
|
|
913
|
+
return _$ssr(_tmpl$29);
|
|
740
914
|
}
|
|
741
915
|
});
|
|
742
916
|
},
|
|
743
917
|
get children() {
|
|
744
|
-
return _$ssr(_tmpl$
|
|
918
|
+
return _$ssr(_tmpl$25, _$ssrAttribute("data-mention", props.mention ? "true" : _$escape(undefined, true), false), count() > 99 ? "99+" : _$escape(count()));
|
|
745
919
|
}
|
|
746
|
-
}))), _$ssr(_tmpl$
|
|
920
|
+
}))), _$ssr(_tmpl$27, _$escape(description()))];
|
|
747
921
|
}
|
|
748
922
|
})));
|
|
749
923
|
};
|
|
@@ -883,19 +1057,22 @@ function AppWorkspaceSidebarItem(props) {
|
|
|
883
1057
|
return iconContent() || icon();
|
|
884
1058
|
},
|
|
885
1059
|
get children() {
|
|
886
|
-
return _$ssr(_tmpl$
|
|
1060
|
+
return _$ssr(_tmpl$30, _$ssrAttribute("class",
|
|
1061
|
+
// An object row's own glyph sits in a soft chip of the app colour; custom content such as an avatar keeps
|
|
1062
|
+
// its own look.
|
|
1063
|
+
props.variant === "object" && !iconContent() ? "k2b-app-workspace__sidebar-item-icon k2b-icon-tile" : "k2b-app-workspace__sidebar-item-icon", false), _$escape(iconContent() ?? _$ssr(_tmpl$36, _$ssrAttribute("class", _$escape(iconClass(icon()), true), false))));
|
|
887
1064
|
}
|
|
888
|
-
}), _$ssr(_tmpl$
|
|
1065
|
+
}), _$ssr(_tmpl$34, _$escape(_$createComponent(Show, {
|
|
889
1066
|
get when() {
|
|
890
1067
|
return props.context || props.contextMeta;
|
|
891
1068
|
},
|
|
892
1069
|
get children() {
|
|
893
|
-
return _$ssr(_tmpl$
|
|
1070
|
+
return _$ssr(_tmpl$32, _$escape(props.context), _$escape(_$createComponent(Show, {
|
|
894
1071
|
get when() {
|
|
895
1072
|
return props.contextMeta;
|
|
896
1073
|
},
|
|
897
1074
|
get children() {
|
|
898
|
-
return _$ssr(_tmpl$
|
|
1075
|
+
return _$ssr(_tmpl$31, _$escape(props.contextMeta));
|
|
899
1076
|
}
|
|
900
1077
|
})));
|
|
901
1078
|
}
|
|
@@ -904,14 +1081,14 @@ function AppWorkspaceSidebarItem(props) {
|
|
|
904
1081
|
return props.description;
|
|
905
1082
|
},
|
|
906
1083
|
get children() {
|
|
907
|
-
return _$ssr(_tmpl$
|
|
1084
|
+
return _$ssr(_tmpl$33, _$escape(props.description));
|
|
908
1085
|
}
|
|
909
1086
|
}))), _$createComponent(Show, {
|
|
910
1087
|
get when() {
|
|
911
1088
|
return hasMeta();
|
|
912
1089
|
},
|
|
913
1090
|
get children() {
|
|
914
|
-
return _$ssr(_tmpl$
|
|
1091
|
+
return _$ssr(_tmpl$35, _$ssrAttribute("id", props.preview?.trigger === "row" ? _$escape(metaId, true) : _$escape(undefined, true), false) + _$ssrAttribute("data-visibility", metaVisibility() === "hover" ? "hover" : _$escape(undefined, true), false), _$escape(meta()));
|
|
915
1092
|
}
|
|
916
1093
|
})];
|
|
917
1094
|
const singleAction = () => {
|
|
@@ -926,7 +1103,7 @@ function AppWorkspaceSidebarItem(props) {
|
|
|
926
1103
|
actionSlot()?.onSelect?.(event);
|
|
927
1104
|
props.onActionClick?.(event);
|
|
928
1105
|
};
|
|
929
|
-
const content = () => actionSlot()?.children ?? _$ssr(_tmpl$
|
|
1106
|
+
const content = () => actionSlot()?.children ?? _$ssr(_tmpl$36, _$ssrAttribute("class", _$escape(iconClass(actionSlot()?.icon ?? props.actionIcon, "ti-dots"), true), false));
|
|
930
1107
|
return _$createComponent(Show, {
|
|
931
1108
|
get when() {
|
|
932
1109
|
return Boolean(actionSlot() || props.actionIcon);
|
|
@@ -937,10 +1114,10 @@ function AppWorkspaceSidebarItem(props) {
|
|
|
937
1114
|
return _$memo(() => !!actionSlot()?.href)() && !actionSlot()?.disabled;
|
|
938
1115
|
},
|
|
939
1116
|
get fallback() {
|
|
940
|
-
return _$ssr(_tmpl$
|
|
1117
|
+
return _$ssr(_tmpl$38, _$ssrAttribute("disabled", actionSlot()?.disabled, true) + _$ssrAttribute("data-visibility", actionSlot()?.visibility === "hover" ? "hover" : _$escape(undefined, true), false) + _$ssrAttribute("aria-label", _$escape(label(), true), false), _$escape(content()));
|
|
941
1118
|
},
|
|
942
1119
|
get children() {
|
|
943
|
-
return _$ssr(_tmpl$
|
|
1120
|
+
return _$ssr(_tmpl$37, _$ssrAttribute("href", _$escape(actionSlot()?.href, true), false), _$ssrAttribute("data-visibility", actionSlot()?.visibility === "hover" ? "hover" : _$escape(undefined, true), false) + _$ssrAttribute("aria-label", _$escape(label(), true), false), _$escape(content()));
|
|
944
1121
|
}
|
|
945
1122
|
});
|
|
946
1123
|
}
|
|
@@ -1246,31 +1423,31 @@ const AppWorkspaceNavTree = props => {
|
|
|
1246
1423
|
get ["data-k2b-nav-tree-toggle"]() {
|
|
1247
1424
|
return usesIconDisclosure() ? "" : undefined;
|
|
1248
1425
|
}
|
|
1249
|
-
}, () => iconAccessibility(item.iconLabel)), _$ssr(_tmpl$
|
|
1426
|
+
}, () => iconAccessibility(item.iconLabel)), _$ssr(_tmpl$36, _$ssrAttribute("class", _$escape(iconClass(rowIcon()), true), false)), false);
|
|
1250
1427
|
}
|
|
1251
1428
|
}), _$createComponent(Show, {
|
|
1252
1429
|
get when() {
|
|
1253
1430
|
return item.description !== undefined;
|
|
1254
1431
|
},
|
|
1255
1432
|
get fallback() {
|
|
1256
|
-
return _$ssr(_tmpl$
|
|
1433
|
+
return _$ssr(_tmpl$42, _$ssrAttribute("data-label", typeof item.label === "string" ? _$escape(item.label, true) : _$escape(undefined, true), false), _$escape(item.label));
|
|
1257
1434
|
},
|
|
1258
1435
|
get children() {
|
|
1259
|
-
return _$ssr(_tmpl$
|
|
1436
|
+
return _$ssr(_tmpl$39, _$ssrAttribute("data-label", typeof item.label === "string" ? _$escape(item.label, true) : _$escape(undefined, true), false), _$escape(item.label), _$escape(item.description));
|
|
1260
1437
|
}
|
|
1261
1438
|
}), _$createComponent(Show, {
|
|
1262
1439
|
get when() {
|
|
1263
1440
|
return item.meta !== undefined;
|
|
1264
1441
|
},
|
|
1265
1442
|
get children() {
|
|
1266
|
-
return _$ssr(_tmpl$
|
|
1443
|
+
return _$ssr(_tmpl$40, `k2b-app-workspace__sidebar-item-meta ${hasChildren() ? "" : "k2b-app-workspace__nav-tree-leaf-meta"}`, _$ssrAttribute("data-visibility", item.metaVisibility === "hover" ? "hover" : _$escape(undefined, true), false), _$escape(item.meta));
|
|
1267
1444
|
}
|
|
1268
1445
|
}), _$createComponent(Show, {
|
|
1269
1446
|
get when() {
|
|
1270
1447
|
return _$memo(() => !!hasChildren())() && !usesIconDisclosure();
|
|
1271
1448
|
},
|
|
1272
1449
|
get children() {
|
|
1273
|
-
return _$ssr(_tmpl$
|
|
1450
|
+
return _$ssr(_tmpl$41, `ti ${isExpanded(item.id) ? "ti-chevron-down" : "ti-chevron-right"}`);
|
|
1274
1451
|
}
|
|
1275
1452
|
})];
|
|
1276
1453
|
const row = () => _$createComponent(AppWorkspaceSidebarRow, {
|
|
@@ -1377,12 +1554,12 @@ const AppWorkspaceNavTree = props => {
|
|
|
1377
1554
|
endDrag();
|
|
1378
1555
|
requestMove(target.move, false);
|
|
1379
1556
|
};
|
|
1380
|
-
return _$ssr(_tmpl$
|
|
1557
|
+
return _$ssr(_tmpl$44, _$ssrAttribute("aria-level", _$escape(depth, true) + 1, false) + _$ssrAttribute("aria-setsize", _$escape(siblings().length, true), false) + _$ssrAttribute("aria-posinset", _$escape(place(), true) + 1, false) + _$ssrAttribute("aria-selected", _$escape(selected(), true), false) + _$ssrAttribute("aria-expanded", hasChildren() ? _$escape(isExpanded(item.id), true) : _$escape(undefined, true), false) + _$ssrAttribute("aria-disabled", item.disabled ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("tabindex", item.disabled ? -1 : tabStopId() === item.id ? 0 : -1, false) + _$ssrAttribute("draggable", movable() ? _$escape(true, true) : _$escape(undefined, true), false) + _$ssrAttribute("data-k2b-nav-tree-id", _$escape(item.id, true), false) + _$ssrAttribute("data-k2b-nav-tree-parent-id", _$escape(parentId, true), false) + _$ssrAttribute("data-k2b-nav-tree-dragging", dragged()?.id === item.id ? "" : _$escape(undefined, true), false) + _$ssrAttribute("data-k2b-nav-tree-drop", dropTarget()?.id === item.id ? _$escape(dropTarget().side, true) : _$escape(undefined, true), false), _$ssrStyleProperty("--k2b-nav-tree-depth:", _$escape(String(props.indented === false ? 0 : depth), true)), _$escape(row()), _$escape(_$createComponent(Show, {
|
|
1381
1558
|
get when() {
|
|
1382
1559
|
return _$memo(() => !!hasChildren())() && isExpanded(item.id);
|
|
1383
1560
|
},
|
|
1384
1561
|
get children() {
|
|
1385
|
-
return _$ssr(_tmpl$
|
|
1562
|
+
return _$ssr(_tmpl$43, _$escape(renderItems(nested, depth + 1, item.id)));
|
|
1386
1563
|
}
|
|
1387
1564
|
})));
|
|
1388
1565
|
}
|
|
@@ -1407,7 +1584,7 @@ const AppWorkspaceNavTree = props => {
|
|
|
1407
1584
|
doc?.removeEventListener("pointermove", forgetDrag, true);
|
|
1408
1585
|
});
|
|
1409
1586
|
});
|
|
1410
|
-
return _$ssr(_tmpl$
|
|
1587
|
+
return _$ssr(_tmpl$45, `k2b-app-workspace__nav-tree ${_$escape(props.class ?? "", true)}`, _$ssrAttribute("aria-label", _$escape(props.ariaLabel, true), false), _$escape(renderItems(roots, 0)));
|
|
1411
1588
|
};
|
|
1412
1589
|
AppWorkspaceNavTree.Item = AppWorkspaceNavTreeItem;
|
|
1413
1590
|
const AppWorkspaceSidebarIconGrid = props => _$ssrElement("section", _$mergeProps({
|
|
@@ -1418,10 +1595,10 @@ const AppWorkspaceSidebarIconGrid = props => _$ssrElement("section", _$mergeProp
|
|
|
1418
1595
|
get when() {
|
|
1419
1596
|
return props.title;
|
|
1420
1597
|
},
|
|
1421
|
-
children: title => _$ssr(_tmpl$
|
|
1422
|
-
})), _$ssr(_tmpl$
|
|
1598
|
+
children: title => _$ssr(_tmpl$21, _$escape(title()))
|
|
1599
|
+
})), _$ssr(_tmpl$46, _$ssrAttribute("data-columns", _$escape(props.columns ?? 2, true), false), _$escape(props.children))], false);
|
|
1423
1600
|
const AppWorkspaceSidebarIconAction = props => {
|
|
1424
|
-
const content = _$ssr(_tmpl$
|
|
1601
|
+
const content = _$ssr(_tmpl$47, _$ssrAttribute("class", _$escape(iconClass(props.icon), true), false));
|
|
1425
1602
|
const attrs = () => ({
|
|
1426
1603
|
class: `k2b-app-workspace__sidebar-icon-action ${props.active ? "is-active" : ""}`,
|
|
1427
1604
|
title: props.label,
|
|
@@ -1479,7 +1656,7 @@ function AppWorkspaceHead(props) {
|
|
|
1479
1656
|
const messages = useWorkspaceMessages();
|
|
1480
1657
|
// A nested workspace is part of a page that already shows its title.
|
|
1481
1658
|
const trail = props.nested ? () => undefined : usePageTrail();
|
|
1482
|
-
return _$ssr(_tmpl$
|
|
1659
|
+
return _$ssr(_tmpl$49, _$ssrAttribute("data-trail", trail()?.ancestors.length ? "up" : trail() ? "title" : _$escape(undefined, true), false), _$escape(_$createComponent(IconButton, {
|
|
1483
1660
|
"class": "k2b-app-workspace__head-toggle",
|
|
1484
1661
|
get label() {
|
|
1485
1662
|
return messages().showNavigation;
|
|
@@ -1490,7 +1667,7 @@ function AppWorkspaceHead(props) {
|
|
|
1490
1667
|
"aria-expanded": "false",
|
|
1491
1668
|
"data-app-workspace-sidebar-toggle": "",
|
|
1492
1669
|
get children() {
|
|
1493
|
-
return _$ssr(_tmpl$
|
|
1670
|
+
return _$ssr(_tmpl$48);
|
|
1494
1671
|
}
|
|
1495
1672
|
})), _$escape(_$createComponent(Show, {
|
|
1496
1673
|
get when() {
|
|
@@ -1502,7 +1679,7 @@ function AppWorkspaceHead(props) {
|
|
|
1502
1679
|
},
|
|
1503
1680
|
as: "p",
|
|
1504
1681
|
fallback: true
|
|
1505
|
-
}), _$ssr(_tmpl$
|
|
1682
|
+
}), _$ssr(_tmpl$50, _$ssrAttribute("data-k2b-server", isServer ? "" : _$escape(undefined, true), false), _$escape(current().title))]
|
|
1506
1683
|
})));
|
|
1507
1684
|
}
|
|
1508
1685
|
const AppWorkspace = props => {
|
|
@@ -1538,7 +1715,7 @@ const AppWorkspace = props => {
|
|
|
1538
1715
|
return _$createComponent(WorkspaceContext.Provider, {
|
|
1539
1716
|
value: workspace,
|
|
1540
1717
|
get children() {
|
|
1541
|
-
return _$ssr(_tmpl$
|
|
1718
|
+
return _$ssr(_tmpl$51, `k2b-app-workspace ${_$escape(props.class ?? "", true)}`, _$ssrAttribute("data-mobile-surface", _$escape(props.mobileSurface, true), false) + _$ssrAttribute("data-flat", props.flat ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("data-sidebar-collapsed", initialLayoutState()?.sidebarCollapsed === undefined ? _$escape(undefined, true) : _$escape(String(initialLayoutState()?.sidebarCollapsed), true), false) + _$ssrAttribute("data-workspace-resizable", props.resizable === false ? "false" : "true", false), _$ssrStyle(appWorkspaceLayoutStyle(initialLayoutState())), _$escape(_$createComponent(AppWorkspaceHead, {
|
|
1542
1719
|
sidebarId: sidebarId,
|
|
1543
1720
|
nested: nested
|
|
1544
1721
|
})), _$escape(props.children));
|
|
@@ -1555,7 +1732,7 @@ AppWorkspace.LayoutStateProvider = props => _$createComponent(LayoutStateContext
|
|
|
1555
1732
|
return props.children;
|
|
1556
1733
|
}
|
|
1557
1734
|
});
|
|
1558
|
-
AppWorkspace.Content = props => _$ssr(_tmpl$
|
|
1735
|
+
AppWorkspace.Content = props => _$ssr(_tmpl$52, `k2b-app-workspace__content ${_$escape(props.class ?? "", true)}`, _$escape(props.children));
|
|
1559
1736
|
AppWorkspace.Main = AppWorkspaceMain;
|
|
1560
1737
|
AppWorkspace.MainPane = AppWorkspaceMainPane;
|
|
1561
1738
|
AppWorkspace.Detail = AppWorkspaceDetail;
|