@k2b/ui 0.29.0 → 0.30.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.
Files changed (173) hide show
  1. package/README.md +1 -1
  2. package/dist/base.css +2 -2
  3. package/dist/browser/actions/Dropdown.js +6 -3
  4. package/dist/browser/actions/Dropdown.js.map +1 -1
  5. package/dist/browser/actions/FilterChip.js +137 -7
  6. package/dist/browser/actions/FilterChip.js.map +1 -1
  7. package/dist/browser/actions/SegmentedControl.js +5 -9
  8. package/dist/browser/actions/SegmentedControl.js.map +1 -1
  9. package/dist/browser/actions/SpotlightSearch.js +6 -3
  10. package/dist/browser/actions/SpotlightSearch.js.map +1 -1
  11. package/dist/browser/actions/Tabs.js +5 -2
  12. package/dist/browser/actions/Tabs.js.map +1 -1
  13. package/dist/browser/actions/ViewTabs.js +294 -0
  14. package/dist/browser/actions/ViewTabs.js.map +1 -0
  15. package/dist/browser/actions/filter-messages.js +6 -2
  16. package/dist/browser/actions/filter-messages.js.map +1 -1
  17. package/dist/browser/actions/index.js +2 -1
  18. package/dist/browser/actions/index.js.map +1 -1
  19. package/dist/browser/chat/ChatComposer.js +1108 -604
  20. package/dist/browser/chat/ChatComposer.js.map +1 -1
  21. package/dist/browser/chat/ChatDecision.js +120 -84
  22. package/dist/browser/chat/ChatDecision.js.map +1 -1
  23. package/dist/browser/chat/ChatPrimitives.js +292 -159
  24. package/dist/browser/chat/ChatPrimitives.js.map +1 -1
  25. package/dist/browser/chat/chat-messages.js +8 -0
  26. package/dist/browser/chat/chat-messages.js.map +1 -1
  27. package/dist/browser/chat/command-search.js +26 -15
  28. package/dist/browser/chat/command-search.js.map +1 -1
  29. package/dist/browser/chat/index.js +4 -2
  30. package/dist/browser/chat/index.js.map +1 -1
  31. package/dist/browser/content/Calendar.js +143 -116
  32. package/dist/browser/content/Calendar.js.map +1 -1
  33. package/dist/browser/content/CalendarWeekView.js +291 -266
  34. package/dist/browser/content/CalendarWeekView.js.map +1 -1
  35. package/dist/browser/content/DataTable.js +224 -155
  36. package/dist/browser/content/DataTable.js.map +1 -1
  37. package/dist/browser/content/data-table-messages.js +4 -2
  38. package/dist/browser/content/data-table-messages.js.map +1 -1
  39. package/dist/browser/feedback/MovedHint.js +197 -0
  40. package/dist/browser/feedback/MovedHint.js.map +1 -0
  41. package/dist/browser/feedback/dialog-core.js +66 -9
  42. package/dist/browser/feedback/dialog-core.js.map +1 -1
  43. package/dist/browser/feedback/index.js +1 -0
  44. package/dist/browser/feedback/index.js.map +1 -1
  45. package/dist/browser/feedback/prompts.js +6 -1
  46. package/dist/browser/feedback/prompts.js.map +1 -1
  47. package/dist/browser/inputs/DatePicker.js +337 -212
  48. package/dist/browser/inputs/DatePicker.js.map +1 -1
  49. package/dist/browser/inputs/date-picker.js +59 -5
  50. package/dist/browser/inputs/date-picker.js.map +1 -1
  51. package/dist/browser/intl/messages.js +12 -0
  52. package/dist/browser/intl/messages.js.map +1 -1
  53. package/dist/browser/intl/weekend.js +39 -0
  54. package/dist/browser/intl/weekend.js.map +1 -0
  55. package/dist/browser/layout/AppOverview.js +0 -1
  56. package/dist/browser/layout/AppOverview.js.map +1 -1
  57. package/dist/browser/layout/AppWorkspace.js +688 -471
  58. package/dist/browser/layout/AppWorkspace.js.map +1 -1
  59. package/dist/browser/layout/PageTitle.js +3 -2
  60. package/dist/browser/layout/PageTitle.js.map +1 -1
  61. package/dist/browser/layout/SettingsModal.js +2 -2
  62. package/dist/browser/layout/SettingsModal.js.map +1 -1
  63. package/dist/browser/layout/SidebarSwitcher.js +13 -12
  64. package/dist/browser/layout/SidebarSwitcher.js.map +1 -1
  65. package/dist/browser/layout/TabBar.js +1 -1
  66. package/dist/browser/layout/TabBar.js.map +1 -1
  67. package/dist/browser/layout/app-host-width.js +44 -0
  68. package/dist/browser/layout/app-host-width.js.map +1 -0
  69. package/dist/browser/layout/app-workspace-controller.js +219 -39
  70. package/dist/browser/layout/app-workspace-controller.js.map +1 -1
  71. package/dist/browser/layout/index.js +1 -0
  72. package/dist/browser/layout/index.js.map +1 -1
  73. package/dist/browser/surfaces/Placeholder.js +36 -13
  74. package/dist/browser/surfaces/Placeholder.js.map +1 -1
  75. package/dist/ssr/actions/Dropdown.js +5 -2
  76. package/dist/ssr/actions/Dropdown.js.map +1 -1
  77. package/dist/ssr/actions/FilterChip.js +59 -7
  78. package/dist/ssr/actions/FilterChip.js.map +1 -1
  79. package/dist/ssr/actions/SegmentedControl.js +1 -2
  80. package/dist/ssr/actions/SegmentedControl.js.map +1 -1
  81. package/dist/ssr/actions/SpotlightSearch.js +2 -2
  82. package/dist/ssr/actions/SpotlightSearch.js.map +1 -1
  83. package/dist/ssr/actions/Tabs.js +2 -2
  84. package/dist/ssr/actions/Tabs.js.map +1 -1
  85. package/dist/ssr/actions/ViewTabs.js +211 -0
  86. package/dist/ssr/actions/ViewTabs.js.map +1 -0
  87. package/dist/ssr/actions/filter-messages.js +6 -2
  88. package/dist/ssr/actions/filter-messages.js.map +1 -1
  89. package/dist/ssr/actions/index.js +2 -1
  90. package/dist/ssr/actions/index.js.map +1 -1
  91. package/dist/ssr/chat/ChatComposer.js +546 -131
  92. package/dist/ssr/chat/ChatComposer.js.map +1 -1
  93. package/dist/ssr/chat/ChatDecision.js +33 -19
  94. package/dist/ssr/chat/ChatDecision.js.map +1 -1
  95. package/dist/ssr/chat/ChatPrimitives.js +95 -24
  96. package/dist/ssr/chat/ChatPrimitives.js.map +1 -1
  97. package/dist/ssr/chat/chat-messages.js +8 -0
  98. package/dist/ssr/chat/chat-messages.js.map +1 -1
  99. package/dist/ssr/chat/command-search.js +26 -15
  100. package/dist/ssr/chat/command-search.js.map +1 -1
  101. package/dist/ssr/chat/index.js +4 -2
  102. package/dist/ssr/chat/index.js.map +1 -1
  103. package/dist/ssr/content/Calendar.js +109 -100
  104. package/dist/ssr/content/Calendar.js.map +1 -1
  105. package/dist/ssr/content/CalendarWeekView.js +42 -28
  106. package/dist/ssr/content/CalendarWeekView.js.map +1 -1
  107. package/dist/ssr/content/DataTable.js +78 -31
  108. package/dist/ssr/content/DataTable.js.map +1 -1
  109. package/dist/ssr/content/data-table-messages.js +4 -2
  110. package/dist/ssr/content/data-table-messages.js.map +1 -1
  111. package/dist/ssr/feedback/MovedHint.js +166 -0
  112. package/dist/ssr/feedback/MovedHint.js.map +1 -0
  113. package/dist/ssr/feedback/dialog-core.js +66 -9
  114. package/dist/ssr/feedback/dialog-core.js.map +1 -1
  115. package/dist/ssr/feedback/index.js +1 -0
  116. package/dist/ssr/feedback/index.js.map +1 -1
  117. package/dist/ssr/feedback/prompts.js +6 -1
  118. package/dist/ssr/feedback/prompts.js.map +1 -1
  119. package/dist/ssr/inputs/DatePicker.js +138 -69
  120. package/dist/ssr/inputs/DatePicker.js.map +1 -1
  121. package/dist/ssr/inputs/date-picker.js +59 -5
  122. package/dist/ssr/inputs/date-picker.js.map +1 -1
  123. package/dist/ssr/intl/messages.js +12 -0
  124. package/dist/ssr/intl/messages.js.map +1 -1
  125. package/dist/ssr/intl/weekend.js +39 -0
  126. package/dist/ssr/intl/weekend.js.map +1 -0
  127. package/dist/ssr/layout/AppOverview.js +0 -1
  128. package/dist/ssr/layout/AppOverview.js.map +1 -1
  129. package/dist/ssr/layout/AppWorkspace.js +203 -39
  130. package/dist/ssr/layout/AppWorkspace.js.map +1 -1
  131. package/dist/ssr/layout/PageTitle.js +3 -2
  132. package/dist/ssr/layout/PageTitle.js.map +1 -1
  133. package/dist/ssr/layout/SettingsModal.js +2 -2
  134. package/dist/ssr/layout/SettingsModal.js.map +1 -1
  135. package/dist/ssr/layout/SidebarSwitcher.js +13 -12
  136. package/dist/ssr/layout/SidebarSwitcher.js.map +1 -1
  137. package/dist/ssr/layout/TabBar.js +1 -1
  138. package/dist/ssr/layout/TabBar.js.map +1 -1
  139. package/dist/ssr/layout/app-host-width.js +44 -0
  140. package/dist/ssr/layout/app-host-width.js.map +1 -0
  141. package/dist/ssr/layout/app-workspace-controller.js +219 -39
  142. package/dist/ssr/layout/app-workspace-controller.js.map +1 -1
  143. package/dist/ssr/layout/index.js +1 -0
  144. package/dist/ssr/layout/index.js.map +1 -1
  145. package/dist/ssr/surfaces/Placeholder.js +24 -7
  146. package/dist/ssr/surfaces/Placeholder.js.map +1 -1
  147. package/dist/styles.css +1 -1
  148. package/dist/types/actions/Dropdown.d.ts +4 -0
  149. package/dist/types/actions/FilterChip.d.ts +22 -0
  150. package/dist/types/actions/ViewTabs.d.ts +30 -0
  151. package/dist/types/actions/filter-messages.d.ts +2 -0
  152. package/dist/types/actions/index.d.ts +4 -2
  153. package/dist/types/chat/ChatComposer.d.ts +52 -0
  154. package/dist/types/chat/ChatDecision.d.ts +18 -2
  155. package/dist/types/chat/ChatPrimitives.d.ts +10 -0
  156. package/dist/types/chat/chat-messages.d.ts +4 -0
  157. package/dist/types/chat/command-search.d.ts +2 -0
  158. package/dist/types/chat/index.d.ts +9 -8
  159. package/dist/types/content/DataTable.d.ts +3 -0
  160. package/dist/types/content/data-table-messages.d.ts +1 -0
  161. package/dist/types/feedback/MovedHint.d.ts +25 -0
  162. package/dist/types/feedback/dialog-core.d.ts +5 -2
  163. package/dist/types/feedback/index.d.ts +2 -0
  164. package/dist/types/feedback/prompts.d.ts +2 -0
  165. package/dist/types/inputs/DatePicker.d.ts +7 -0
  166. package/dist/types/inputs/date-picker.d.ts +25 -1
  167. package/dist/types/intl/messages.d.ts +6 -0
  168. package/dist/types/intl/weekend.d.ts +12 -0
  169. package/dist/types/layout/AppWorkspace.d.ts +43 -7
  170. package/dist/types/layout/app-host-width.d.ts +6 -0
  171. package/dist/types/layout/index.d.ts +2 -1
  172. package/dist/types/surfaces/Placeholder.d.ts +2 -1
  173. package/package.json +4 -4
@@ -2,8 +2,8 @@ import { template as _$template } from "solid-js/web";
2
2
  import { delegateEvents as _$delegateEvents } from "solid-js/web";
3
3
  import { addEventListener as _$addEventListener } from "solid-js/web";
4
4
  import { setStyleProperty as _$setStyleProperty } from "solid-js/web";
5
- import { setProperty as _$setProperty } from "solid-js/web";
6
5
  import { className as _$className } from "solid-js/web";
6
+ import { setProperty as _$setProperty } from "solid-js/web";
7
7
  import { runHydrationEvents as _$runHydrationEvents } from "solid-js/web";
8
8
  import { use as _$use } from "solid-js/web";
9
9
  import { spread as _$spread } from "solid-js/web";
@@ -17,15 +17,15 @@ import { setAttribute as _$setAttribute } from "solid-js/web";
17
17
  import { effect as _$effect } from "solid-js/web";
18
18
  import { getNextElement as _$getNextElement } from "solid-js/web";
19
19
  var _tmpl$ = /*#__PURE__*/_$template(`<button type=button class=k2b-app-workspace__resize role=separator><span aria-hidden=true>`),
20
- _tmpl$2 = /*#__PURE__*/_$template(`<p>`),
20
+ _tmpl$2 = /*#__PURE__*/_$template(`<p class=k2b-truncate-fade>`),
21
21
  _tmpl$3 = /*#__PURE__*/_$template(`<div class=k2b-app-workspace__level-actions>`),
22
- _tmpl$4 = /*#__PURE__*/_$template(`<header class=k2b-app-workspace__level-head><!$><!/><div class=k2b-app-workspace__level-title><h2 tabindex=-1></h2><!$><!/></div><!$><!/>`),
22
+ _tmpl$4 = /*#__PURE__*/_$template(`<header class=k2b-app-workspace__level-head><!$><!/><div class=k2b-app-workspace__level-title><h2 tabindex=-1><span class=k2b-truncate-fade></span></h2><!$><!/></div><!$><!/>`),
23
23
  _tmpl$5 = /*#__PURE__*/_$template(`<div>`),
24
- _tmpl$6 = /*#__PURE__*/_$template(`<div class=k2b-app-workspace__main-primary data-workspace-main-region=main>`),
25
- _tmpl$7 = /*#__PURE__*/_$template(`<section>`),
26
- _tmpl$8 = /*#__PURE__*/_$template(`<i class="ti ti-chevron-left"aria-hidden=true>`),
27
- _tmpl$9 = /*#__PURE__*/_$template(`<div class=k2b-app-workspace__level-body>`),
28
- _tmpl$0 = /*#__PURE__*/_$template(`<style>`),
24
+ _tmpl$6 = /*#__PURE__*/_$template(`<style>`),
25
+ _tmpl$7 = /*#__PURE__*/_$template(`<div class=k2b-app-workspace__main-primary data-workspace-main-region=main>`),
26
+ _tmpl$8 = /*#__PURE__*/_$template(`<section>`),
27
+ _tmpl$9 = /*#__PURE__*/_$template(`<i class="ti ti-chevron-left"aria-hidden=true>`),
28
+ _tmpl$0 = /*#__PURE__*/_$template(`<div class=k2b-app-workspace__level-body>`),
29
29
  _tmpl$1 = /*#__PURE__*/_$template(`<i class="ti ti-layout-sidebar-right"aria-hidden=true>`),
30
30
  _tmpl$10 = /*#__PURE__*/_$template(`<aside><button type=button class=k2b-app-workspace__detail-grabber aria-pressed=false><span aria-hidden=true></span></button><!$><!/>`),
31
31
  _tmpl$11 = /*#__PURE__*/_$template(`<aside>`),
@@ -54,35 +54,41 @@ var _tmpl$ = /*#__PURE__*/_$template(`<button type=button class=k2b-app-workspac
54
54
  _tmpl$34 = /*#__PURE__*/_$template(`<div><!$><!/><!$><!/>`),
55
55
  _tmpl$35 = /*#__PURE__*/_$template(`<span aria-hidden=true>`),
56
56
  _tmpl$36 = /*#__PURE__*/_$template(`<span class=k2b-app-workspace__sidebar-item-context-meta>`),
57
- _tmpl$37 = /*#__PURE__*/_$template(`<span class=k2b-app-workspace__sidebar-item-context><span class=k2b-app-workspace__sidebar-item-context-label></span><!$><!/>`),
58
- _tmpl$38 = /*#__PURE__*/_$template(`<span class=k2b-app-workspace__sidebar-item-description>`),
59
- _tmpl$39 = /*#__PURE__*/_$template(`<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><!$><!/>`),
57
+ _tmpl$37 = /*#__PURE__*/_$template(`<span class=k2b-app-workspace__sidebar-item-context><span class="k2b-app-workspace__sidebar-item-context-label k2b-truncate-fade"></span><!$><!/>`),
58
+ _tmpl$38 = /*#__PURE__*/_$template(`<span class="k2b-app-workspace__sidebar-item-description k2b-truncate-fade">`),
59
+ _tmpl$39 = /*#__PURE__*/_$template(`<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 k2b-truncate-fade-lines"></span></span><!$><!/>`),
60
60
  _tmpl$40 = /*#__PURE__*/_$template(`<span class=k2b-app-workspace__sidebar-item-meta>`),
61
61
  _tmpl$41 = /*#__PURE__*/_$template(`<i>`),
62
62
  _tmpl$42 = /*#__PURE__*/_$template(`<a class=k2b-app-workspace__sidebar-item-action>`),
63
63
  _tmpl$43 = /*#__PURE__*/_$template(`<button type=button class=k2b-app-workspace__sidebar-item-action>`),
64
64
  _tmpl$44 = /*#__PURE__*/_$template(`<span class=k2b-app-workspace__sidebar-item-icon><i>`),
65
- _tmpl$45 = /*#__PURE__*/_$template(`<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>`),
65
+ _tmpl$45 = /*#__PURE__*/_$template(`<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 k2b-truncate-fade-lines"></span></span><span class="k2b-app-workspace__sidebar-item-description k2b-truncate-fade">`),
66
66
  _tmpl$46 = /*#__PURE__*/_$template(`<span>`),
67
67
  _tmpl$47 = /*#__PURE__*/_$template(`<span class=k2b-app-workspace__nav-tree-toggle data-k2b-nav-tree-toggle aria-hidden=true><i>`),
68
- _tmpl$48 = /*#__PURE__*/_$template(`<span class=k2b-app-workspace__sidebar-item-label><span class=k2b-app-workspace__sidebar-item-label-text>`),
68
+ _tmpl$48 = /*#__PURE__*/_$template(`<span class=k2b-app-workspace__sidebar-item-label><span class="k2b-app-workspace__sidebar-item-label-text k2b-truncate-fade-lines">`),
69
69
  _tmpl$49 = /*#__PURE__*/_$template(`<div class=k2b-app-workspace__nav-tree-group role=group>`),
70
70
  _tmpl$50 = /*#__PURE__*/_$template(`<div class=k2b-app-workspace__nav-tree-node role=treeitem><!$><!/><!$><!/>`),
71
71
  _tmpl$51 = /*#__PURE__*/_$template(`<div role=tree>`),
72
72
  _tmpl$52 = /*#__PURE__*/_$template(`<section><!$><!/><div class=k2b-app-workspace__sidebar-icon-grid>`),
73
73
  _tmpl$53 = /*#__PURE__*/_$template(`<i aria-hidden=true>`),
74
- _tmpl$54 = /*#__PURE__*/_$template(`<i class="ti ti-layout-sidebar"aria-hidden=true>`),
75
- _tmpl$55 = /*#__PURE__*/_$template(`<div class=k2b-app-workspace__head><!$><!/><!$><!/>`),
76
- _tmpl$56 = /*#__PURE__*/_$template(`<h1 class=k2b-app-workspace__head-heading data-k2b-page-trail-title>`),
77
- _tmpl$57 = /*#__PURE__*/_$template(`<div data-k2b-app-workspace><!$><!/><!$><!/>`);
74
+ _tmpl$54 = /*#__PURE__*/_$template(`<span class=k2b-app-workspace__head-primary-label>`),
75
+ _tmpl$55 = /*#__PURE__*/_$template(`<i class="ti ti-layout-sidebar"aria-hidden=true>`),
76
+ _tmpl$56 = /*#__PURE__*/_$template(`<div class=k2b-app-workspace__head-views>`),
77
+ _tmpl$57 = /*#__PURE__*/_$template(`<div class=k2b-app-workspace__head-filters role=group><!$><!/><!$><!/>`),
78
+ _tmpl$58 = /*#__PURE__*/_$template(`<span class=k2b-app-workspace__head-count><span>`),
79
+ _tmpl$59 = /*#__PURE__*/_$template(`<div class=k2b-app-workspace__head-actions><!$><!/><!$><!/>`),
80
+ _tmpl$60 = /*#__PURE__*/_$template(`<div class=k2b-app-workspace__head><div class=k2b-app-workspace__head-lead><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/></div><!$><!/>`),
81
+ _tmpl$61 = /*#__PURE__*/_$template(`<h1 class=k2b-app-workspace__head-heading data-k2b-page-trail-title>`),
82
+ _tmpl$62 = /*#__PURE__*/_$template(`<div data-k2b-app-workspace>`);
78
83
  import { Link } from "@k2b/ssr/nav";
79
84
  import { children, createContext, createEffect, createMemo, createRoot, createSignal, createUniqueId, For, getOwner, mergeProps, on, onCleanup, onMount, Show, useContext } from "solid-js";
80
85
  import { Dynamic, isServer } from "solid-js/web";
81
- import { Button, IconButton, IconButtonLink } from "../actions/Button";
86
+ import { Button, ButtonLink, IconButton, IconButtonLink } from "../actions/Button";
87
+ import { useFilterMessages } from "../actions/filter-messages";
82
88
  import { dialogCore } from "../feedback/dialog-core";
83
89
  import { RenderErrorBoundary } from "../internal/render-error";
84
90
  import { APP_WORKSPACE_DETAIL_CLOSE_EVENT, APP_WORKSPACE_DETAIL_STEP_EVENT, APP_WORKSPACE_SIDEBAR_HIDE_EVENT, installAppWorkspaceController } from "./app-workspace-controller";
85
- 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";
91
+ 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_MAIN_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";
86
92
  import BottomSheet, { bottomSheetAdaptiveOptions } from "./BottomSheet";
87
93
  import { PageTitle, usePageTrail } from "./PageTitle";
88
94
  import { SidebarItemPreview } from "./SidebarItemPreview";
@@ -95,6 +101,8 @@ const ResizeContext = createContext(true);
95
101
  /** The enclosing workspace: its head names the sidebar, and a nested workspace leaves the page title to it. */
96
102
  const WorkspaceContext = createContext();
97
103
  const LayoutStateContext = createContext(null);
104
+ const HEAD = Symbol("AppWorkspace.Head");
105
+ const headSlot = value => !!value && typeof value === "object" && "kind" in value && value.kind === HEAD;
98
106
  const MAIN_PANE = Symbol("AppWorkspace.MainPane");
99
107
  const SIDEBAR_DESKTOP = Symbol("AppWorkspace.SidebarDesktop");
100
108
  const SIDEBAR_ITEM_ICON = Symbol("AppWorkspace.SidebarItemIcon");
@@ -114,6 +122,13 @@ const mainPaneSlot = value => Boolean(value && typeof value === "object" && "kin
114
122
  const sidebarChildSlot = value => Boolean(value && typeof value === "object" && "kind" in value && value.kind === SIDEBAR_DESKTOP);
115
123
  const sidebarItemSlot = value => Boolean(value && typeof value === "object" && "kind" in value && [SIDEBAR_ITEM_ICON, SIDEBAR_ITEM_LABEL, SIDEBAR_ITEM_META, SIDEBAR_ITEM_ACTION].includes(value.kind));
116
124
  const navTreeItemSlot = value => Boolean(value && typeof value === "object" && "kind" in value && value.kind === NAV_TREE_ITEM);
125
+ /** Head row slot. Must be a direct child of AppWorkspace; its parts may be islands. */
126
+ function AppWorkspaceHeadSlot(props) {
127
+ return {
128
+ kind: HEAD,
129
+ props
130
+ };
131
+ }
117
132
  function ResizeHandle(props) {
118
133
  const workspaceMessages = useWorkspaceMessages();
119
134
  const workspace = useContext(WorkspaceContext);
@@ -220,36 +235,37 @@ function LevelHead(props) {
220
235
  const actions = children(() => props.actions);
221
236
  return (() => {
222
237
  var _el$2 = _$getNextElement(_tmpl$4),
223
- _el$9 = _el$2.firstChild,
224
- [_el$0, _co$2] = _$getNextMarker(_el$9.nextSibling),
225
- _el$3 = _el$0.nextSibling,
238
+ _el$0 = _el$2.firstChild,
239
+ [_el$1, _co$2] = _$getNextMarker(_el$0.nextSibling),
240
+ _el$3 = _el$1.nextSibling,
226
241
  _el$4 = _el$3.firstChild,
227
- _el$6 = _el$4.nextSibling,
228
- [_el$7, _co$] = _$getNextMarker(_el$6.nextSibling),
229
- _el$1 = _el$3.nextSibling,
230
- [_el$10, _co$3] = _$getNextMarker(_el$1.nextSibling);
231
- _$insert(_el$2, () => props.children, _el$0, _co$2);
232
- _$insert(_el$4, () => props.label);
242
+ _el$5 = _el$4.firstChild,
243
+ _el$7 = _el$4.nextSibling,
244
+ [_el$8, _co$] = _$getNextMarker(_el$7.nextSibling),
245
+ _el$10 = _el$3.nextSibling,
246
+ [_el$11, _co$3] = _$getNextMarker(_el$10.nextSibling);
247
+ _$insert(_el$2, () => props.children, _el$1, _co$2);
248
+ _$insert(_el$5, () => props.label);
233
249
  _$insert(_el$3, _$createComponent(Show, {
234
250
  get when() {
235
251
  return description();
236
252
  },
237
253
  get children() {
238
- var _el$5 = _$getNextElement(_tmpl$2);
239
- _$insert(_el$5, description);
240
- return _el$5;
254
+ var _el$6 = _$getNextElement(_tmpl$2);
255
+ _$insert(_el$6, description);
256
+ return _el$6;
241
257
  }
242
- }), _el$7, _co$);
258
+ }), _el$8, _co$);
243
259
  _$insert(_el$2, _$createComponent(Show, {
244
260
  get when() {
245
261
  return actions();
246
262
  },
247
263
  get children() {
248
- var _el$8 = _$getNextElement(_tmpl$3);
249
- _$insert(_el$8, actions);
250
- return _el$8;
264
+ var _el$9 = _$getNextElement(_tmpl$3);
265
+ _$insert(_el$9, actions);
266
+ return _el$9;
251
267
  }
252
- }), _el$10, _co$3);
268
+ }), _el$11, _co$3);
253
269
  return _el$2;
254
270
  })();
255
271
  }
@@ -340,14 +356,37 @@ function AppWorkspaceMain(props) {
340
356
  // layout. Deriving it from `regions()` made a workspace whose panes are all
341
357
  // closed fall back to `resolved()`, which renders the raw slot objects.
342
358
  const hasPanes = createMemo(() => paneIds().length > 0);
343
- return (() => {
344
- var _el$11 = _$getNextElement(_tmpl$5);
359
+ // The workspace's tracks and queries read Main's minimum on the workspace
360
+ // itself, which cannot read Main's own variables, so this rule hands it up,
361
+ // as `AppWorkspace.Detail` does with its width.
362
+ const minWidth = () => {
363
+ const value = props.minWidth;
364
+ return value !== undefined && Number.isFinite(value) && value > APP_WORKSPACE_MAIN_MIN ? Math.round(value) : undefined;
365
+ };
366
+ const minWidthRule = value => {
367
+ const main = `.k2b-app-workspace__main[data-workspace-main-min="${value}"]`;
368
+ return `.k2b-app-workspace:has(> .k2b-app-workspace__content > ${main}, > .k2b-app-workspace__content > :is(solid-island, solid-client) > ${main}){--k2b-workspace-main-min:${value}px}`;
369
+ };
370
+ return [_$createComponent(Show, {
371
+ get when() {
372
+ return minWidth();
373
+ },
374
+ children: value => (() => {
375
+ var _el$13 = _$getNextElement(_tmpl$6);
376
+ _$effect(() => _$setProperty(_el$13, "innerHTML", minWidthRule(value())));
377
+ return _el$13;
378
+ })()
379
+ }), (() => {
380
+ var _el$12 = _$getNextElement(_tmpl$5);
345
381
  var _ref$ = mainElement;
346
- typeof _ref$ === "function" ? _$use(_ref$, _el$11) : mainElement = _el$11;
347
- _$spread(_el$11, _$mergeProps({
382
+ typeof _ref$ === "function" ? _$use(_ref$, _el$12) : mainElement = _el$12;
383
+ _$spread(_el$12, _$mergeProps({
348
384
  get ["class"]() {
349
385
  return `k2b-app-workspace__main ${hasPanes() ? "has-panes" : ""} ${props.class ?? ""}`;
350
386
  },
387
+ get ["data-workspace-main-min"]() {
388
+ return minWidth();
389
+ },
351
390
  get ["data-workspace-levels"]() {
352
391
  return levelsMode() ? "" : undefined;
353
392
  },
@@ -370,7 +409,7 @@ function AppWorkspaceMain(props) {
370
409
  return props["aria-busy"];
371
410
  }
372
411
  }, () => scrollAttrs(props.scrollPreserveKey)), false, true);
373
- _$insert(_el$11, _$createComponent(Show, {
412
+ _$insert(_el$12, _$createComponent(Show, {
374
413
  get when() {
375
414
  return hasPanes();
376
415
  },
@@ -389,10 +428,10 @@ function AppWorkspaceMain(props) {
389
428
  };
390
429
  if (region.type === "primary") {
391
430
  return (() => {
392
- var _el$12 = _$getNextElement(_tmpl$6);
393
- _$insert(_el$12, () => region.children);
394
- _$effect(() => _$setAttribute(_el$12, "data-workspace-mobile-active", activeMobilePane() === "main" ? "true" : "false"));
395
- return _el$12;
431
+ var _el$14 = _$getNextElement(_tmpl$7);
432
+ _$insert(_el$14, () => region.children);
433
+ _$effect(() => _$setAttribute(_el$14, "data-workspace-mobile-active", activeMobilePane() === "main" ? "true" : "false"));
434
+ return _el$14;
396
435
  })();
397
436
  }
398
437
  const pane = region.slot;
@@ -447,9 +486,9 @@ function AppWorkspaceMain(props) {
447
486
  return handle();
448
487
  }
449
488
  }), (() => {
450
- var _el$13 = _$getNextElement(_tmpl$7);
451
- _$setAttribute(_el$13, "data-workspace-panel-id", panelId);
452
- _$insert(_el$13, (() => {
489
+ var _el$15 = _$getNextElement(_tmpl$8);
490
+ _$setAttribute(_el$15, "data-workspace-panel-id", panelId);
491
+ _$insert(_el$15, (() => {
453
492
  var _c$ = _$memo(() => !!levelsMode());
454
493
  return () => _c$() ? [_$createComponent(LevelHead, {
455
494
  get label() {
@@ -484,26 +523,26 @@ function AppWorkspaceMain(props) {
484
523
  return props.onLevelNavigate ? navigateBack : undefined;
485
524
  },
486
525
  get children() {
487
- return _$getNextElement(_tmpl$8);
526
+ return _$getNextElement(_tmpl$9);
488
527
  }
489
528
  });
490
529
  }
491
530
  });
492
531
  }
493
532
  }), (() => {
494
- var _el$15 = _$getNextElement(_tmpl$9);
495
- _$insert(_el$15, () => pane.props.children);
533
+ var _el$17 = _$getNextElement(_tmpl$0);
534
+ _$insert(_el$17, () => pane.props.children);
496
535
  _$effect(_p$ => {
497
536
  var _v$28 = pane.props.scroll === false ? "false" : undefined,
498
537
  _v$29 = pane.props.scroll !== false && pane.props.scrollFade !== false ? "both" : undefined;
499
- _v$28 !== _p$.e && _$setAttribute(_el$15, "data-scroll", _p$.e = _v$28);
500
- _v$29 !== _p$.t && _$setAttribute(_el$15, "data-scroll-fade-mode", _p$.t = _v$29);
538
+ _v$28 !== _p$.e && _$setAttribute(_el$17, "data-scroll", _p$.e = _v$28);
539
+ _v$29 !== _p$.t && _$setAttribute(_el$17, "data-scroll-fade-mode", _p$.t = _v$29);
501
540
  return _p$;
502
541
  }, {
503
542
  e: undefined,
504
543
  t: undefined
505
544
  });
506
- return _el$15;
545
+ return _el$17;
507
546
  })()] : pane.props.children;
508
547
  })());
509
548
  _$effect(_p$ => {
@@ -525,20 +564,20 @@ function AppWorkspaceMain(props) {
525
564
  "--k2b-workspace-panel-size": `clamp(${minSize()}px, var(${variable}, ${defaultSize()}px), ${maxSize()}px)`,
526
565
  "--k2b-workspace-panel-min": `${minSize()}px`
527
566
  };
528
- _v$14 !== _p$.e && _$setAttribute(_el$13, "id", _p$.e = _v$14);
529
- _v$15 !== _p$.t && _$className(_el$13, _p$.t = _v$15);
530
- _v$16 !== _p$.a && _$setAttribute(_el$13, "aria-label", _p$.a = _v$16);
531
- _v$17 !== _p$.o && _$setAttribute(_el$13, "data-workspace-level", _p$.o = _v$17);
532
- _v$18 !== _p$.i && _$setAttribute(_el$13, "data-workspace-level-shown", _p$.i = _v$18);
533
- _v$19 !== _p$.n && _$setAttribute(_el$13, "data-workspace-level-first", _p$.n = _v$19);
534
- _v$20 !== _p$.s && _$setAttribute(_el$13, "data-workspace-level-last", _p$.s = _v$20);
535
- _v$21 !== _p$.h && _$setAttribute(_el$13, "data-workspace-main-region", _p$.h = _v$21);
536
- _v$22 !== _p$.r && _$setAttribute(_el$13, "data-workspace-mobile-active", _p$.r = _v$22);
537
- _v$23 !== _p$.d && _$setAttribute(_el$13, "data-workspace-resizable", _p$.d = _v$23);
538
- _v$24 !== _p$.l && _$setAttribute(_el$13, "data-surface", _p$.l = _v$24);
539
- _v$25 !== _p$.u && _$setAttribute(_el$13, "data-scroll", _p$.u = _v$25);
540
- _v$26 !== _p$.c && _$setAttribute(_el$13, "data-scroll-fade-mode", _p$.c = _v$26);
541
- _p$.w = _$style(_el$13, _v$27, _p$.w);
567
+ _v$14 !== _p$.e && _$setAttribute(_el$15, "id", _p$.e = _v$14);
568
+ _v$15 !== _p$.t && _$className(_el$15, _p$.t = _v$15);
569
+ _v$16 !== _p$.a && _$setAttribute(_el$15, "aria-label", _p$.a = _v$16);
570
+ _v$17 !== _p$.o && _$setAttribute(_el$15, "data-workspace-level", _p$.o = _v$17);
571
+ _v$18 !== _p$.i && _$setAttribute(_el$15, "data-workspace-level-shown", _p$.i = _v$18);
572
+ _v$19 !== _p$.n && _$setAttribute(_el$15, "data-workspace-level-first", _p$.n = _v$19);
573
+ _v$20 !== _p$.s && _$setAttribute(_el$15, "data-workspace-level-last", _p$.s = _v$20);
574
+ _v$21 !== _p$.h && _$setAttribute(_el$15, "data-workspace-main-region", _p$.h = _v$21);
575
+ _v$22 !== _p$.r && _$setAttribute(_el$15, "data-workspace-mobile-active", _p$.r = _v$22);
576
+ _v$23 !== _p$.d && _$setAttribute(_el$15, "data-workspace-resizable", _p$.d = _v$23);
577
+ _v$24 !== _p$.l && _$setAttribute(_el$15, "data-surface", _p$.l = _v$24);
578
+ _v$25 !== _p$.u && _$setAttribute(_el$15, "data-scroll", _p$.u = _v$25);
579
+ _v$26 !== _p$.c && _$setAttribute(_el$15, "data-scroll-fade-mode", _p$.c = _v$26);
580
+ _p$.w = _$style(_el$15, _v$27, _p$.w);
542
581
  return _p$;
543
582
  }, {
544
583
  e: undefined,
@@ -556,7 +595,7 @@ function AppWorkspaceMain(props) {
556
595
  c: undefined,
557
596
  w: undefined
558
597
  });
559
- return _el$13;
598
+ return _el$15;
560
599
  })(), _$createComponent(Show, {
561
600
  get when() {
562
601
  return _$memo(() => !!resizable())() && before();
@@ -572,8 +611,8 @@ function AppWorkspaceMain(props) {
572
611
  }
573
612
  }));
574
613
  _$runHydrationEvents();
575
- return _el$11;
576
- })();
614
+ return _el$12;
615
+ })()];
577
616
  }
578
617
  function AppWorkspaceDetail(props) {
579
618
  const workspaceMessages = useWorkspaceMessages();
@@ -624,9 +663,9 @@ function AppWorkspaceDetail(props) {
624
663
  });
625
664
  });
626
665
  return [(() => {
627
- var _el$16 = _$getNextElement(_tmpl$0);
628
- _$effect(() => _$setProperty(_el$16, "innerHTML", workspaceRule()));
629
- return _el$16;
666
+ var _el$18 = _$getNextElement(_tmpl$6);
667
+ _$effect(() => _$setProperty(_el$18, "innerHTML", workspaceRule()));
668
+ return _el$18;
630
669
  })(), _$createComponent(Button, {
631
670
  type: "button",
632
671
  variant: "ghost",
@@ -668,39 +707,41 @@ function AppWorkspaceDetail(props) {
668
707
  });
669
708
  }
670
709
  }), (() => {
671
- var _el$18 = _$getNextElement(_tmpl$10),
672
- _el$19 = _el$18.firstChild,
673
- _el$20 = _el$19.nextSibling,
674
- [_el$21, _co$4] = _$getNextMarker(_el$20.nextSibling);
710
+ var _el$20 = _$getNextElement(_tmpl$10),
711
+ _el$21 = _el$20.firstChild,
712
+ _el$22 = _el$21.nextSibling,
713
+ [_el$23, _co$4] = _$getNextMarker(_el$22.nextSibling);
675
714
  var _ref$2 = aside;
676
- typeof _ref$2 === "function" ? _$use(_ref$2, _el$18) : aside = _el$18;
677
- _$insert(_el$18, () => props.children, _el$21, _co$4);
715
+ typeof _ref$2 === "function" ? _$use(_ref$2, _el$20) : aside = _el$20;
716
+ _$insert(_el$20, () => props.children, _el$23, _co$4);
678
717
  _$effect(_p$ => {
679
718
  var _v$30 = domId(),
680
719
  _v$31 = `k2b-app-workspace__detail ${props.class ?? ""}`,
681
720
  _v$32 = props.width ?? "md",
682
721
  _v$33 = props.phone === "page" ? "page" : undefined,
683
- _v$34 = panelId(),
684
- _v$35 = resizable() ? "true" : "false",
685
- _v$36 = props.onClose ? "true" : undefined,
686
- _v$37 = props.onStep ? "true" : undefined,
687
- _v$38 = !props.open,
688
- _v$39 = {
722
+ _v$34 = props.openOnChoice === false ? "request" : undefined,
723
+ _v$35 = panelId(),
724
+ _v$36 = resizable() ? "true" : "false",
725
+ _v$37 = props.onClose ? "true" : undefined,
726
+ _v$38 = props.onStep ? "true" : undefined,
727
+ _v$39 = !props.open,
728
+ _v$40 = {
689
729
  ...sizeStyle(),
690
730
  "view-transition-name": props.viewTransitionName
691
731
  },
692
- _v$40 = workspaceMessages().detailFullHeight;
693
- _v$30 !== _p$.e && _$setAttribute(_el$18, "id", _p$.e = _v$30);
694
- _v$31 !== _p$.t && _$className(_el$18, _p$.t = _v$31);
695
- _v$32 !== _p$.a && _$setAttribute(_el$18, "data-width", _p$.a = _v$32);
696
- _v$33 !== _p$.o && _$setAttribute(_el$18, "data-workspace-detail-phone", _p$.o = _v$33);
697
- _v$34 !== _p$.i && _$setAttribute(_el$18, "data-workspace-panel-id", _p$.i = _v$34);
698
- _v$35 !== _p$.n && _$setAttribute(_el$18, "data-workspace-resizable", _p$.n = _v$35);
699
- _v$36 !== _p$.s && _$setAttribute(_el$18, "data-workspace-detail-closable", _p$.s = _v$36);
700
- _v$37 !== _p$.h && _$setAttribute(_el$18, "data-workspace-detail-steppable", _p$.h = _v$37);
701
- _v$38 !== _p$.r && _$setProperty(_el$18, "hidden", _p$.r = _v$38);
702
- _p$.d = _$style(_el$18, _v$39, _p$.d);
703
- _v$40 !== _p$.l && _$setAttribute(_el$19, "aria-label", _p$.l = _v$40);
732
+ _v$41 = workspaceMessages().detailFullHeight;
733
+ _v$30 !== _p$.e && _$setAttribute(_el$20, "id", _p$.e = _v$30);
734
+ _v$31 !== _p$.t && _$className(_el$20, _p$.t = _v$31);
735
+ _v$32 !== _p$.a && _$setAttribute(_el$20, "data-width", _p$.a = _v$32);
736
+ _v$33 !== _p$.o && _$setAttribute(_el$20, "data-workspace-detail-phone", _p$.o = _v$33);
737
+ _v$34 !== _p$.i && _$setAttribute(_el$20, "data-workspace-detail-choice", _p$.i = _v$34);
738
+ _v$35 !== _p$.n && _$setAttribute(_el$20, "data-workspace-panel-id", _p$.n = _v$35);
739
+ _v$36 !== _p$.s && _$setAttribute(_el$20, "data-workspace-resizable", _p$.s = _v$36);
740
+ _v$37 !== _p$.h && _$setAttribute(_el$20, "data-workspace-detail-closable", _p$.h = _v$37);
741
+ _v$38 !== _p$.r && _$setAttribute(_el$20, "data-workspace-detail-steppable", _p$.r = _v$38);
742
+ _v$39 !== _p$.d && _$setProperty(_el$20, "hidden", _p$.d = _v$39);
743
+ _p$.l = _$style(_el$20, _v$40, _p$.l);
744
+ _v$41 !== _p$.u && _$setAttribute(_el$21, "aria-label", _p$.u = _v$41);
704
745
  return _p$;
705
746
  }, {
706
747
  e: undefined,
@@ -713,9 +754,10 @@ function AppWorkspaceDetail(props) {
713
754
  h: undefined,
714
755
  r: undefined,
715
756
  d: undefined,
716
- l: undefined
757
+ l: undefined,
758
+ u: undefined
717
759
  });
718
- return _el$18;
760
+ return _el$20;
719
761
  })()];
720
762
  }
721
763
  function AppWorkspaceBottomDrawer(props) {
@@ -765,25 +807,25 @@ function AppWorkspaceBottomDrawer(props) {
765
807
  });
766
808
  }
767
809
  }), (() => {
768
- var _el$22 = _$getNextElement(_tmpl$11);
769
- _$insert(_el$22, () => props.children);
810
+ var _el$24 = _$getNextElement(_tmpl$11);
811
+ _$insert(_el$24, () => props.children);
770
812
  _$effect(_p$ => {
771
- var _v$41 = domId(),
772
- _v$42 = `k2b-app-workspace__drawer ${props.class ?? ""}`,
773
- _v$43 = props.height ?? "md",
774
- _v$44 = panelId(),
775
- _v$45 = resizable() ? "true" : "false",
776
- _v$46 = !props.open,
777
- _v$47 = `var(${variable()}, ${defaultHeight()}px)`,
778
- _v$48 = props.viewTransitionName;
779
- _v$41 !== _p$.e && _$setAttribute(_el$22, "id", _p$.e = _v$41);
780
- _v$42 !== _p$.t && _$className(_el$22, _p$.t = _v$42);
781
- _v$43 !== _p$.a && _$setAttribute(_el$22, "data-height", _p$.a = _v$43);
782
- _v$44 !== _p$.o && _$setAttribute(_el$22, "data-workspace-panel-id", _p$.o = _v$44);
783
- _v$45 !== _p$.i && _$setAttribute(_el$22, "data-workspace-resizable", _p$.i = _v$45);
784
- _v$46 !== _p$.n && _$setProperty(_el$22, "hidden", _p$.n = _v$46);
785
- _v$47 !== _p$.s && _$setStyleProperty(_el$22, "--k2b-workspace-panel-size", _p$.s = _v$47);
786
- _v$48 !== _p$.h && _$setStyleProperty(_el$22, "view-transition-name", _p$.h = _v$48);
813
+ var _v$42 = domId(),
814
+ _v$43 = `k2b-app-workspace__drawer ${props.class ?? ""}`,
815
+ _v$44 = props.height ?? "md",
816
+ _v$45 = panelId(),
817
+ _v$46 = resizable() ? "true" : "false",
818
+ _v$47 = !props.open,
819
+ _v$48 = `var(${variable()}, ${defaultHeight()}px)`,
820
+ _v$49 = props.viewTransitionName;
821
+ _v$42 !== _p$.e && _$setAttribute(_el$24, "id", _p$.e = _v$42);
822
+ _v$43 !== _p$.t && _$className(_el$24, _p$.t = _v$43);
823
+ _v$44 !== _p$.a && _$setAttribute(_el$24, "data-height", _p$.a = _v$44);
824
+ _v$45 !== _p$.o && _$setAttribute(_el$24, "data-workspace-panel-id", _p$.o = _v$45);
825
+ _v$46 !== _p$.i && _$setAttribute(_el$24, "data-workspace-resizable", _p$.i = _v$46);
826
+ _v$47 !== _p$.n && _$setProperty(_el$24, "hidden", _p$.n = _v$47);
827
+ _v$48 !== _p$.s && _$setStyleProperty(_el$24, "--k2b-workspace-panel-size", _p$.s = _v$48);
828
+ _v$49 !== _p$.h && _$setStyleProperty(_el$24, "view-transition-name", _p$.h = _v$49);
787
829
  return _p$;
788
830
  }, {
789
831
  e: undefined,
@@ -795,7 +837,7 @@ function AppWorkspaceBottomDrawer(props) {
795
837
  s: undefined,
796
838
  h: undefined
797
839
  });
798
- return _el$22;
840
+ return _el$24;
799
841
  })()];
800
842
  }
801
843
  function AppWorkspaceSidebar(props) {
@@ -882,20 +924,20 @@ function AppWorkspaceSidebar(props) {
882
924
  return null;
883
925
  }
884
926
  return (() => {
885
- var _el$23 = _$getNextElement(_tmpl$12);
886
- _$addEventListener(_el$23, "click", event => choose(event, () => close()));
887
- _$insert(_el$23, resolved);
927
+ var _el$25 = _$getNextElement(_tmpl$12);
928
+ _$addEventListener(_el$25, "click", event => choose(event, () => close()));
929
+ _$insert(_el$25, resolved);
888
930
  _$effect(_p$ => {
889
- var _v$49 = props.label,
890
- _v$50 = accent;
891
- _v$49 !== _p$.e && _$setAttribute(_el$23, "aria-label", _p$.e = _v$49);
892
- _p$.t = _$style(_el$23, _v$50, _p$.t);
931
+ var _v$50 = props.label,
932
+ _v$51 = accent;
933
+ _v$50 !== _p$.e && _$setAttribute(_el$25, "aria-label", _p$.e = _v$50);
934
+ _p$.t = _$style(_el$25, _v$51, _p$.t);
893
935
  return _p$;
894
936
  }, {
895
937
  e: undefined,
896
938
  t: undefined
897
939
  });
898
- return _el$23;
940
+ return _el$25;
899
941
  })();
900
942
  }
901
943
  });
@@ -968,49 +1010,49 @@ function AppWorkspaceSidebar(props) {
968
1010
  },
969
1011
  get children() {
970
1012
  return [(() => {
971
- var _el$24 = _$getNextElement(_tmpl$13);
1013
+ var _el$26 = _$getNextElement(_tmpl$13);
972
1014
  var _ref$4 = row;
973
- typeof _ref$4 === "function" ? _$use(_ref$4, _el$24) : row = _el$24;
974
- _$insert(_el$24, () => desktop()?.children);
1015
+ typeof _ref$4 === "function" ? _$use(_ref$4, _el$26) : row = _el$26;
1016
+ _$insert(_el$26, () => desktop()?.children);
975
1017
  _$effect(_p$ => {
976
- var _v$51 = stacked() ? "both" : undefined,
977
- _v$52 = stacked() ? "horizontal" : undefined;
978
- _v$51 !== _p$.e && _$setAttribute(_el$24, "data-scroll-fade-mode", _p$.e = _v$51);
979
- _v$52 !== _p$.t && _$setAttribute(_el$24, "data-scroll-fade-axis", _p$.t = _v$52);
1018
+ var _v$52 = stacked() ? "both" : undefined,
1019
+ _v$53 = stacked() ? "horizontal" : undefined;
1020
+ _v$52 !== _p$.e && _$setAttribute(_el$26, "data-scroll-fade-mode", _p$.e = _v$52);
1021
+ _v$53 !== _p$.t && _$setAttribute(_el$26, "data-scroll-fade-axis", _p$.t = _v$53);
980
1022
  return _p$;
981
1023
  }, {
982
1024
  e: undefined,
983
1025
  t: undefined
984
1026
  });
985
- return _el$24;
1027
+ return _el$26;
986
1028
  })(), _$createComponent(Show, {
987
1029
  get when() {
988
1030
  return stacked();
989
1031
  },
990
1032
  get children() {
991
1033
  return [(() => {
992
- var _el$25 = _$getNextElement(_tmpl$14),
993
- _el$26 = _el$25.firstChild;
994
- _el$25.$$click = event => openAll(event.currentTarget);
995
- _$insert(_el$26, () => workspaceMessages().sidebarAll);
1034
+ var _el$27 = _$getNextElement(_tmpl$14),
1035
+ _el$28 = _el$27.firstChild;
1036
+ _el$27.$$click = event => openAll(event.currentTarget);
1037
+ _$insert(_el$28, () => workspaceMessages().sidebarAll);
996
1038
  _$effect(_p$ => {
997
- var _v$53 = sheetOpen(),
998
- _v$54 = props.label ? workspaceMessages().sidebarAllLabel({
1039
+ var _v$54 = sheetOpen(),
1040
+ _v$55 = props.label ? workspaceMessages().sidebarAllLabel({
999
1041
  label: props.label
1000
1042
  }) : undefined;
1001
- _v$53 !== _p$.e && _$setAttribute(_el$25, "aria-expanded", _p$.e = _v$53);
1002
- _v$54 !== _p$.t && _$setAttribute(_el$25, "aria-label", _p$.t = _v$54);
1043
+ _v$54 !== _p$.e && _$setAttribute(_el$27, "aria-expanded", _p$.e = _v$54);
1044
+ _v$55 !== _p$.t && _$setAttribute(_el$27, "aria-label", _p$.t = _v$55);
1003
1045
  return _p$;
1004
1046
  }, {
1005
1047
  e: undefined,
1006
1048
  t: undefined
1007
1049
  });
1008
1050
  _$runHydrationEvents();
1009
- return _el$25;
1010
- })(), (() => {
1011
- var _el$27 = _$getNextElement(_tmpl$15);
1012
- _$setProperty(_el$27, "innerHTML", CHIP_ROW_SCRIPT);
1013
1051
  return _el$27;
1052
+ })(), (() => {
1053
+ var _el$29 = _$getNextElement(_tmpl$15);
1054
+ _$setProperty(_el$29, "innerHTML", CHIP_ROW_SCRIPT);
1055
+ return _el$29;
1014
1056
  })()];
1015
1057
  }
1016
1058
  })];
@@ -1085,10 +1127,10 @@ const AppWorkspaceSidebarBody = props => {
1085
1127
  onMount(() => onCleanup(rememberSidebarScroll(body, scrollFadeEdges)));
1086
1128
  createScrollFade(() => body, () => props.scrollFade !== false);
1087
1129
  return [(() => {
1088
- var _el$28 = _$getNextElement(_tmpl$5);
1130
+ var _el$30 = _$getNextElement(_tmpl$5);
1089
1131
  var _ref$5 = body;
1090
- typeof _ref$5 === "function" ? _$use(_ref$5, _el$28) : body = _el$28;
1091
- _$spread(_el$28, _$mergeProps({
1132
+ typeof _ref$5 === "function" ? _$use(_ref$5, _el$30) : body = _el$30;
1133
+ _$spread(_el$30, _$mergeProps({
1092
1134
  get ["class"]() {
1093
1135
  return `k2b-app-workspace__sidebar-body ${props.class ?? ""}`;
1094
1136
  },
@@ -1096,25 +1138,25 @@ const AppWorkspaceSidebarBody = props => {
1096
1138
  return props.scrollFade !== false ? "both" : undefined;
1097
1139
  }
1098
1140
  }, () => scrollAttrs(props.scrollPreserveKey), () => modeAttrs(props.sidebarMode)), false, true);
1099
- _$insert(_el$28, () => props.children);
1141
+ _$insert(_el$30, () => props.children);
1100
1142
  _$runHydrationEvents();
1101
- return _el$28;
1143
+ return _el$30;
1102
1144
  })(), (() => {
1103
- var _el$29 = _$getNextElement(_tmpl$15);
1104
- _$setProperty(_el$29, "innerHTML", SIDEBAR_SCROLL_MEMORY_SCRIPT);
1105
- return _el$29;
1145
+ var _el$31 = _$getNextElement(_tmpl$15);
1146
+ _$setProperty(_el$31, "innerHTML", SIDEBAR_SCROLL_MEMORY_SCRIPT);
1147
+ return _el$31;
1106
1148
  })()];
1107
1149
  };
1108
1150
  const AppWorkspaceSidebarFooter = props => (() => {
1109
- var _el$30 = _$getNextElement(_tmpl$16);
1110
- _$spread(_el$30, _$mergeProps({
1151
+ var _el$32 = _$getNextElement(_tmpl$16);
1152
+ _$spread(_el$32, _$mergeProps({
1111
1153
  get ["class"]() {
1112
1154
  return `k2b-app-workspace__sidebar-footer ${props.class ?? ""}`;
1113
1155
  }
1114
1156
  }, () => modeAttrs(props.sidebarMode)), false, true);
1115
- _$insert(_el$30, () => props.children);
1157
+ _$insert(_el$32, () => props.children);
1116
1158
  _$runHydrationEvents();
1117
- return _el$30;
1159
+ return _el$32;
1118
1160
  })();
1119
1161
  const AppWorkspaceSidebarSection = props => {
1120
1162
  const [expanded, setExpanded] = createSignal(props.defaultOpen ?? true);
@@ -1125,27 +1167,27 @@ const AppWorkspaceSidebarSection = props => {
1125
1167
  return props.icon;
1126
1168
  },
1127
1169
  get children() {
1128
- var _el$31 = _$getNextElement(_tmpl$17),
1129
- _el$32 = _el$31.firstChild;
1130
- _$effect(() => _$className(_el$32, iconClass(props.icon)));
1131
- return _el$31;
1170
+ var _el$33 = _$getNextElement(_tmpl$17),
1171
+ _el$34 = _el$33.firstChild;
1172
+ _$effect(() => _$className(_el$34, iconClass(props.icon)));
1173
+ return _el$33;
1132
1174
  }
1133
1175
  }), _$memo(() => props.title), _$createComponent(Show, {
1134
1176
  get when() {
1135
1177
  return props.count !== undefined;
1136
1178
  },
1137
1179
  get children() {
1138
- var _el$33 = _$getNextElement(_tmpl$18);
1139
- _$insert(_el$33, () => props.count);
1140
- return _el$33;
1180
+ var _el$35 = _$getNextElement(_tmpl$18);
1181
+ _$insert(_el$35, () => props.count);
1182
+ return _el$35;
1141
1183
  }
1142
1184
  })];
1143
1185
  return (() => {
1144
- var _el$34 = _$getNextElement(_tmpl$22),
1145
- _el$46 = _el$34.firstChild,
1146
- [_el$47, _co$8] = _$getNextMarker(_el$46.nextSibling),
1147
- _el$45 = _el$47.nextSibling;
1148
- _$spread(_el$34, _$mergeProps({
1186
+ var _el$36 = _$getNextElement(_tmpl$22),
1187
+ _el$48 = _el$36.firstChild,
1188
+ [_el$49, _co$8] = _$getNextMarker(_el$48.nextSibling),
1189
+ _el$47 = _el$49.nextSibling;
1190
+ _$spread(_el$36, _$mergeProps({
1149
1191
  get ["class"]() {
1150
1192
  return `k2b-app-workspace__sidebar-section ${props.class ?? ""}`;
1151
1193
  },
@@ -1153,17 +1195,17 @@ const AppWorkspaceSidebarSection = props => {
1153
1195
  return props.collapsible ? "true" : undefined;
1154
1196
  }
1155
1197
  }, () => modeAttrs(props.sidebarMode)), false, true);
1156
- _$insert(_el$34, _$createComponent(Show, {
1198
+ _$insert(_el$36, _$createComponent(Show, {
1157
1199
  get when() {
1158
1200
  return props.title || props.actions;
1159
1201
  },
1160
1202
  get children() {
1161
- var _el$35 = _$getNextElement(_tmpl$21),
1162
- _el$41 = _el$35.firstChild,
1163
- [_el$42, _co$6] = _$getNextMarker(_el$41.nextSibling),
1164
- _el$43 = _el$42.nextSibling,
1165
- [_el$44, _co$7] = _$getNextMarker(_el$43.nextSibling);
1166
- _$insert(_el$35, _$createComponent(Show, {
1203
+ var _el$37 = _$getNextElement(_tmpl$21),
1204
+ _el$43 = _el$37.firstChild,
1205
+ [_el$44, _co$6] = _$getNextMarker(_el$43.nextSibling),
1206
+ _el$45 = _el$44.nextSibling,
1207
+ [_el$46, _co$7] = _$getNextMarker(_el$45.nextSibling);
1208
+ _$insert(_el$37, _$createComponent(Show, {
1167
1209
  get when() {
1168
1210
  return props.collapsible;
1169
1211
  },
@@ -1173,56 +1215,56 @@ const AppWorkspaceSidebarSection = props => {
1173
1215
  return props.title;
1174
1216
  },
1175
1217
  get children() {
1176
- var _el$48 = _$getNextElement(_tmpl$23);
1177
- _$insert(_el$48, title);
1178
- return _el$48;
1218
+ var _el$50 = _$getNextElement(_tmpl$23);
1219
+ _$insert(_el$50, title);
1220
+ return _el$50;
1179
1221
  }
1180
1222
  });
1181
1223
  },
1182
1224
  get children() {
1183
- var _el$36 = _$getNextElement(_tmpl$19),
1184
- _el$38 = _el$36.firstChild,
1185
- [_el$39, _co$5] = _$getNextMarker(_el$38.nextSibling),
1186
- _el$37 = _el$39.nextSibling;
1187
- _el$36.$$click = () => {
1225
+ var _el$38 = _$getNextElement(_tmpl$19),
1226
+ _el$40 = _el$38.firstChild,
1227
+ [_el$41, _co$5] = _$getNextMarker(_el$40.nextSibling),
1228
+ _el$39 = _el$41.nextSibling;
1229
+ _el$38.$$click = () => {
1188
1230
  const next = !open();
1189
1231
  setExpanded(next);
1190
1232
  props.onOpenChange?.(next);
1191
1233
  };
1192
- _$setAttribute(_el$36, "aria-controls", id);
1193
- _$insert(_el$36, title, _el$39, _co$5);
1234
+ _$setAttribute(_el$38, "aria-controls", id);
1235
+ _$insert(_el$38, title, _el$41, _co$5);
1194
1236
  _$effect(_p$ => {
1195
- var _v$55 = open(),
1196
- _v$56 = open() ? "ti ti-chevron-down" : "ti ti-chevron-right";
1197
- _v$55 !== _p$.e && _$setAttribute(_el$36, "aria-expanded", _p$.e = _v$55);
1198
- _v$56 !== _p$.t && _$className(_el$37, _p$.t = _v$56);
1237
+ var _v$56 = open(),
1238
+ _v$57 = open() ? "ti ti-chevron-down" : "ti ti-chevron-right";
1239
+ _v$56 !== _p$.e && _$setAttribute(_el$38, "aria-expanded", _p$.e = _v$56);
1240
+ _v$57 !== _p$.t && _$className(_el$39, _p$.t = _v$57);
1199
1241
  return _p$;
1200
1242
  }, {
1201
1243
  e: undefined,
1202
1244
  t: undefined
1203
1245
  });
1204
1246
  _$runHydrationEvents();
1205
- return _el$36;
1247
+ return _el$38;
1206
1248
  }
1207
- }), _el$42, _co$6);
1208
- _$insert(_el$35, _$createComponent(Show, {
1249
+ }), _el$44, _co$6);
1250
+ _$insert(_el$37, _$createComponent(Show, {
1209
1251
  get when() {
1210
1252
  return props.actions;
1211
1253
  },
1212
1254
  get children() {
1213
- var _el$40 = _$getNextElement(_tmpl$20);
1214
- _$insert(_el$40, () => props.actions);
1215
- return _el$40;
1255
+ var _el$42 = _$getNextElement(_tmpl$20);
1256
+ _$insert(_el$42, () => props.actions);
1257
+ return _el$42;
1216
1258
  }
1217
- }), _el$44, _co$7);
1218
- return _el$35;
1259
+ }), _el$46, _co$7);
1260
+ return _el$37;
1219
1261
  }
1220
- }), _el$47, _co$8);
1221
- _$setAttribute(_el$45, "id", id);
1222
- _$insert(_el$45, () => props.children);
1223
- _$effect(() => _$setProperty(_el$45, "hidden", !open()));
1262
+ }), _el$49, _co$8);
1263
+ _$setAttribute(_el$47, "id", id);
1264
+ _$insert(_el$47, () => props.children);
1265
+ _$effect(() => _$setProperty(_el$47, "hidden", !open()));
1224
1266
  _$runHydrationEvents();
1225
- return _el$34;
1267
+ return _el$36;
1226
1268
  })();
1227
1269
  };
1228
1270
  const AppWorkspaceSidebarItemIcon = props => mergeProps({
@@ -1238,10 +1280,10 @@ const AppWorkspaceSidebarItemAction = props => mergeProps({
1238
1280
  kind: SIDEBAR_ITEM_ACTION
1239
1281
  }, props);
1240
1282
  const AppWorkspaceSidebarItemActions = props => (() => {
1241
- var _el$49 = _$getNextElement(_tmpl$24);
1242
- _$insert(_el$49, () => props.children);
1243
- _$effect(() => _$setAttribute(_el$49, "data-visibility", props.visibility === "hover" ? "hover" : undefined));
1244
- return _el$49;
1283
+ var _el$51 = _$getNextElement(_tmpl$24);
1284
+ _$insert(_el$51, () => props.children);
1285
+ _$effect(() => _$setAttribute(_el$51, "data-visibility", props.visibility === "hover" ? "hover" : undefined));
1286
+ return _el$51;
1245
1287
  })();
1246
1288
  const AppWorkspaceSidebarItemStatus = props => {
1247
1289
  const workspaceMessages = useWorkspaceMessages();
@@ -1259,8 +1301,8 @@ const AppWorkspaceSidebarItemStatus = props => {
1259
1301
  // space, and it still keeps the row's label on one line, so the first count
1260
1302
  // never re-wraps the label and moves the rows below.
1261
1303
  return (() => {
1262
- var _el$50 = _$getNextElement(_tmpl$30);
1263
- _$insert(_el$50, _$createComponent(Show, {
1304
+ var _el$52 = _$getNextElement(_tmpl$30);
1305
+ _$insert(_el$52, _$createComponent(Show, {
1264
1306
  get when() {
1265
1307
  return description();
1266
1308
  },
@@ -1280,8 +1322,8 @@ const AppWorkspaceSidebarItemStatus = props => {
1280
1322
  return _$getNextElement(_tmpl$26);
1281
1323
  }
1282
1324
  }), (() => {
1283
- var _el$53 = _$getNextElement(_tmpl$28);
1284
- _$insert(_el$53, _$createComponent(Show, {
1325
+ var _el$55 = _$getNextElement(_tmpl$28);
1326
+ _$insert(_el$55, _$createComponent(Show, {
1285
1327
  get when() {
1286
1328
  return count() || waiting() === 0;
1287
1329
  },
@@ -1296,37 +1338,37 @@ const AppWorkspaceSidebarItemStatus = props => {
1296
1338
  });
1297
1339
  },
1298
1340
  get children() {
1299
- var _el$54 = _$getNextElement(_tmpl$27);
1300
- _$insert(_el$54, (() => {
1341
+ var _el$56 = _$getNextElement(_tmpl$27);
1342
+ _$insert(_el$56, (() => {
1301
1343
  var _c$2 = _$memo(() => count() > 99);
1302
1344
  return () => _c$2() ? "99+" : count();
1303
1345
  })());
1304
- _$effect(() => _$setAttribute(_el$54, "data-mention", props.mention ? "true" : undefined));
1305
- return _el$54;
1346
+ _$effect(() => _$setAttribute(_el$56, "data-mention", props.mention ? "true" : undefined));
1347
+ return _el$56;
1306
1348
  }
1307
1349
  }));
1308
- return _el$53;
1309
- })(), (() => {
1310
- var _el$55 = _$getNextElement(_tmpl$29),
1311
- _el$56 = _el$55.firstChild,
1312
- _el$57 = _el$56.nextSibling,
1313
- [_el$58, _co$9] = _$getNextMarker(_el$57.nextSibling);
1314
- _$insert(_el$55, description, _el$58, _co$9);
1315
1350
  return _el$55;
1351
+ })(), (() => {
1352
+ var _el$57 = _$getNextElement(_tmpl$29),
1353
+ _el$58 = _el$57.firstChild,
1354
+ _el$59 = _el$58.nextSibling,
1355
+ [_el$60, _co$9] = _$getNextMarker(_el$59.nextSibling);
1356
+ _$insert(_el$57, description, _el$60, _co$9);
1357
+ return _el$57;
1316
1358
  })()];
1317
1359
  }
1318
1360
  }));
1319
1361
  _$effect(_p$ => {
1320
- var _v$57 = waiting() !== null ? undefined : count() ? "count" : dot() ? "dot" : undefined,
1321
- _v$58 = waiting() === null ? undefined : waiting() ? "count" : "zero";
1322
- _v$57 !== _p$.e && _$setAttribute(_el$50, "data-unread", _p$.e = _v$57);
1323
- _v$58 !== _p$.t && _$setAttribute(_el$50, "data-waiting", _p$.t = _v$58);
1362
+ var _v$58 = waiting() !== null ? undefined : count() ? "count" : dot() ? "dot" : undefined,
1363
+ _v$59 = waiting() === null ? undefined : waiting() ? "count" : "zero";
1364
+ _v$58 !== _p$.e && _$setAttribute(_el$52, "data-unread", _p$.e = _v$58);
1365
+ _v$59 !== _p$.t && _$setAttribute(_el$52, "data-waiting", _p$.t = _v$59);
1324
1366
  return _p$;
1325
1367
  }, {
1326
1368
  e: undefined,
1327
1369
  t: undefined
1328
1370
  });
1329
- return _el$50;
1371
+ return _el$52;
1330
1372
  })();
1331
1373
  };
1332
1374
  /** Shared visual and semantic row frame for flat sidebar items and tree items. */
@@ -1354,8 +1396,8 @@ function AppWorkspaceSidebarRow(props) {
1354
1396
  },
1355
1397
  get fallback() {
1356
1398
  return (() => {
1357
- var _el$60 = _$getNextElement(_tmpl$32);
1358
- _$spread(_el$60, _$mergeProps(attrs, {
1399
+ var _el$62 = _$getNextElement(_tmpl$32);
1400
+ _$spread(_el$62, _$mergeProps(attrs, {
1359
1401
  get tabIndex() {
1360
1402
  return props.tabIndex;
1361
1403
  },
@@ -1366,9 +1408,9 @@ function AppWorkspaceSidebarRow(props) {
1366
1408
  return props.onClick;
1367
1409
  }
1368
1410
  }), false, true);
1369
- _$insert(_el$60, () => props.children);
1411
+ _$insert(_el$62, () => props.children);
1370
1412
  _$runHydrationEvents();
1371
- return _el$60;
1413
+ return _el$62;
1372
1414
  })();
1373
1415
  },
1374
1416
  get children() {
@@ -1378,8 +1420,8 @@ function AppWorkspaceSidebarRow(props) {
1378
1420
  },
1379
1421
  get fallback() {
1380
1422
  return (() => {
1381
- var _el$61 = _$getNextElement(_tmpl$33);
1382
- _$spread(_el$61, _$mergeProps({
1423
+ var _el$63 = _$getNextElement(_tmpl$33);
1424
+ _$spread(_el$63, _$mergeProps({
1383
1425
  get href() {
1384
1426
  return props.href;
1385
1427
  }
@@ -1394,9 +1436,9 @@ function AppWorkspaceSidebarRow(props) {
1394
1436
  return props.onClick;
1395
1437
  }
1396
1438
  }), false, true);
1397
- _$insert(_el$61, () => props.children);
1439
+ _$insert(_el$63, () => props.children);
1398
1440
  _$runHydrationEvents();
1399
- return _el$61;
1441
+ return _el$63;
1400
1442
  })();
1401
1443
  },
1402
1444
  get children() {
@@ -1442,22 +1484,22 @@ function AppWorkspaceSidebarRow(props) {
1442
1484
  });
1443
1485
  },
1444
1486
  get children() {
1445
- var _el$62 = _$getNextElement(_tmpl$34),
1446
- _el$63 = _el$62.firstChild,
1447
- [_el$64, _co$0] = _$getNextMarker(_el$63.nextSibling),
1448
- _el$65 = _el$64.nextSibling,
1449
- [_el$66, _co$1] = _$getNextMarker(_el$65.nextSibling);
1450
- _$spread(_el$62, _$mergeProps(common, {
1487
+ var _el$64 = _$getNextElement(_tmpl$34),
1488
+ _el$65 = _el$64.firstChild,
1489
+ [_el$66, _co$0] = _$getNextMarker(_el$65.nextSibling),
1490
+ _el$67 = _el$66.nextSibling,
1491
+ [_el$68, _co$1] = _$getNextMarker(_el$67.nextSibling);
1492
+ _$spread(_el$64, _$mergeProps(common, {
1451
1493
  get ["data-disabled"]() {
1452
1494
  return props.disabled ? "true" : undefined;
1453
1495
  }
1454
1496
  }), false, true);
1455
- _$insert(_el$62, _$createComponent(Control, {
1497
+ _$insert(_el$64, _$createComponent(Control, {
1456
1498
  grouped: true
1457
- }), _el$64, _co$0);
1458
- _$insert(_el$62, () => props.actions, _el$66, _co$1);
1499
+ }), _el$66, _co$0);
1500
+ _$insert(_el$64, () => props.actions, _el$68, _co$1);
1459
1501
  _$runHydrationEvents();
1460
- return _el$62;
1502
+ return _el$64;
1461
1503
  }
1462
1504
  });
1463
1505
  }
@@ -1490,89 +1532,89 @@ function AppWorkspaceSidebarItem(props) {
1490
1532
  return iconContent() || icon();
1491
1533
  },
1492
1534
  get children() {
1493
- var _el$67 = _$getNextElement(_tmpl$35);
1494
- _$insert(_el$67, () => iconContent() ?? (() => {
1495
- var _el$82 = _$getNextElement(_tmpl$41);
1496
- _$effect(() => _$className(_el$82, iconClass(icon())));
1497
- return _el$82;
1535
+ var _el$69 = _$getNextElement(_tmpl$35);
1536
+ _$insert(_el$69, () => iconContent() ?? (() => {
1537
+ var _el$84 = _$getNextElement(_tmpl$41);
1538
+ _$effect(() => _$className(_el$84, iconClass(icon())));
1539
+ return _el$84;
1498
1540
  })());
1499
- _$effect(() => _$className(_el$67,
1541
+ _$effect(() => _$className(_el$69,
1500
1542
  // An object row's own glyph sits in a soft chip of the app colour; custom content such as an avatar keeps
1501
1543
  // its own look.
1502
1544
  props.variant === "object" && !iconContent() ? "k2b-app-workspace__sidebar-item-icon k2b-icon-tile" : "k2b-app-workspace__sidebar-item-icon"));
1503
- return _el$67;
1545
+ return _el$69;
1504
1546
  }
1505
1547
  }), (() => {
1506
- var _el$68 = _$getNextElement(_tmpl$39),
1507
- _el$77 = _el$68.firstChild,
1508
- [_el$78, _co$11] = _$getNextMarker(_el$77.nextSibling),
1509
- _el$74 = _el$78.nextSibling,
1510
- _el$75 = _el$74.firstChild,
1511
- _el$79 = _el$74.nextSibling,
1512
- [_el$80, _co$12] = _$getNextMarker(_el$79.nextSibling);
1513
- _$insert(_el$68, _$createComponent(Show, {
1548
+ var _el$70 = _$getNextElement(_tmpl$39),
1549
+ _el$79 = _el$70.firstChild,
1550
+ [_el$80, _co$11] = _$getNextMarker(_el$79.nextSibling),
1551
+ _el$76 = _el$80.nextSibling,
1552
+ _el$77 = _el$76.firstChild,
1553
+ _el$81 = _el$76.nextSibling,
1554
+ [_el$82, _co$12] = _$getNextMarker(_el$81.nextSibling);
1555
+ _$insert(_el$70, _$createComponent(Show, {
1514
1556
  get when() {
1515
1557
  return props.context || props.contextMeta;
1516
1558
  },
1517
1559
  get children() {
1518
- var _el$69 = _$getNextElement(_tmpl$37),
1519
- _el$70 = _el$69.firstChild,
1520
- _el$72 = _el$70.nextSibling,
1521
- [_el$73, _co$10] = _$getNextMarker(_el$72.nextSibling);
1522
- _$insert(_el$70, () => props.context);
1523
- _$insert(_el$69, _$createComponent(Show, {
1560
+ var _el$71 = _$getNextElement(_tmpl$37),
1561
+ _el$72 = _el$71.firstChild,
1562
+ _el$74 = _el$72.nextSibling,
1563
+ [_el$75, _co$10] = _$getNextMarker(_el$74.nextSibling);
1564
+ _$insert(_el$72, () => props.context);
1565
+ _$insert(_el$71, _$createComponent(Show, {
1524
1566
  get when() {
1525
1567
  return props.contextMeta;
1526
1568
  },
1527
1569
  get children() {
1528
- var _el$71 = _$getNextElement(_tmpl$36);
1529
- _$insert(_el$71, () => props.contextMeta);
1530
- return _el$71;
1570
+ var _el$73 = _$getNextElement(_tmpl$36);
1571
+ _$insert(_el$73, () => props.contextMeta);
1572
+ return _el$73;
1531
1573
  }
1532
- }), _el$73, _co$10);
1533
- return _el$69;
1574
+ }), _el$75, _co$10);
1575
+ return _el$71;
1534
1576
  }
1535
- }), _el$78, _co$11);
1536
- _$insert(_el$75, () => label());
1537
- _$insert(_el$68, _$createComponent(Show, {
1577
+ }), _el$80, _co$11);
1578
+ _$insert(_el$77, () => label());
1579
+ _$insert(_el$70, _$createComponent(Show, {
1538
1580
  get when() {
1539
1581
  return props.description;
1540
1582
  },
1541
1583
  get children() {
1542
- var _el$76 = _$getNextElement(_tmpl$38);
1543
- _$insert(_el$76, () => props.description);
1544
- return _el$76;
1584
+ var _el$78 = _$getNextElement(_tmpl$38);
1585
+ _$insert(_el$78, () => props.description);
1586
+ return _el$78;
1545
1587
  }
1546
- }), _el$80, _co$12);
1588
+ }), _el$82, _co$12);
1547
1589
  _$effect(_p$ => {
1548
- var _v$59 = oneLine() ? "1" : undefined,
1549
- _v$60 = !oneLine() && typeof label() === "string" ? label() : undefined;
1550
- _v$59 !== _p$.e && _$setAttribute(_el$74, "data-lines", _p$.e = _v$59);
1551
- _v$60 !== _p$.t && _$setAttribute(_el$74, "data-label", _p$.t = _v$60);
1590
+ var _v$60 = oneLine() ? "1" : undefined,
1591
+ _v$61 = !oneLine() && typeof label() === "string" ? label() : undefined;
1592
+ _v$60 !== _p$.e && _$setAttribute(_el$76, "data-lines", _p$.e = _v$60);
1593
+ _v$61 !== _p$.t && _$setAttribute(_el$76, "data-label", _p$.t = _v$61);
1552
1594
  return _p$;
1553
1595
  }, {
1554
1596
  e: undefined,
1555
1597
  t: undefined
1556
1598
  });
1557
- return _el$68;
1599
+ return _el$70;
1558
1600
  })(), _$createComponent(Show, {
1559
1601
  get when() {
1560
1602
  return hasMeta();
1561
1603
  },
1562
1604
  get children() {
1563
- var _el$81 = _$getNextElement(_tmpl$40);
1564
- _$insert(_el$81, meta);
1605
+ var _el$83 = _$getNextElement(_tmpl$40);
1606
+ _$insert(_el$83, meta);
1565
1607
  _$effect(_p$ => {
1566
- var _v$61 = props.preview?.trigger === "row" ? metaId : undefined,
1567
- _v$62 = metaVisibility() === "hover" ? "hover" : undefined;
1568
- _v$61 !== _p$.e && _$setAttribute(_el$81, "id", _p$.e = _v$61);
1569
- _v$62 !== _p$.t && _$setAttribute(_el$81, "data-visibility", _p$.t = _v$62);
1608
+ var _v$62 = props.preview?.trigger === "row" ? metaId : undefined,
1609
+ _v$63 = metaVisibility() === "hover" ? "hover" : undefined;
1610
+ _v$62 !== _p$.e && _$setAttribute(_el$83, "id", _p$.e = _v$62);
1611
+ _v$63 !== _p$.t && _$setAttribute(_el$83, "data-visibility", _p$.t = _v$63);
1570
1612
  return _p$;
1571
1613
  }, {
1572
1614
  e: undefined,
1573
1615
  t: undefined
1574
1616
  });
1575
- return _el$81;
1617
+ return _el$83;
1576
1618
  }
1577
1619
  })];
1578
1620
  const singleAction = () => {
@@ -1588,9 +1630,9 @@ function AppWorkspaceSidebarItem(props) {
1588
1630
  props.onActionClick?.(event);
1589
1631
  };
1590
1632
  const content = () => actionSlot()?.children ?? (() => {
1591
- var _el$83 = _$getNextElement(_tmpl$41);
1592
- _$effect(() => _$className(_el$83, iconClass(actionSlot()?.icon ?? props.actionIcon, "ti-dots")));
1593
- return _el$83;
1633
+ var _el$85 = _$getNextElement(_tmpl$41);
1634
+ _$effect(() => _$className(_el$85, iconClass(actionSlot()?.icon ?? props.actionIcon, "ti-dots")));
1635
+ return _el$85;
1594
1636
  })();
1595
1637
  return _$createComponent(Show, {
1596
1638
  get when() {
@@ -1603,16 +1645,16 @@ function AppWorkspaceSidebarItem(props) {
1603
1645
  },
1604
1646
  get fallback() {
1605
1647
  return (() => {
1606
- var _el$85 = _$getNextElement(_tmpl$43);
1607
- _el$85.$$click = select;
1608
- _$insert(_el$85, content);
1648
+ var _el$87 = _$getNextElement(_tmpl$43);
1649
+ _el$87.$$click = select;
1650
+ _$insert(_el$87, content);
1609
1651
  _$effect(_p$ => {
1610
- var _v$66 = actionSlot()?.disabled,
1611
- _v$67 = actionSlot()?.visibility === "hover" ? "hover" : undefined,
1612
- _v$68 = label();
1613
- _v$66 !== _p$.e && _$setProperty(_el$85, "disabled", _p$.e = _v$66);
1614
- _v$67 !== _p$.t && _$setAttribute(_el$85, "data-visibility", _p$.t = _v$67);
1615
- _v$68 !== _p$.a && _$setAttribute(_el$85, "aria-label", _p$.a = _v$68);
1652
+ var _v$67 = actionSlot()?.disabled,
1653
+ _v$68 = actionSlot()?.visibility === "hover" ? "hover" : undefined,
1654
+ _v$69 = label();
1655
+ _v$67 !== _p$.e && _$setProperty(_el$87, "disabled", _p$.e = _v$67);
1656
+ _v$68 !== _p$.t && _$setAttribute(_el$87, "data-visibility", _p$.t = _v$68);
1657
+ _v$69 !== _p$.a && _$setAttribute(_el$87, "aria-label", _p$.a = _v$69);
1616
1658
  return _p$;
1617
1659
  }, {
1618
1660
  e: undefined,
@@ -1620,20 +1662,20 @@ function AppWorkspaceSidebarItem(props) {
1620
1662
  a: undefined
1621
1663
  });
1622
1664
  _$runHydrationEvents();
1623
- return _el$85;
1665
+ return _el$87;
1624
1666
  })();
1625
1667
  },
1626
1668
  get children() {
1627
- var _el$84 = _$getNextElement(_tmpl$42);
1628
- _el$84.$$click = select;
1629
- _$insert(_el$84, content);
1669
+ var _el$86 = _$getNextElement(_tmpl$42);
1670
+ _el$86.$$click = select;
1671
+ _$insert(_el$86, content);
1630
1672
  _$effect(_p$ => {
1631
- var _v$63 = actionSlot()?.href,
1632
- _v$64 = actionSlot()?.visibility === "hover" ? "hover" : undefined,
1633
- _v$65 = label();
1634
- _v$63 !== _p$.e && _$setAttribute(_el$84, "href", _p$.e = _v$63);
1635
- _v$64 !== _p$.t && _$setAttribute(_el$84, "data-visibility", _p$.t = _v$64);
1636
- _v$65 !== _p$.a && _$setAttribute(_el$84, "aria-label", _p$.a = _v$65);
1673
+ var _v$64 = actionSlot()?.href,
1674
+ _v$65 = actionSlot()?.visibility === "hover" ? "hover" : undefined,
1675
+ _v$66 = label();
1676
+ _v$64 !== _p$.e && _$setAttribute(_el$86, "href", _p$.e = _v$64);
1677
+ _v$65 !== _p$.t && _$setAttribute(_el$86, "data-visibility", _p$.t = _v$65);
1678
+ _v$66 !== _p$.a && _$setAttribute(_el$86, "aria-label", _p$.a = _v$66);
1637
1679
  return _p$;
1638
1680
  }, {
1639
1681
  e: undefined,
@@ -1641,7 +1683,7 @@ function AppWorkspaceSidebarItem(props) {
1641
1683
  a: undefined
1642
1684
  });
1643
1685
  _$runHydrationEvents();
1644
- return _el$84;
1686
+ return _el$86;
1645
1687
  }
1646
1688
  });
1647
1689
  }
@@ -1942,16 +1984,16 @@ const AppWorkspaceNavTree = props => {
1942
1984
  return rowIcon();
1943
1985
  },
1944
1986
  get children() {
1945
- var _el$86 = _$getNextElement(_tmpl$44),
1946
- _el$87 = _el$86.firstChild;
1947
- _$spread(_el$86, _$mergeProps({
1987
+ var _el$88 = _$getNextElement(_tmpl$44),
1988
+ _el$89 = _el$88.firstChild;
1989
+ _$spread(_el$88, _$mergeProps({
1948
1990
  get ["data-k2b-nav-tree-toggle"]() {
1949
1991
  return usesIconDisclosure() ? "" : undefined;
1950
1992
  }
1951
1993
  }, () => iconAccessibility(item.iconLabel)), false, true);
1952
- _$effect(() => _$className(_el$87, iconClass(rowIcon())));
1994
+ _$effect(() => _$className(_el$89, iconClass(rowIcon())));
1953
1995
  _$runHydrationEvents();
1954
- return _el$86;
1996
+ return _el$88;
1955
1997
  }
1956
1998
  }), _$createComponent(Show, {
1957
1999
  get when() {
@@ -1959,51 +2001,51 @@ const AppWorkspaceNavTree = props => {
1959
2001
  },
1960
2002
  get fallback() {
1961
2003
  return (() => {
1962
- var _el$95 = _$getNextElement(_tmpl$48),
1963
- _el$96 = _el$95.firstChild;
1964
- _$insert(_el$96, () => item.label);
1965
- _$effect(() => _$setAttribute(_el$95, "data-label", typeof item.label === "string" ? item.label : undefined));
1966
- return _el$95;
2004
+ var _el$97 = _$getNextElement(_tmpl$48),
2005
+ _el$98 = _el$97.firstChild;
2006
+ _$insert(_el$98, () => item.label);
2007
+ _$effect(() => _$setAttribute(_el$97, "data-label", typeof item.label === "string" ? item.label : undefined));
2008
+ return _el$97;
1967
2009
  })();
1968
2010
  },
1969
2011
  get children() {
1970
- var _el$88 = _$getNextElement(_tmpl$45),
1971
- _el$89 = _el$88.firstChild,
1972
- _el$90 = _el$89.firstChild,
1973
- _el$91 = _el$89.nextSibling;
1974
- _$insert(_el$90, () => item.label);
1975
- _$insert(_el$91, () => item.description);
1976
- _$effect(() => _$setAttribute(_el$89, "data-label", typeof item.label === "string" ? item.label : undefined));
1977
- return _el$88;
2012
+ var _el$90 = _$getNextElement(_tmpl$45),
2013
+ _el$91 = _el$90.firstChild,
2014
+ _el$92 = _el$91.firstChild,
2015
+ _el$93 = _el$91.nextSibling;
2016
+ _$insert(_el$92, () => item.label);
2017
+ _$insert(_el$93, () => item.description);
2018
+ _$effect(() => _$setAttribute(_el$91, "data-label", typeof item.label === "string" ? item.label : undefined));
2019
+ return _el$90;
1978
2020
  }
1979
2021
  }), _$createComponent(Show, {
1980
2022
  get when() {
1981
2023
  return item.meta !== undefined;
1982
2024
  },
1983
2025
  get children() {
1984
- var _el$92 = _$getNextElement(_tmpl$46);
1985
- _$insert(_el$92, () => item.meta);
2026
+ var _el$94 = _$getNextElement(_tmpl$46);
2027
+ _$insert(_el$94, () => item.meta);
1986
2028
  _$effect(_p$ => {
1987
- var _v$69 = `k2b-app-workspace__sidebar-item-meta ${hasChildren() ? "" : "k2b-app-workspace__nav-tree-leaf-meta"}`,
1988
- _v$70 = item.metaVisibility === "hover" ? "hover" : undefined;
1989
- _v$69 !== _p$.e && _$className(_el$92, _p$.e = _v$69);
1990
- _v$70 !== _p$.t && _$setAttribute(_el$92, "data-visibility", _p$.t = _v$70);
2029
+ var _v$70 = `k2b-app-workspace__sidebar-item-meta ${hasChildren() ? "" : "k2b-app-workspace__nav-tree-leaf-meta"}`,
2030
+ _v$71 = item.metaVisibility === "hover" ? "hover" : undefined;
2031
+ _v$70 !== _p$.e && _$className(_el$94, _p$.e = _v$70);
2032
+ _v$71 !== _p$.t && _$setAttribute(_el$94, "data-visibility", _p$.t = _v$71);
1991
2033
  return _p$;
1992
2034
  }, {
1993
2035
  e: undefined,
1994
2036
  t: undefined
1995
2037
  });
1996
- return _el$92;
2038
+ return _el$94;
1997
2039
  }
1998
2040
  }), _$createComponent(Show, {
1999
2041
  get when() {
2000
2042
  return _$memo(() => !!hasChildren())() && !usesIconDisclosure();
2001
2043
  },
2002
2044
  get children() {
2003
- var _el$93 = _$getNextElement(_tmpl$47),
2004
- _el$94 = _el$93.firstChild;
2005
- _$effect(() => _$className(_el$94, `ti ${isExpanded(item.id) ? "ti-chevron-down" : "ti-chevron-right"}`));
2006
- return _el$93;
2045
+ var _el$95 = _$getNextElement(_tmpl$47),
2046
+ _el$96 = _el$95.firstChild;
2047
+ _$effect(() => _$className(_el$96, `ti ${isExpanded(item.id) ? "ti-chevron-down" : "ti-chevron-right"}`));
2048
+ return _el$95;
2007
2049
  }
2008
2050
  })];
2009
2051
  const row = () => _$createComponent(AppWorkspaceSidebarRow, {
@@ -2111,56 +2153,56 @@ const AppWorkspaceNavTree = props => {
2111
2153
  requestMove(target.move, false);
2112
2154
  };
2113
2155
  return (() => {
2114
- var _el$97 = _$getNextElement(_tmpl$50),
2115
- _el$99 = _el$97.firstChild,
2116
- [_el$100, _co$13] = _$getNextMarker(_el$99.nextSibling),
2117
- _el$101 = _el$100.nextSibling,
2118
- [_el$102, _co$14] = _$getNextMarker(_el$101.nextSibling);
2119
- _el$97.addEventListener("drop", onDrop);
2120
- _$addEventListener(_el$97, "dragleave", item.onDragLeave);
2121
- _el$97.addEventListener("dragover", onDragOver);
2122
- _$addEventListener(_el$97, "dragenter", item.onDragEnter);
2123
- _el$97.addEventListener("dragstart", onDragStart);
2124
- _el$97.$$keydown = onKeyDown;
2125
- _el$97.addEventListener("focus", () => setFocusedId(item.id));
2156
+ var _el$99 = _$getNextElement(_tmpl$50),
2157
+ _el$101 = _el$99.firstChild,
2158
+ [_el$102, _co$13] = _$getNextMarker(_el$101.nextSibling),
2159
+ _el$103 = _el$102.nextSibling,
2160
+ [_el$104, _co$14] = _$getNextMarker(_el$103.nextSibling);
2161
+ _el$99.addEventListener("drop", onDrop);
2162
+ _$addEventListener(_el$99, "dragleave", item.onDragLeave);
2163
+ _el$99.addEventListener("dragover", onDragOver);
2164
+ _$addEventListener(_el$99, "dragenter", item.onDragEnter);
2165
+ _el$99.addEventListener("dragstart", onDragStart);
2166
+ _el$99.$$keydown = onKeyDown;
2167
+ _el$99.addEventListener("focus", () => setFocusedId(item.id));
2126
2168
  var _ref$6 = treeItem;
2127
- typeof _ref$6 === "function" ? _$use(_ref$6, _el$97) : treeItem = _el$97;
2128
- _$setAttribute(_el$97, "aria-level", depth + 1);
2129
- _$setAttribute(_el$97, "data-k2b-nav-tree-parent-id", parentId);
2130
- _$insert(_el$97, row, _el$100, _co$13);
2131
- _$insert(_el$97, _$createComponent(Show, {
2169
+ typeof _ref$6 === "function" ? _$use(_ref$6, _el$99) : treeItem = _el$99;
2170
+ _$setAttribute(_el$99, "aria-level", depth + 1);
2171
+ _$setAttribute(_el$99, "data-k2b-nav-tree-parent-id", parentId);
2172
+ _$insert(_el$99, row, _el$102, _co$13);
2173
+ _$insert(_el$99, _$createComponent(Show, {
2132
2174
  get when() {
2133
2175
  return _$memo(() => !!hasChildren())() && isExpanded(item.id);
2134
2176
  },
2135
2177
  get children() {
2136
- var _el$98 = _$getNextElement(_tmpl$49);
2137
- _$insert(_el$98, () => renderItems(nested, depth + 1, item.id));
2138
- return _el$98;
2178
+ var _el$100 = _$getNextElement(_tmpl$49);
2179
+ _$insert(_el$100, () => renderItems(nested, depth + 1, item.id));
2180
+ return _el$100;
2139
2181
  }
2140
- }), _el$102, _co$14);
2182
+ }), _el$104, _co$14);
2141
2183
  _$effect(_p$ => {
2142
- var _v$71 = siblings().length,
2143
- _v$72 = place() + 1,
2144
- _v$73 = selected(),
2145
- _v$74 = hasChildren() ? isExpanded(item.id) : undefined,
2146
- _v$75 = item.disabled ? "true" : undefined,
2147
- _v$76 = item.disabled ? -1 : tabStopId() === item.id ? 0 : -1,
2148
- _v$77 = movable() ? true : undefined,
2149
- _v$78 = item.id,
2150
- _v$79 = dragged()?.id === item.id ? "" : undefined,
2151
- _v$80 = dropTarget()?.id === item.id ? dropTarget().side : undefined,
2152
- _v$81 = String(props.indented === false ? 0 : depth);
2153
- _v$71 !== _p$.e && _$setAttribute(_el$97, "aria-setsize", _p$.e = _v$71);
2154
- _v$72 !== _p$.t && _$setAttribute(_el$97, "aria-posinset", _p$.t = _v$72);
2155
- _v$73 !== _p$.a && _$setAttribute(_el$97, "aria-selected", _p$.a = _v$73);
2156
- _v$74 !== _p$.o && _$setAttribute(_el$97, "aria-expanded", _p$.o = _v$74);
2157
- _v$75 !== _p$.i && _$setAttribute(_el$97, "aria-disabled", _p$.i = _v$75);
2158
- _v$76 !== _p$.n && _$setAttribute(_el$97, "tabindex", _p$.n = _v$76);
2159
- _v$77 !== _p$.s && _$setAttribute(_el$97, "draggable", _p$.s = _v$77);
2160
- _v$78 !== _p$.h && _$setAttribute(_el$97, "data-k2b-nav-tree-id", _p$.h = _v$78);
2161
- _v$79 !== _p$.r && _$setAttribute(_el$97, "data-k2b-nav-tree-dragging", _p$.r = _v$79);
2162
- _v$80 !== _p$.d && _$setAttribute(_el$97, "data-k2b-nav-tree-drop", _p$.d = _v$80);
2163
- _v$81 !== _p$.l && _$setStyleProperty(_el$97, "--k2b-nav-tree-depth", _p$.l = _v$81);
2184
+ var _v$72 = siblings().length,
2185
+ _v$73 = place() + 1,
2186
+ _v$74 = selected(),
2187
+ _v$75 = hasChildren() ? isExpanded(item.id) : undefined,
2188
+ _v$76 = item.disabled ? "true" : undefined,
2189
+ _v$77 = item.disabled ? -1 : tabStopId() === item.id ? 0 : -1,
2190
+ _v$78 = movable() ? true : undefined,
2191
+ _v$79 = item.id,
2192
+ _v$80 = dragged()?.id === item.id ? "" : undefined,
2193
+ _v$81 = dropTarget()?.id === item.id ? dropTarget().side : undefined,
2194
+ _v$82 = String(props.indented === false ? 0 : depth);
2195
+ _v$72 !== _p$.e && _$setAttribute(_el$99, "aria-setsize", _p$.e = _v$72);
2196
+ _v$73 !== _p$.t && _$setAttribute(_el$99, "aria-posinset", _p$.t = _v$73);
2197
+ _v$74 !== _p$.a && _$setAttribute(_el$99, "aria-selected", _p$.a = _v$74);
2198
+ _v$75 !== _p$.o && _$setAttribute(_el$99, "aria-expanded", _p$.o = _v$75);
2199
+ _v$76 !== _p$.i && _$setAttribute(_el$99, "aria-disabled", _p$.i = _v$76);
2200
+ _v$77 !== _p$.n && _$setAttribute(_el$99, "tabindex", _p$.n = _v$77);
2201
+ _v$78 !== _p$.s && _$setAttribute(_el$99, "draggable", _p$.s = _v$78);
2202
+ _v$79 !== _p$.h && _$setAttribute(_el$99, "data-k2b-nav-tree-id", _p$.h = _v$79);
2203
+ _v$80 !== _p$.r && _$setAttribute(_el$99, "data-k2b-nav-tree-dragging", _p$.r = _v$80);
2204
+ _v$81 !== _p$.d && _$setAttribute(_el$99, "data-k2b-nav-tree-drop", _p$.d = _v$81);
2205
+ _v$82 !== _p$.l && _$setStyleProperty(_el$99, "--k2b-nav-tree-depth", _p$.l = _v$82);
2164
2206
  return _p$;
2165
2207
  }, {
2166
2208
  e: undefined,
@@ -2176,7 +2218,7 @@ const AppWorkspaceNavTree = props => {
2176
2218
  l: undefined
2177
2219
  });
2178
2220
  _$runHydrationEvents();
2179
- return _el$97;
2221
+ return _el$99;
2180
2222
  })();
2181
2223
  }
2182
2224
  });
@@ -2201,62 +2243,62 @@ const AppWorkspaceNavTree = props => {
2201
2243
  });
2202
2244
  });
2203
2245
  return (() => {
2204
- var _el$103 = _$getNextElement(_tmpl$51);
2205
- _el$103.addEventListener("dragend", endDrag);
2206
- _el$103.addEventListener("dragleave", event => {
2246
+ var _el$105 = _$getNextElement(_tmpl$51);
2247
+ _el$105.addEventListener("dragend", endDrag);
2248
+ _el$105.addEventListener("dragleave", event => {
2207
2249
  if (!root?.contains(event.relatedTarget)) setDropTarget(null);
2208
2250
  });
2209
- _el$103.addEventListener("dragover", event => {
2251
+ _el$105.addEventListener("dragover", event => {
2210
2252
  // Runs after the rows: a position no row claimed shows no gap.
2211
2253
  if (claimedDragOver !== event) setDropTarget(null);
2212
2254
  });
2213
2255
  var _ref$7 = root;
2214
- typeof _ref$7 === "function" ? _$use(_ref$7, _el$103) : root = _el$103;
2215
- _$insert(_el$103, () => renderItems(roots, 0));
2256
+ typeof _ref$7 === "function" ? _$use(_ref$7, _el$105) : root = _el$105;
2257
+ _$insert(_el$105, () => renderItems(roots, 0));
2216
2258
  _$effect(_p$ => {
2217
- var _v$82 = `k2b-app-workspace__nav-tree ${props.class ?? ""}`,
2218
- _v$83 = props.ariaLabel;
2219
- _v$82 !== _p$.e && _$className(_el$103, _p$.e = _v$82);
2220
- _v$83 !== _p$.t && _$setAttribute(_el$103, "aria-label", _p$.t = _v$83);
2259
+ var _v$83 = `k2b-app-workspace__nav-tree ${props.class ?? ""}`,
2260
+ _v$84 = props.ariaLabel;
2261
+ _v$83 !== _p$.e && _$className(_el$105, _p$.e = _v$83);
2262
+ _v$84 !== _p$.t && _$setAttribute(_el$105, "aria-label", _p$.t = _v$84);
2221
2263
  return _p$;
2222
2264
  }, {
2223
2265
  e: undefined,
2224
2266
  t: undefined
2225
2267
  });
2226
- return _el$103;
2268
+ return _el$105;
2227
2269
  })();
2228
2270
  };
2229
2271
  AppWorkspaceNavTree.Item = AppWorkspaceNavTreeItem;
2230
2272
  const AppWorkspaceSidebarIconGrid = props => (() => {
2231
- var _el$104 = _$getNextElement(_tmpl$52),
2232
- _el$106 = _el$104.firstChild,
2233
- [_el$107, _co$15] = _$getNextMarker(_el$106.nextSibling),
2234
- _el$105 = _el$107.nextSibling;
2235
- _$spread(_el$104, _$mergeProps({
2273
+ var _el$106 = _$getNextElement(_tmpl$52),
2274
+ _el$108 = _el$106.firstChild,
2275
+ [_el$109, _co$15] = _$getNextMarker(_el$108.nextSibling),
2276
+ _el$107 = _el$109.nextSibling;
2277
+ _$spread(_el$106, _$mergeProps({
2236
2278
  get ["class"]() {
2237
2279
  return `k2b-app-workspace__sidebar-icon-grid-wrap ${props.class ?? ""}`;
2238
2280
  }
2239
2281
  }, () => modeAttrs(props.sidebarMode)), false, true);
2240
- _$insert(_el$104, _$createComponent(Show, {
2282
+ _$insert(_el$106, _$createComponent(Show, {
2241
2283
  get when() {
2242
2284
  return props.title;
2243
2285
  },
2244
2286
  children: title => (() => {
2245
- var _el$108 = _$getNextElement(_tmpl$23);
2246
- _$insert(_el$108, title);
2247
- return _el$108;
2287
+ var _el$110 = _$getNextElement(_tmpl$23);
2288
+ _$insert(_el$110, title);
2289
+ return _el$110;
2248
2290
  })()
2249
- }), _el$107, _co$15);
2250
- _$insert(_el$105, () => props.children);
2251
- _$effect(() => _$setAttribute(_el$105, "data-columns", props.columns ?? 2));
2291
+ }), _el$109, _co$15);
2292
+ _$insert(_el$107, () => props.children);
2293
+ _$effect(() => _$setAttribute(_el$107, "data-columns", props.columns ?? 2));
2252
2294
  _$runHydrationEvents();
2253
- return _el$104;
2295
+ return _el$106;
2254
2296
  })();
2255
2297
  const AppWorkspaceSidebarIconAction = props => {
2256
2298
  const content = (() => {
2257
- var _el$109 = _$getNextElement(_tmpl$53);
2258
- _$effect(() => _$className(_el$109, iconClass(props.icon)));
2259
- return _el$109;
2299
+ var _el$111 = _$getNextElement(_tmpl$53);
2300
+ _$effect(() => _$className(_el$111, iconClass(props.icon)));
2301
+ return _el$111;
2260
2302
  })();
2261
2303
  const attrs = () => ({
2262
2304
  class: `k2b-app-workspace__sidebar-icon-action ${props.active ? "is-active" : ""}`,
@@ -2269,8 +2311,8 @@ const AppWorkspaceSidebarIconAction = props => {
2269
2311
  ...modeAttrs(props.sidebarMode)
2270
2312
  });
2271
2313
  if (!props.href || props.disabled) return (() => {
2272
- var _el$110 = _$getNextElement(_tmpl$32);
2273
- _$spread(_el$110, _$mergeProps(attrs, {
2314
+ var _el$112 = _$getNextElement(_tmpl$32);
2315
+ _$spread(_el$112, _$mergeProps(attrs, {
2274
2316
  get disabled() {
2275
2317
  return props.disabled;
2276
2318
  },
@@ -2278,13 +2320,13 @@ const AppWorkspaceSidebarIconAction = props => {
2278
2320
  return props.onClick;
2279
2321
  }
2280
2322
  }), false, true);
2281
- _$insert(_el$110, content);
2323
+ _$insert(_el$112, content);
2282
2324
  _$runHydrationEvents();
2283
- return _el$110;
2325
+ return _el$112;
2284
2326
  })();
2285
2327
  if (props.navigation !== "enhanced" || !props.onNavigate) return (() => {
2286
- var _el$111 = _$getNextElement(_tmpl$33);
2287
- _$spread(_el$111, _$mergeProps({
2328
+ var _el$113 = _$getNextElement(_tmpl$33);
2329
+ _$spread(_el$113, _$mergeProps({
2288
2330
  get href() {
2289
2331
  return props.href;
2290
2332
  }
@@ -2293,9 +2335,9 @@ const AppWorkspaceSidebarIconAction = props => {
2293
2335
  return props.onClick;
2294
2336
  }
2295
2337
  }), false, true);
2296
- _$insert(_el$111, content);
2338
+ _$insert(_el$113, content);
2297
2339
  _$runHydrationEvents();
2298
- return _el$111;
2340
+ return _el$113;
2299
2341
  })();
2300
2342
  return _$createComponent(Link, _$mergeProps({
2301
2343
  get href() {
@@ -2323,22 +2365,51 @@ const AppWorkspaceSidebarIconAction = props => {
2323
2365
  * host's page title with the way up (see `PageTitle`); the page's own
2324
2366
  * `PageTitle` takes its place. The visible title is no heading, because many
2325
2367
  * pages render their own `h1`. From 64 rem a sidebar that marks the current
2326
- * page names it already: the row hides, and only on a page without its own
2327
- * `h1` its heading stays for assistive technology. It is one fixed height
2328
- * and draws no line; CSS decides when it shows, so the server-rendered page
2329
- * already has its final geometry.
2368
+ * page names it already: the title and the way up hide, and only on a page
2369
+ * without its own `h1` its heading stays for assistive technology. With an
2370
+ * `AppWorkspace.Head` slot the row is always there and also carries the
2371
+ * views, the filters, the result count, and the actions; only its title
2372
+ * follows the rules above. It draws no line; CSS decides what shows and when
2373
+ * the filters wrap, so the server-rendered page already has its final
2374
+ * geometry.
2330
2375
  */
2331
2376
  function AppWorkspaceHead(props) {
2332
2377
  const messages = useWorkspaceMessages();
2378
+ const filters = useFilterMessages();
2379
+ // JSX prop getters construct their elements on every read. Share each
2380
+ // resolved slot between its presence check and its rendered content.
2381
+ const resolvedViews = children(() => props.head?.views);
2382
+ const resolvedFilters = children(() => props.head?.filters);
2383
+ const resolvedActions = children(() => props.head?.actions);
2384
+ const resolvedCount = children(() => props.head?.count);
2333
2385
  // A nested workspace is part of a page that already shows its title.
2334
2386
  const trail = props.nested ? () => undefined : usePageTrail();
2387
+ const resetContent = () => filters().reset;
2388
+ const primaryContent = () => [(() => {
2389
+ var _el$114 = _$getNextElement(_tmpl$53);
2390
+ _$effect(() => _$className(_el$114, props.head?.primary?.icon));
2391
+ return _el$114;
2392
+ })(), (() => {
2393
+ var _el$115 = _$getNextElement(_tmpl$54);
2394
+ _$insert(_el$115, () => props.head?.primary?.label);
2395
+ return _el$115;
2396
+ })()];
2335
2397
  return (() => {
2336
- var _el$112 = _$getNextElement(_tmpl$55),
2337
- _el$114 = _el$112.firstChild,
2338
- [_el$115, _co$16] = _$getNextMarker(_el$114.nextSibling),
2339
- _el$116 = _el$115.nextSibling,
2340
- [_el$117, _co$17] = _$getNextMarker(_el$116.nextSibling);
2341
- _$insert(_el$112, _$createComponent(IconButton, {
2398
+ var _el$116 = _$getNextElement(_tmpl$60),
2399
+ _el$117 = _el$116.firstChild,
2400
+ _el$127 = _el$117.firstChild,
2401
+ [_el$128, _co$18] = _$getNextMarker(_el$127.nextSibling),
2402
+ _el$129 = _el$128.nextSibling,
2403
+ [_el$130, _co$19] = _$getNextMarker(_el$129.nextSibling),
2404
+ _el$131 = _el$130.nextSibling,
2405
+ [_el$132, _co$20] = _$getNextMarker(_el$131.nextSibling),
2406
+ _el$133 = _el$132.nextSibling,
2407
+ [_el$134, _co$21] = _$getNextMarker(_el$133.nextSibling),
2408
+ _el$135 = _el$134.nextSibling,
2409
+ [_el$136, _co$22] = _$getNextMarker(_el$135.nextSibling),
2410
+ _el$142 = _el$117.nextSibling,
2411
+ [_el$143, _co$25] = _$getNextMarker(_el$142.nextSibling);
2412
+ _$insert(_el$117, _$createComponent(IconButton, {
2342
2413
  "class": "k2b-app-workspace__head-toggle",
2343
2414
  get label() {
2344
2415
  return messages().showNavigation;
@@ -2349,10 +2420,10 @@ function AppWorkspaceHead(props) {
2349
2420
  "aria-expanded": "false",
2350
2421
  "data-app-workspace-sidebar-toggle": "",
2351
2422
  get children() {
2352
- return _$getNextElement(_tmpl$54);
2423
+ return _$getNextElement(_tmpl$55);
2353
2424
  }
2354
- }), _el$115, _co$16);
2355
- _$insert(_el$112, _$createComponent(Show, {
2425
+ }), _el$128, _co$18);
2426
+ _$insert(_el$117, _$createComponent(Show, {
2356
2427
  get when() {
2357
2428
  return trail();
2358
2429
  },
@@ -2363,14 +2434,153 @@ function AppWorkspaceHead(props) {
2363
2434
  as: "p",
2364
2435
  fallback: true
2365
2436
  }), (() => {
2366
- var _el$118 = _$getNextElement(_tmpl$56);
2367
- _$setAttribute(_el$118, "data-k2b-server", isServer ? "" : undefined);
2368
- _$insert(_el$118, () => current().title);
2369
- return _el$118;
2437
+ var _el$144 = _$getNextElement(_tmpl$61);
2438
+ _$setAttribute(_el$144, "data-k2b-server", isServer ? "" : undefined);
2439
+ _$insert(_el$144, () => current().title);
2440
+ return _el$144;
2370
2441
  })()]
2371
- }), _el$117, _co$17);
2372
- _$effect(() => _$setAttribute(_el$112, "data-trail", trail()?.ancestors.length ? "up" : trail() ? "title" : undefined));
2373
- return _el$112;
2442
+ }), _el$130, _co$19);
2443
+ _$insert(_el$117, _$createComponent(Show, {
2444
+ get when() {
2445
+ return resolvedViews.toArray().some(Boolean);
2446
+ },
2447
+ get children() {
2448
+ var _el$119 = _$getNextElement(_tmpl$56);
2449
+ _$insert(_el$119, resolvedViews);
2450
+ return _el$119;
2451
+ }
2452
+ }), _el$132, _co$20);
2453
+ _$insert(_el$117, _$createComponent(Show, {
2454
+ get when() {
2455
+ return resolvedFilters.toArray().some(Boolean) || props.head?.filtered;
2456
+ },
2457
+ get children() {
2458
+ var _el$120 = _$getNextElement(_tmpl$57),
2459
+ _el$121 = _el$120.firstChild,
2460
+ [_el$122, _co$16] = _$getNextMarker(_el$121.nextSibling),
2461
+ _el$123 = _el$122.nextSibling,
2462
+ [_el$124, _co$17] = _$getNextMarker(_el$123.nextSibling);
2463
+ _$insert(_el$120, resolvedFilters, _el$122, _co$16);
2464
+ _$insert(_el$120, _$createComponent(Show, {
2465
+ get when() {
2466
+ return props.head?.filtered;
2467
+ },
2468
+ get children() {
2469
+ return _$createComponent(Show, {
2470
+ get when() {
2471
+ return props.head?.resetHref;
2472
+ },
2473
+ get fallback() {
2474
+ return _$createComponent(Button, {
2475
+ variant: "ghost",
2476
+ size: "sm",
2477
+ "class": "k2b-app-workspace__head-reset",
2478
+ onClick: () => props.head?.onReset?.(),
2479
+ get children() {
2480
+ return resetContent();
2481
+ }
2482
+ });
2483
+ },
2484
+ children: href => _$createComponent(ButtonLink, {
2485
+ variant: "ghost",
2486
+ size: "sm",
2487
+ "class": "k2b-app-workspace__head-reset",
2488
+ get href() {
2489
+ return href();
2490
+ },
2491
+ get onClick() {
2492
+ return props.head?.onReset ? event => {
2493
+ if (event.button !== 0 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) return;
2494
+ event.preventDefault();
2495
+ props.head?.onReset?.();
2496
+ } : undefined;
2497
+ },
2498
+ get children() {
2499
+ return resetContent();
2500
+ }
2501
+ })
2502
+ });
2503
+ }
2504
+ }), _el$124, _co$17);
2505
+ _$effect(() => _$setAttribute(_el$120, "aria-label", filters().filters));
2506
+ return _el$120;
2507
+ }
2508
+ }), _el$134, _co$21);
2509
+ _$insert(_el$117, _$createComponent(Show, {
2510
+ get when() {
2511
+ return _$memo(() => !!props.head?.filtered)() && resolvedCount.toArray().some(value => value !== undefined && value !== null && value !== false);
2512
+ },
2513
+ get children() {
2514
+ var _el$125 = _$getNextElement(_tmpl$58),
2515
+ _el$126 = _el$125.firstChild;
2516
+ _$insert(_el$126, resolvedCount);
2517
+ return _el$125;
2518
+ }
2519
+ }), _el$136, _co$22);
2520
+ _$insert(_el$116, _$createComponent(Show, {
2521
+ get when() {
2522
+ return resolvedActions.toArray().some(Boolean) || props.head?.primary;
2523
+ },
2524
+ get children() {
2525
+ var _el$137 = _$getNextElement(_tmpl$59),
2526
+ _el$138 = _el$137.firstChild,
2527
+ [_el$139, _co$23] = _$getNextMarker(_el$138.nextSibling),
2528
+ _el$140 = _el$139.nextSibling,
2529
+ [_el$141, _co$24] = _$getNextMarker(_el$140.nextSibling);
2530
+ _$insert(_el$137, resolvedActions, _el$139, _co$23);
2531
+ _$insert(_el$137, _$createComponent(Show, {
2532
+ get when() {
2533
+ return props.head?.primary;
2534
+ },
2535
+ children: primary => _$createComponent(Show, {
2536
+ get when() {
2537
+ return primary().href;
2538
+ },
2539
+ get fallback() {
2540
+ return _$createComponent(Button, {
2541
+ variant: "primary",
2542
+ size: "sm",
2543
+ "class": "k2b-app-workspace__head-primary",
2544
+ "data-workspace-primary": "",
2545
+ get onClick() {
2546
+ return primary().onClick;
2547
+ },
2548
+ get children() {
2549
+ return primaryContent();
2550
+ }
2551
+ });
2552
+ },
2553
+ children: href => _$createComponent(ButtonLink, {
2554
+ variant: "primary",
2555
+ size: "sm",
2556
+ "class": "k2b-app-workspace__head-primary",
2557
+ "data-workspace-primary": "",
2558
+ get href() {
2559
+ return href();
2560
+ },
2561
+ get onClick() {
2562
+ return primary().onClick;
2563
+ },
2564
+ get children() {
2565
+ return primaryContent();
2566
+ }
2567
+ })
2568
+ })
2569
+ }), _el$141, _co$24);
2570
+ return _el$137;
2571
+ }
2572
+ }), _el$143, _co$25);
2573
+ _$effect(_p$ => {
2574
+ var _v$85 = trail()?.ancestors.length ? "up" : trail() ? "title" : undefined,
2575
+ _v$86 = props.head ? "" : undefined;
2576
+ _v$85 !== _p$.e && _$setAttribute(_el$116, "data-trail", _p$.e = _v$85);
2577
+ _v$86 !== _p$.t && _$setAttribute(_el$116, "data-row", _p$.t = _v$86);
2578
+ return _p$;
2579
+ }, {
2580
+ e: undefined,
2581
+ t: undefined
2582
+ });
2583
+ return _el$116;
2374
2584
  })();
2375
2585
  }
2376
2586
  const AppWorkspace = props => {
@@ -2398,6 +2608,20 @@ const AppWorkspace = props => {
2398
2608
  writeState: state => props.onLayoutChange?.(state)
2399
2609
  }));
2400
2610
  });
2611
+ const contents = () => {
2612
+ const resolved = children(() => props.children);
2613
+ const slots = createMemo(() => flatten(resolved()));
2614
+ // Same props object, same memo value: a sibling change must not rebuild the head's slots.
2615
+ const head = createMemo(() => slots().find(headSlot)?.props);
2616
+ const content = () => slots().filter(value => !headSlot(value));
2617
+ return [_$createComponent(AppWorkspaceHead, {
2618
+ sidebarId: sidebarId,
2619
+ nested: nested,
2620
+ get head() {
2621
+ return head();
2622
+ }
2623
+ }), _$memo(content)];
2624
+ };
2401
2625
  return _$createComponent(ResizeContext.Provider, {
2402
2626
  get value() {
2403
2627
  return props.resizable !== false;
@@ -2406,31 +2630,23 @@ const AppWorkspace = props => {
2406
2630
  return _$createComponent(WorkspaceContext.Provider, {
2407
2631
  value: workspace,
2408
2632
  get children() {
2409
- var _el$119 = _$getNextElement(_tmpl$57),
2410
- _el$120 = _el$119.firstChild,
2411
- [_el$121, _co$18] = _$getNextMarker(_el$120.nextSibling),
2412
- _el$122 = _el$121.nextSibling,
2413
- [_el$123, _co$19] = _$getNextMarker(_el$122.nextSibling);
2633
+ var _el$145 = _$getNextElement(_tmpl$62);
2414
2634
  var _ref$8 = root;
2415
- typeof _ref$8 === "function" ? _$use(_ref$8, _el$119) : root = _el$119;
2416
- _$insert(_el$119, _$createComponent(AppWorkspaceHead, {
2417
- sidebarId: sidebarId,
2418
- nested: nested
2419
- }), _el$121, _co$18);
2420
- _$insert(_el$119, () => props.children, _el$123, _co$19);
2635
+ typeof _ref$8 === "function" ? _$use(_ref$8, _el$145) : root = _el$145;
2636
+ _$insert(_el$145, contents);
2421
2637
  _$effect(_p$ => {
2422
- var _v$84 = `k2b-app-workspace ${props.class ?? ""}`,
2423
- _v$85 = props.mobileSurface,
2424
- _v$86 = props.flat ? "true" : undefined,
2425
- _v$87 = initialLayoutState()?.sidebarCollapsed === undefined ? undefined : String(initialLayoutState()?.sidebarCollapsed),
2426
- _v$88 = props.resizable === false ? "false" : "true",
2427
- _v$89 = appWorkspaceLayoutStyle(initialLayoutState());
2428
- _v$84 !== _p$.e && _$className(_el$119, _p$.e = _v$84);
2429
- _v$85 !== _p$.t && _$setAttribute(_el$119, "data-mobile-surface", _p$.t = _v$85);
2430
- _v$86 !== _p$.a && _$setAttribute(_el$119, "data-flat", _p$.a = _v$86);
2431
- _v$87 !== _p$.o && _$setAttribute(_el$119, "data-sidebar-collapsed", _p$.o = _v$87);
2432
- _v$88 !== _p$.i && _$setAttribute(_el$119, "data-workspace-resizable", _p$.i = _v$88);
2433
- _p$.n = _$style(_el$119, _v$89, _p$.n);
2638
+ var _v$87 = `k2b-app-workspace ${props.class ?? ""}`,
2639
+ _v$88 = props.mobileSurface,
2640
+ _v$89 = props.flat ? "true" : undefined,
2641
+ _v$90 = initialLayoutState()?.sidebarCollapsed === undefined ? undefined : String(initialLayoutState()?.sidebarCollapsed),
2642
+ _v$91 = props.resizable === false ? "false" : "true",
2643
+ _v$92 = appWorkspaceLayoutStyle(initialLayoutState());
2644
+ _v$87 !== _p$.e && _$className(_el$145, _p$.e = _v$87);
2645
+ _v$88 !== _p$.t && _$setAttribute(_el$145, "data-mobile-surface", _p$.t = _v$88);
2646
+ _v$89 !== _p$.a && _$setAttribute(_el$145, "data-flat", _p$.a = _v$89);
2647
+ _v$90 !== _p$.o && _$setAttribute(_el$145, "data-sidebar-collapsed", _p$.o = _v$90);
2648
+ _v$91 !== _p$.i && _$setAttribute(_el$145, "data-workspace-resizable", _p$.i = _v$91);
2649
+ _p$.n = _$style(_el$145, _v$92, _p$.n);
2434
2650
  return _p$;
2435
2651
  }, {
2436
2652
  e: undefined,
@@ -2440,7 +2656,7 @@ const AppWorkspace = props => {
2440
2656
  i: undefined,
2441
2657
  n: undefined
2442
2658
  });
2443
- return _el$119;
2659
+ return _el$145;
2444
2660
  }
2445
2661
  });
2446
2662
  }
@@ -2454,11 +2670,12 @@ AppWorkspace.LayoutStateProvider = props => _$createComponent(LayoutStateContext
2454
2670
  return props.children;
2455
2671
  }
2456
2672
  });
2673
+ AppWorkspace.Head = AppWorkspaceHeadSlot;
2457
2674
  AppWorkspace.Content = props => (() => {
2458
- var _el$124 = _$getNextElement(_tmpl$5);
2459
- _$insert(_el$124, () => props.children);
2460
- _$effect(() => _$className(_el$124, `k2b-app-workspace__content ${props.class ?? ""}`));
2461
- return _el$124;
2675
+ var _el$146 = _$getNextElement(_tmpl$5);
2676
+ _$insert(_el$146, () => props.children);
2677
+ _$effect(() => _$className(_el$146, `k2b-app-workspace__content ${props.class ?? ""}`));
2678
+ return _el$146;
2462
2679
  })();
2463
2680
  AppWorkspace.Main = AppWorkspaceMain;
2464
2681
  AppWorkspace.MainPane = AppWorkspaceMainPane;