@k2b/ui 0.27.0 → 0.29.0

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