@k2b/ui 0.48.0 → 0.50.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 (304) hide show
  1. package/dist/base.css +40 -2
  2. package/dist/browser/actions/ContextMenu.js +3 -0
  3. package/dist/browser/actions/ContextMenu.js.map +1 -1
  4. package/dist/browser/actions/CopyButton.js +26 -18
  5. package/dist/browser/actions/CopyButton.js.map +1 -1
  6. package/dist/browser/charts/core/area.js +190 -0
  7. package/dist/browser/charts/core/area.js.map +1 -0
  8. package/dist/browser/charts/core/calendar.js +186 -0
  9. package/dist/browser/charts/core/calendar.js.map +1 -0
  10. package/dist/browser/charts/core/chart-map-data.js +9 -0
  11. package/dist/browser/charts/core/chart-map-data.js.map +1 -0
  12. package/dist/browser/charts/core/index.js +12 -0
  13. package/dist/browser/charts/core/index.js.map +1 -0
  14. package/dist/browser/charts/core/inspection.js +9 -0
  15. package/dist/browser/charts/core/inspection.js.map +1 -0
  16. package/dist/browser/charts/core/registry.js +28 -0
  17. package/dist/browser/charts/core/registry.js.map +1 -0
  18. package/dist/browser/charts/core/render.js +103 -0
  19. package/dist/browser/charts/core/render.js.map +1 -0
  20. package/dist/browser/charts/core/snapshot.js +65 -0
  21. package/dist/browser/charts/core/snapshot.js.map +1 -0
  22. package/dist/browser/charts/core/svg.js +2542 -0
  23. package/dist/browser/charts/core/svg.js.map +1 -0
  24. package/dist/browser/charts/core/termination.test-fixture.js +162 -0
  25. package/dist/browser/charts/core/termination.test-fixture.js.map +1 -0
  26. package/dist/browser/charts/core/text.js +13 -0
  27. package/dist/browser/charts/core/text.js.map +1 -0
  28. package/dist/browser/charts/core/types.js +8 -0
  29. package/dist/browser/charts/core/types.js.map +1 -0
  30. package/dist/browser/charts.js +4 -2
  31. package/dist/browser/charts.js.map +1 -1
  32. package/dist/browser/content/BalanceSummary.js +106 -0
  33. package/dist/browser/content/BalanceSummary.js.map +1 -0
  34. package/dist/browser/content/Chart.js +134 -115
  35. package/dist/browser/content/Chart.js.map +1 -1
  36. package/dist/browser/content/ChartExplorer.js +366 -122
  37. package/dist/browser/content/ChartExplorer.js.map +1 -1
  38. package/dist/browser/content/ChartSnapshotView.js +16 -9
  39. package/dist/browser/content/ChartSnapshotView.js.map +1 -1
  40. package/dist/browser/content/DataTable.js +676 -293
  41. package/dist/browser/content/DataTable.js.map +1 -1
  42. package/dist/browser/content/DataTableTools.js +119 -0
  43. package/dist/browser/content/DataTableTools.js.map +1 -0
  44. package/dist/browser/content/FlowAmount.js +82 -0
  45. package/dist/browser/content/FlowAmount.js.map +1 -0
  46. package/dist/browser/content/balance-summary-messages.js +26 -0
  47. package/dist/browser/content/balance-summary-messages.js.map +1 -0
  48. package/dist/browser/content/chart-bar.js +6 -6
  49. package/dist/browser/content/chart-bar.js.map +1 -1
  50. package/dist/browser/content/chart-calendar.js +43 -0
  51. package/dist/browser/content/chart-calendar.js.map +1 -0
  52. package/dist/browser/content/chart-inspection-core.js +164 -37
  53. package/dist/browser/content/chart-inspection-core.js.map +1 -1
  54. package/dist/browser/content/chart-inspection.js.map +1 -1
  55. package/dist/browser/content/chart-line-gaps.js +2 -2
  56. package/dist/browser/content/chart-line-gaps.js.map +1 -1
  57. package/dist/browser/content/chart-map-viewport.js.map +1 -1
  58. package/dist/browser/content/chart-message-catalog.js +164 -0
  59. package/dist/browser/content/chart-message-catalog.js.map +1 -0
  60. package/dist/browser/content/chart-messages.js +2 -138
  61. package/dist/browser/content/chart-messages.js.map +1 -1
  62. package/dist/browser/content/chart-snapshot.js +1 -62
  63. package/dist/browser/content/chart-snapshot.js.map +1 -1
  64. package/dist/browser/content/chart-state-timeline.js +1 -1
  65. package/dist/browser/content/chart-state-timeline.js.map +1 -1
  66. package/dist/browser/content/chart-svg.js +2 -1
  67. package/dist/browser/content/chart-svg.js.map +1 -1
  68. package/dist/browser/content/chart-time-axis.js +139 -0
  69. package/dist/browser/content/chart-time-axis.js.map +1 -0
  70. package/dist/browser/content/data-table-columns.js +160 -0
  71. package/dist/browser/content/data-table-columns.js.map +1 -0
  72. package/dist/browser/content/data-table-messages.js +38 -2
  73. package/dist/browser/content/data-table-messages.js.map +1 -1
  74. package/dist/browser/content/flow-amount-messages.js +26 -0
  75. package/dist/browser/content/flow-amount-messages.js.map +1 -0
  76. package/dist/browser/content/index.js +4 -0
  77. package/dist/browser/content/index.js.map +1 -1
  78. package/dist/browser/feedback/prompt-confirm.js +7 -4
  79. package/dist/browser/feedback/prompt-confirm.js.map +1 -1
  80. package/dist/browser/feedback/prompts.js +3 -3
  81. package/dist/browser/feedback/prompts.js.map +1 -1
  82. package/dist/browser/inputs/DatePicker.js +5 -4
  83. package/dist/browser/inputs/DatePicker.js.map +1 -1
  84. package/dist/browser/inputs/NumberInput.js +17 -5
  85. package/dist/browser/inputs/NumberInput.js.map +1 -1
  86. package/dist/browser/inputs/SelectChip.js +50 -17
  87. package/dist/browser/inputs/SelectChip.js.map +1 -1
  88. package/dist/browser/inputs/date-picker.js +13 -0
  89. package/dist/browser/inputs/date-picker.js.map +1 -1
  90. package/dist/browser/intl/Format.js +31 -8
  91. package/dist/browser/intl/Format.js.map +1 -1
  92. package/dist/browser/layout/AppWorkspace.js +580 -522
  93. package/dist/browser/layout/AppWorkspace.js.map +1 -1
  94. package/dist/browser/layout/MobileShell.js +26 -0
  95. package/dist/browser/layout/MobileShell.js.map +1 -1
  96. package/dist/browser/layout/index.js +1 -0
  97. package/dist/browser/layout/index.js.map +1 -1
  98. package/dist/browser/layout/sheet-handle.js +155 -0
  99. package/dist/browser/layout/sheet-handle.js.map +1 -0
  100. package/dist/browser/surfaces/BudgetList.js +281 -0
  101. package/dist/browser/surfaces/BudgetList.js.map +1 -0
  102. package/dist/browser/surfaces/NoticeCard.js +48 -29
  103. package/dist/browser/surfaces/NoticeCard.js.map +1 -1
  104. package/dist/browser/surfaces/ProgressBar.js +134 -21
  105. package/dist/browser/surfaces/ProgressBar.js.map +1 -1
  106. package/dist/browser/surfaces/StatCell.js +320 -144
  107. package/dist/browser/surfaces/StatCell.js.map +1 -1
  108. package/dist/browser/surfaces/StatGrid.js +75 -57
  109. package/dist/browser/surfaces/StatGrid.js.map +1 -1
  110. package/dist/browser/surfaces/budget-messages.js +64 -0
  111. package/dist/browser/surfaces/budget-messages.js.map +1 -0
  112. package/dist/browser/surfaces/delta-badge.js +65 -0
  113. package/dist/browser/surfaces/delta-badge.js.map +1 -0
  114. package/dist/browser/surfaces/index.js +2 -1
  115. package/dist/browser/surfaces/index.js.map +1 -1
  116. package/dist/browser/surfaces/person-color.js +2 -2
  117. package/dist/browser/surfaces/person-color.js.map +1 -1
  118. package/dist/browser/surfaces/stat-cell-messages.js +41 -0
  119. package/dist/browser/surfaces/stat-cell-messages.js.map +1 -0
  120. package/dist/browser/widgets/Dashboard.js +137 -0
  121. package/dist/browser/widgets/Dashboard.js.map +1 -0
  122. package/dist/browser/widgets/index.js +1 -0
  123. package/dist/browser/widgets/index.js.map +1 -1
  124. package/dist/ssr/actions/ContextMenu.js +3 -0
  125. package/dist/ssr/actions/ContextMenu.js.map +1 -1
  126. package/dist/ssr/actions/CopyButton.js +13 -8
  127. package/dist/ssr/actions/CopyButton.js.map +1 -1
  128. package/dist/ssr/charts/core/area.js +190 -0
  129. package/dist/ssr/charts/core/area.js.map +1 -0
  130. package/dist/ssr/charts/core/calendar.js +186 -0
  131. package/dist/ssr/charts/core/calendar.js.map +1 -0
  132. package/dist/ssr/charts/core/chart-map-data.js +9 -0
  133. package/dist/ssr/charts/core/chart-map-data.js.map +1 -0
  134. package/dist/ssr/charts/core/index.js +12 -0
  135. package/dist/ssr/charts/core/index.js.map +1 -0
  136. package/dist/ssr/charts/core/inspection.js +9 -0
  137. package/dist/ssr/charts/core/inspection.js.map +1 -0
  138. package/dist/ssr/charts/core/registry.js +28 -0
  139. package/dist/ssr/charts/core/registry.js.map +1 -0
  140. package/dist/ssr/charts/core/render.js +103 -0
  141. package/dist/ssr/charts/core/render.js.map +1 -0
  142. package/dist/ssr/charts/core/snapshot.js +65 -0
  143. package/dist/ssr/charts/core/snapshot.js.map +1 -0
  144. package/dist/ssr/charts/core/svg.js +2542 -0
  145. package/dist/ssr/charts/core/svg.js.map +1 -0
  146. package/dist/ssr/charts/core/termination.test-fixture.js +162 -0
  147. package/dist/ssr/charts/core/termination.test-fixture.js.map +1 -0
  148. package/dist/ssr/charts/core/text.js +13 -0
  149. package/dist/ssr/charts/core/text.js.map +1 -0
  150. package/dist/ssr/charts/core/types.js +8 -0
  151. package/dist/ssr/charts/core/types.js.map +1 -0
  152. package/dist/ssr/charts.js +4 -2
  153. package/dist/ssr/charts.js.map +1 -1
  154. package/dist/ssr/content/BalanceSummary.js +75 -0
  155. package/dist/ssr/content/BalanceSummary.js.map +1 -0
  156. package/dist/ssr/content/Chart.js +90 -95
  157. package/dist/ssr/content/Chart.js.map +1 -1
  158. package/dist/ssr/content/ChartExplorer.js +190 -46
  159. package/dist/ssr/content/ChartExplorer.js.map +1 -1
  160. package/dist/ssr/content/ChartSnapshotView.js +5 -1
  161. package/dist/ssr/content/ChartSnapshotView.js.map +1 -1
  162. package/dist/ssr/content/DataTable.js +287 -78
  163. package/dist/ssr/content/DataTable.js.map +1 -1
  164. package/dist/ssr/content/DataTableTools.js +106 -0
  165. package/dist/ssr/content/DataTableTools.js.map +1 -0
  166. package/dist/ssr/content/FlowAmount.js +58 -0
  167. package/dist/ssr/content/FlowAmount.js.map +1 -0
  168. package/dist/ssr/content/balance-summary-messages.js +26 -0
  169. package/dist/ssr/content/balance-summary-messages.js.map +1 -0
  170. package/dist/ssr/content/chart-bar.js +6 -6
  171. package/dist/ssr/content/chart-bar.js.map +1 -1
  172. package/dist/ssr/content/chart-calendar.js +43 -0
  173. package/dist/ssr/content/chart-calendar.js.map +1 -0
  174. package/dist/ssr/content/chart-inspection-core.js +164 -37
  175. package/dist/ssr/content/chart-inspection-core.js.map +1 -1
  176. package/dist/ssr/content/chart-inspection.js.map +1 -1
  177. package/dist/ssr/content/chart-line-gaps.js +2 -2
  178. package/dist/ssr/content/chart-line-gaps.js.map +1 -1
  179. package/dist/ssr/content/chart-map-viewport.js.map +1 -1
  180. package/dist/ssr/content/chart-message-catalog.js +164 -0
  181. package/dist/ssr/content/chart-message-catalog.js.map +1 -0
  182. package/dist/ssr/content/chart-messages.js +2 -138
  183. package/dist/ssr/content/chart-messages.js.map +1 -1
  184. package/dist/ssr/content/chart-snapshot.js +1 -62
  185. package/dist/ssr/content/chart-snapshot.js.map +1 -1
  186. package/dist/ssr/content/chart-state-timeline.js +1 -1
  187. package/dist/ssr/content/chart-state-timeline.js.map +1 -1
  188. package/dist/ssr/content/chart-svg.js +2 -1
  189. package/dist/ssr/content/chart-svg.js.map +1 -1
  190. package/dist/ssr/content/chart-time-axis.js +139 -0
  191. package/dist/ssr/content/chart-time-axis.js.map +1 -0
  192. package/dist/ssr/content/data-table-columns.js +160 -0
  193. package/dist/ssr/content/data-table-columns.js.map +1 -0
  194. package/dist/ssr/content/data-table-messages.js +38 -2
  195. package/dist/ssr/content/data-table-messages.js.map +1 -1
  196. package/dist/ssr/content/flow-amount-messages.js +26 -0
  197. package/dist/ssr/content/flow-amount-messages.js.map +1 -0
  198. package/dist/ssr/content/index.js +4 -0
  199. package/dist/ssr/content/index.js.map +1 -1
  200. package/dist/ssr/feedback/prompt-confirm.js +7 -4
  201. package/dist/ssr/feedback/prompt-confirm.js.map +1 -1
  202. package/dist/ssr/feedback/prompts.js +3 -3
  203. package/dist/ssr/feedback/prompts.js.map +1 -1
  204. package/dist/ssr/inputs/DatePicker.js +5 -4
  205. package/dist/ssr/inputs/DatePicker.js.map +1 -1
  206. package/dist/ssr/inputs/NumberInput.js +17 -5
  207. package/dist/ssr/inputs/NumberInput.js.map +1 -1
  208. package/dist/ssr/inputs/SelectChip.js +26 -9
  209. package/dist/ssr/inputs/SelectChip.js.map +1 -1
  210. package/dist/ssr/inputs/date-picker.js +13 -0
  211. package/dist/ssr/inputs/date-picker.js.map +1 -1
  212. package/dist/ssr/intl/Format.js +22 -2
  213. package/dist/ssr/intl/Format.js.map +1 -1
  214. package/dist/ssr/layout/AppWorkspace.js +158 -114
  215. package/dist/ssr/layout/AppWorkspace.js.map +1 -1
  216. package/dist/ssr/layout/MobileShell.js +26 -0
  217. package/dist/ssr/layout/MobileShell.js.map +1 -1
  218. package/dist/ssr/layout/index.js +1 -0
  219. package/dist/ssr/layout/index.js.map +1 -1
  220. package/dist/ssr/layout/sheet-handle.js +155 -0
  221. package/dist/ssr/layout/sheet-handle.js.map +1 -0
  222. package/dist/ssr/surfaces/BudgetList.js +170 -0
  223. package/dist/ssr/surfaces/BudgetList.js.map +1 -0
  224. package/dist/ssr/surfaces/NoticeCard.js +25 -10
  225. package/dist/ssr/surfaces/NoticeCard.js.map +1 -1
  226. package/dist/ssr/surfaces/ProgressBar.js +96 -5
  227. package/dist/ssr/surfaces/ProgressBar.js.map +1 -1
  228. package/dist/ssr/surfaces/StatCell.js +157 -51
  229. package/dist/ssr/surfaces/StatCell.js.map +1 -1
  230. package/dist/ssr/surfaces/StatGrid.js +24 -35
  231. package/dist/ssr/surfaces/StatGrid.js.map +1 -1
  232. package/dist/ssr/surfaces/budget-messages.js +64 -0
  233. package/dist/ssr/surfaces/budget-messages.js.map +1 -0
  234. package/dist/ssr/surfaces/delta-badge.js +41 -0
  235. package/dist/ssr/surfaces/delta-badge.js.map +1 -0
  236. package/dist/ssr/surfaces/index.js +2 -1
  237. package/dist/ssr/surfaces/index.js.map +1 -1
  238. package/dist/ssr/surfaces/person-color.js +2 -2
  239. package/dist/ssr/surfaces/person-color.js.map +1 -1
  240. package/dist/ssr/surfaces/stat-cell-messages.js +41 -0
  241. package/dist/ssr/surfaces/stat-cell-messages.js.map +1 -0
  242. package/dist/ssr/widgets/Dashboard.js +84 -0
  243. package/dist/ssr/widgets/Dashboard.js.map +1 -0
  244. package/dist/ssr/widgets/index.js +1 -0
  245. package/dist/ssr/widgets/index.js.map +1 -1
  246. package/dist/styles.css +1 -1
  247. package/dist/types/charts/core/area.d.ts +62 -0
  248. package/dist/types/charts/core/calendar.d.ts +57 -0
  249. package/dist/types/charts/core/chart-map-data.d.ts +3 -0
  250. package/dist/types/charts/core/index.d.ts +11 -0
  251. package/dist/types/charts/core/inspection.d.ts +16 -0
  252. package/dist/types/charts/core/registry.d.ts +27 -0
  253. package/dist/types/charts/core/render.d.ts +40 -0
  254. package/dist/types/charts/core/snapshot.d.ts +27 -0
  255. package/dist/types/charts/core/svg.d.ts +714 -0
  256. package/dist/types/charts/core/termination.test-fixture.d.ts +1 -0
  257. package/dist/types/charts/core/text.d.ts +5 -0
  258. package/dist/types/charts/core/types.d.ts +31 -0
  259. package/dist/types/charts.d.ts +4 -2
  260. package/dist/types/content/BalanceSummary.d.ts +29 -0
  261. package/dist/types/content/Chart.d.ts +26 -36
  262. package/dist/types/content/ChartExplorer.d.ts +43 -2
  263. package/dist/types/content/ChartSnapshotView.d.ts +1 -0
  264. package/dist/types/content/DataTable.d.ts +28 -0
  265. package/dist/types/content/DataTableTools.d.ts +44 -0
  266. package/dist/types/content/FlowAmount.d.ts +28 -0
  267. package/dist/types/content/balance-summary-messages.d.ts +11 -0
  268. package/dist/types/content/chart-bar.d.ts +1 -1
  269. package/dist/types/content/chart-calendar.d.ts +4 -0
  270. package/dist/types/content/chart-inspection-core.d.ts +21 -16
  271. package/dist/types/content/chart-inspection.d.ts +5 -1
  272. package/dist/types/content/chart-map-viewport.d.ts +1 -1
  273. package/dist/types/content/chart-message-catalog.d.ts +84 -0
  274. package/dist/types/content/chart-messages.d.ts +2 -33
  275. package/dist/types/content/chart-snapshot.d.ts +1 -26
  276. package/dist/types/content/chart-svg.d.ts +1 -1
  277. package/dist/types/content/chart-time-axis.d.ts +26 -0
  278. package/dist/types/content/data-table-columns.d.ts +72 -0
  279. package/dist/types/content/data-table-messages.d.ts +18 -0
  280. package/dist/types/content/flow-amount-messages.d.ts +11 -0
  281. package/dist/types/content/index.d.ts +10 -2
  282. package/dist/types/feedback/prompt-confirm.d.ts +3 -1
  283. package/dist/types/feedback/prompts.d.ts +2 -2
  284. package/dist/types/inputs/NumberInput.d.ts +1 -1
  285. package/dist/types/inputs/SelectChip.d.ts +2 -0
  286. package/dist/types/inputs/date-picker.d.ts +6 -0
  287. package/dist/types/intl/Format.d.ts +5 -0
  288. package/dist/types/layout/AppWorkspace.d.ts +21 -1
  289. package/dist/types/layout/MobileShell.d.ts +5 -0
  290. package/dist/types/layout/index.d.ts +2 -1
  291. package/dist/types/layout/sheet-handle.d.ts +21 -0
  292. package/dist/types/surfaces/BudgetList.d.ts +42 -0
  293. package/dist/types/surfaces/NoticeCard.d.ts +5 -2
  294. package/dist/types/surfaces/ProgressBar.d.ts +38 -2
  295. package/dist/types/surfaces/StatCell.d.ts +35 -2
  296. package/dist/types/surfaces/StatGrid.d.ts +3 -1
  297. package/dist/types/surfaces/budget-messages.d.ts +30 -0
  298. package/dist/types/surfaces/delta-badge.d.ts +10 -0
  299. package/dist/types/surfaces/index.d.ts +4 -3
  300. package/dist/types/surfaces/person-color.d.ts +2 -2
  301. package/dist/types/surfaces/stat-cell-messages.d.ts +19 -0
  302. package/dist/types/widgets/Dashboard.d.ts +42 -0
  303. package/dist/types/widgets/index.d.ts +1 -0
  304. package/package.json +7 -1
@@ -9,63 +9,66 @@ import { ssrAttribute as _$ssrAttribute } from "solid-js/web";
9
9
  import { escape as _$escape } from "solid-js/web";
10
10
  var _tmpl$ = ["<button type=\"button\" class=\"k2b-app-workspace__resize\" role=\"separator\"", " style=\"", "\"><span aria-hidden=\"true\"></span></button>"],
11
11
  _tmpl$2 = ["<span class=\"k2b-app-workspace__level-lead\">", "</span>"],
12
- _tmpl$3 = ["<p class=\"k2b-truncate-fade\">", "</p>"],
13
- _tmpl$4 = ["<div class=\"k2b-app-workspace__level-actions\">", "</div>"],
14
- _tmpl$5 = ["<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>", "</header>"],
15
- _tmpl$6 = ["<style>", "</style>"],
16
- _tmpl$7 = ["<div class=\"k2b-app-workspace__main-primary\" data-workspace-main-region=\"main\"", ">", "</div>"],
17
- _tmpl$8 = ["<section", " class=\"", "\"", " style=\"", "\">", "</section>"],
18
- _tmpl$9 = ["<div class=\"k2b-app-workspace__level-body\"", ">", "</div>"],
19
- _tmpl$0 = "<i class=\"ti ti-chevron-left\" aria-hidden=\"true\"></i>",
20
- _tmpl$1 = ["<i", " aria-hidden=\"true\"></i>"],
21
- _tmpl$10 = ["<aside", " class=\"", "\"", "", " style=\"", "\"><button type=\"button\" class=\"k2b-app-workspace__detail-grabber\"", " aria-pressed=\"false\"><span aria-hidden=\"true\"></span></button>", "</aside>"],
22
- _tmpl$11 = ["<aside", " class=\"", "\"", "", " style=\"", "\">", "</aside>"],
23
- _tmpl$12 = ["<nav class=\"k2b-app-workspace__sidebar-sheet\"", " style=\"", "\">", "</nav>"],
24
- _tmpl$13 = ["<div class=\"k2b-app-workspace__sidebar-desktop\"", ">", "</div>"],
25
- _tmpl$14 = ["<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>"],
26
- _tmpl$15 = ["<script>", "</script>"],
27
- _tmpl$16 = ["<span aria-hidden=\"true\"><i", "></i></span>"],
28
- _tmpl$17 = ["<span class=\"k2b-app-workspace__sidebar-section-count\">", "</span>"],
29
- _tmpl$18 = ["<button type=\"button\" class=\"k2b-app-workspace__sidebar-section-toggle\"", ">", "<i", " aria-hidden=\"true\"></i></button>"],
30
- _tmpl$19 = ["<div class=\"k2b-app-workspace__sidebar-section-actions\">", "</div>"],
31
- _tmpl$20 = ["<header class=\"k2b-app-workspace__sidebar-section-header\">", "", "</header>"],
32
- _tmpl$21 = ["<div", "", " class=\"k2b-app-workspace__sidebar-section-content\">", "</div>"],
33
- _tmpl$22 = ["<h2>", "</h2>"],
34
- _tmpl$23 = ["<div class=\"k2b-app-workspace__sidebar-item-actions\"", ">", "</div>"],
35
- _tmpl$24 = ["<span", " aria-hidden=\"true\">", "</span>"],
36
- _tmpl$25 = ["<span class=\"k2b-app-workspace__sidebar-item-context-meta\">", "</span>"],
37
- _tmpl$26 = ["<span class=\"k2b-app-workspace__sidebar-item-context\"><span class=\"k2b-app-workspace__sidebar-item-context-label k2b-truncate-fade\">", "</span>", "</span>"],
38
- _tmpl$27 = ["<span class=\"k2b-app-workspace__sidebar-item-description k2b-truncate-fade\">", "</span>"],
39
- _tmpl$28 = ["<span class=\"k2b-app-workspace__sidebar-item-note k2b-truncate-fade\"", ">", "</span>"],
40
- _tmpl$29 = ["<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>"],
41
- _tmpl$30 = ["<span class=\"k2b-app-workspace__sidebar-item-meta\"", ">", "</span>"],
42
- _tmpl$31 = ["<i", "></i>"],
43
- _tmpl$32 = ["<a", " class=\"k2b-app-workspace__sidebar-item-action\"", ">", "</a>"],
44
- _tmpl$33 = ["<button type=\"button\" class=\"k2b-app-workspace__sidebar-item-action\"", ">", "</button>"],
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 k2b-truncate-fade-lines\">", "</span></span><span class=\"k2b-app-workspace__sidebar-item-description k2b-truncate-fade\">", "</span></span>"],
46
- _tmpl$35 = ["<span class=\"", "\"", ">", "</span>"],
47
- _tmpl$36 = ["<span class=\"k2b-app-workspace__nav-tree-toggle\" data-k2b-nav-tree-toggle aria-hidden=\"true\"><i class=\"", "\"></i></span>"],
48
- _tmpl$37 = ["<span class=\"k2b-app-workspace__sidebar-item-label\"", "><span class=\"k2b-app-workspace__sidebar-item-label-text k2b-truncate-fade-lines\">", "</span></span>"],
49
- _tmpl$38 = ["<div class=\"k2b-app-workspace__nav-tree-group\" role=\"group\">", "</div>"],
50
- _tmpl$39 = ["<div class=\"k2b-app-workspace__nav-tree-node\" role=\"treeitem\"", " style=\"", "\">", "", "</div>"],
51
- _tmpl$40 = ["<div class=\"", "\" role=\"tree\"", ">", "</div>"],
52
- _tmpl$41 = ["<div class=\"k2b-app-workspace__sidebar-icon-grid\"", ">", "</div>"],
53
- _tmpl$42 = "<i class=\"ti ti-chevron-down k2b-app-workspace__head-primary-chevron\" aria-hidden=\"true\"></i>",
54
- _tmpl$43 = ["<span class=\"k2b-app-workspace__head-primary-label\">", "", "</span>"],
55
- _tmpl$44 = "<i class=\"ti ti-layout-sidebar\" aria-hidden=\"true\"></i>",
56
- _tmpl$45 = ["<div class=\"k2b-app-workspace__head-views\">", "</div>"],
57
- _tmpl$46 = ["<div class=\"k2b-app-workspace__head-filters\" role=\"group\"", ">", "", "</div>"],
58
- _tmpl$47 = ["<span class=\"k2b-app-workspace__head-count\"><span>", "</span></span>"],
59
- _tmpl$48 = ["<div class=\"k2b-app-workspace__head-actions\">", "", "</div>"],
60
- _tmpl$49 = ["<div class=\"k2b-app-workspace__head\"", ">", "<div class=\"k2b-app-workspace__head-lead\">", "", "", "", "", "</div>", "</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>"];
12
+ _tmpl$3 = ["<span class=\"k2b-truncate-fade\">", "</span>"],
13
+ _tmpl$4 = ["<p class=\"k2b-truncate-fade\">", "</p>"],
14
+ _tmpl$5 = ["<div class=\"k2b-app-workspace__level-actions\">", "</div>"],
15
+ _tmpl$6 = ["<header class=\"k2b-app-workspace__level-head\">", "<div class=\"k2b-app-workspace__level-title\"><h2 tabindex=\"-1\"", ">", "</h2>", "", "</div>", "</header>"],
16
+ _tmpl$7 = ["<button type=\"button\" class=\"k2b-app-workspace__level-switch\" aria-haspopup=\"menu\" aria-label=\"", "\">", "<i class=\"ti ti-chevron-down k2b-app-workspace__level-switch-chevron\" aria-hidden=\"true\"></i></button>"],
17
+ _tmpl$8 = ["<style>", "</style>"],
18
+ _tmpl$9 = ["<div class=\"k2b-app-workspace__main-primary\" data-workspace-main-region=\"main\"", ">", "</div>"],
19
+ _tmpl$0 = ["<section", " class=\"", "\"", " style=\"", "\">", "</section>"],
20
+ _tmpl$1 = ["<div class=\"k2b-app-workspace__level-body\"", ">", "</div>"],
21
+ _tmpl$10 = "<i class=\"ti ti-chevron-left\" aria-hidden=\"true\"></i>",
22
+ _tmpl$11 = ["<i", " aria-hidden=\"true\"></i>"],
23
+ _tmpl$12 = ["<aside", " class=\"", "\"", "", " style=\"", "\"><button type=\"button\" class=\"k2b-app-workspace__detail-grabber\"", " aria-pressed=\"false\"><span aria-hidden=\"true\"></span></button>", "</aside>"],
24
+ _tmpl$13 = ["<aside", " class=\"", "\"", "", " style=\"", "\">", "</aside>"],
25
+ _tmpl$14 = ["<nav class=\"k2b-app-workspace__sidebar-sheet\"", " style=\"", "\">", "</nav>"],
26
+ _tmpl$15 = ["<div class=\"k2b-app-workspace__sidebar-desktop\"", ">", "</div>"],
27
+ _tmpl$16 = ["<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>"],
28
+ _tmpl$17 = ["<script>", "</script>"],
29
+ _tmpl$18 = ["<span aria-hidden=\"true\"><i", "></i></span>"],
30
+ _tmpl$19 = ["<span class=\"k2b-app-workspace__sidebar-section-count\">", "</span>"],
31
+ _tmpl$20 = ["<button type=\"button\" class=\"k2b-app-workspace__sidebar-section-toggle\"", ">", "<i", " aria-hidden=\"true\"></i></button>"],
32
+ _tmpl$21 = ["<div class=\"k2b-app-workspace__sidebar-section-actions\">", "</div>"],
33
+ _tmpl$22 = ["<header class=\"k2b-app-workspace__sidebar-section-header\">", "", "</header>"],
34
+ _tmpl$23 = ["<div", "", " class=\"k2b-app-workspace__sidebar-section-content\">", "</div>"],
35
+ _tmpl$24 = ["<h2>", "</h2>"],
36
+ _tmpl$25 = ["<div class=\"k2b-app-workspace__sidebar-item-actions\"", ">", "</div>"],
37
+ _tmpl$26 = ["<span", " aria-hidden=\"true\">", "</span>"],
38
+ _tmpl$27 = ["<span class=\"k2b-app-workspace__sidebar-item-context-meta\">", "</span>"],
39
+ _tmpl$28 = ["<span class=\"k2b-app-workspace__sidebar-item-context\"><span class=\"k2b-app-workspace__sidebar-item-context-label k2b-truncate-fade\">", "</span>", "</span>"],
40
+ _tmpl$29 = ["<span class=\"k2b-app-workspace__sidebar-item-description k2b-truncate-fade\">", "</span>"],
41
+ _tmpl$30 = ["<span class=\"k2b-app-workspace__sidebar-item-note k2b-truncate-fade\"", ">", "</span>"],
42
+ _tmpl$31 = ["<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>"],
43
+ _tmpl$32 = ["<span class=\"k2b-app-workspace__sidebar-item-meta\"", ">", "</span>"],
44
+ _tmpl$33 = ["<i", "></i>"],
45
+ _tmpl$34 = ["<a", " class=\"k2b-app-workspace__sidebar-item-action\"", ">", "</a>"],
46
+ _tmpl$35 = ["<button type=\"button\" class=\"k2b-app-workspace__sidebar-item-action\"", ">", "</button>"],
47
+ _tmpl$36 = ["<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\">", "</span></span>"],
48
+ _tmpl$37 = ["<span class=\"", "\"", ">", "</span>"],
49
+ _tmpl$38 = ["<span class=\"k2b-app-workspace__nav-tree-toggle\" data-k2b-nav-tree-toggle aria-hidden=\"true\"><i class=\"", "\"></i></span>"],
50
+ _tmpl$39 = ["<span class=\"k2b-app-workspace__sidebar-item-label\"", "><span class=\"k2b-app-workspace__sidebar-item-label-text k2b-truncate-fade-lines\">", "</span></span>"],
51
+ _tmpl$40 = ["<div class=\"k2b-app-workspace__nav-tree-group\" role=\"group\">", "</div>"],
52
+ _tmpl$41 = ["<div class=\"k2b-app-workspace__nav-tree-node\" role=\"treeitem\"", " style=\"", "\">", "", "</div>"],
53
+ _tmpl$42 = ["<div class=\"", "\" role=\"tree\"", ">", "</div>"],
54
+ _tmpl$43 = ["<div class=\"k2b-app-workspace__sidebar-icon-grid\"", ">", "</div>"],
55
+ _tmpl$44 = "<i class=\"ti ti-chevron-down k2b-app-workspace__head-primary-chevron\" aria-hidden=\"true\"></i>",
56
+ _tmpl$45 = ["<span class=\"k2b-app-workspace__head-primary-label\">", "", "</span>"],
57
+ _tmpl$46 = "<i class=\"ti ti-layout-sidebar\" aria-hidden=\"true\"></i>",
58
+ _tmpl$47 = ["<div class=\"k2b-app-workspace__head-views\">", "</div>"],
59
+ _tmpl$48 = ["<div class=\"k2b-app-workspace__head-filters\" role=\"group\"", " data-scroll-fade-mode=\"both\" data-scroll-fade-axis=\"horizontal\">", "", "</div>"],
60
+ _tmpl$49 = ["<span class=\"k2b-app-workspace__head-count\"><span>", "</span></span>"],
61
+ _tmpl$50 = ["<div class=\"k2b-app-workspace__head-actions\">", "", "</div>"],
62
+ _tmpl$51 = ["<div class=\"k2b-app-workspace__head\"", ">", "<div class=\"k2b-app-workspace__head-lead\">", "", "", "", "", "</div>", "</div>"],
63
+ _tmpl$52 = ["<h1 class=\"k2b-app-workspace__head-heading\" data-k2b-page-trail-title", ">", "</h1>"],
64
+ _tmpl$53 = ["<div class=\"", "\" data-k2b-app-workspace", " style=\"", "\">", "</div>"],
65
+ _tmpl$54 = ["<div class=\"", "\">", "</div>"];
64
66
  import { AppWorkspaceSidebarItemStatus } from "./AppWorkspaceSidebarItemStatus";
65
67
  import { Link } from "@k2b/ssr/nav";
66
68
  import { children, createContext, createEffect, createMemo, createRoot, createSignal, createUniqueId, For, getOwner, mergeProps, on, onCleanup, onMount, Show, useContext } from "solid-js";
67
69
  import { Dynamic, isServer } from "solid-js/web";
68
70
  import { Button, ButtonLink, IconButton, IconButtonLink } from "../actions/Button";
71
+ import { Dropdown } from "../actions/Dropdown";
69
72
  import { useFilterMessages } from "../actions/filter-messages";
70
73
  import { dialogCore } from "../feedback/dialog-core";
71
74
  import { Tooltip } from "../feedback/Tooltip";
@@ -139,6 +142,8 @@ function ResizeHandle(props) {
139
142
  return _$ssr(_tmpl$, _$ssrAttribute("aria-label", _$escape(props.label ?? (props.kind === "sidebar" ? workspaceMessages().resizeNavigation : props.kind === "pane" ? workspaceMessages().resizeWorkspacePane : props.kind === "detail" ? workspaceMessages().resizeDetailPanel : workspaceMessages().resizeBottomDrawer), true), false) + _$ssrAttribute("aria-controls", _$escape(props.controls, true), false) + _$ssrAttribute("aria-orientation", props.kind === "drawer" ? "horizontal" : "vertical", false) + _$ssrAttribute("aria-valuemin", _$escape(props.minSize, true), false) + _$ssrAttribute("aria-valuemax", _$escape(props.maxSize, true), false) + _$ssrAttribute("aria-valuenow", _$escape(initialSize(), true), false) + _$ssrAttribute("data-workspace-level-shown", _$escape(props.levelShown, true), false) + _$ssrAttribute("data-app-workspace-resize", _$escape(props.kind, true), false) + _$ssrAttribute("data-workspace-panel-id", _$escape(props.panelId, true), false) + _$ssrAttribute("data-workspace-resize-edge", _$escape(props.edge, true), false) + _$ssrAttribute("data-workspace-resize-shadow", props.shadow ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("data-workspace-default-size", _$escape(appWorkspaceWidthToken(props.defaultSize), true), false) + _$ssrAttribute("data-workspace-min-size", _$escape(props.minSize, true), false) + _$ssrAttribute("data-workspace-max-size", _$escape(props.maxSize, true), false), _$ssrStyle(props.style));
140
143
  }
141
144
 
145
+ /** The places a level title switches between; `label` names the menu, such as "Switch Space". */
146
+
142
147
  /** One requested place for an item among its unchanged siblings. */
143
148
 
144
149
  const modeAttrs = mode => mode && mode !== "always" ? {
@@ -174,26 +179,55 @@ function LevelHead(props) {
174
179
  const description = children(() => props.description);
175
180
  const actions = children(() => props.actions);
176
181
  const lead = children(() => props.lead);
177
- return _$ssr(_tmpl$5, _$escape(props.children), _$escape(_$createComponent(Show, {
182
+ let switchButton;
183
+ const title = () => [_$createComponent(Show, {
178
184
  get when() {
179
185
  return lead();
180
186
  },
181
187
  get children() {
182
188
  return _$ssr(_tmpl$2, _$escape(lead()));
183
189
  }
184
- })), _$escape(props.label), _$escape(_$createComponent(Show, {
190
+ }), _$ssr(_tmpl$3, _$escape(props.label))];
191
+ return _$ssr(_tmpl$6, _$escape(props.children), _$ssrAttribute("data-switcher", props.switcher ? "" : _$escape(undefined, true), false), _$escape(_$createComponent(Show, {
192
+ get when() {
193
+ return props.switcher;
194
+ },
195
+ get fallback() {
196
+ return title();
197
+ },
198
+ children: switcher => _$ssr(_tmpl$7, `${_$escape(props.label, true)}, ${_$escape(switcher().label, true)}`, _$escape(title()))
199
+ })), _$escape(_$createComponent(Show, {
200
+ get when() {
201
+ return props.switcher;
202
+ },
203
+ children: switcher => _$createComponent(Dropdown, {
204
+ get items() {
205
+ return switcher().items;
206
+ },
207
+ get label() {
208
+ return switcher().label;
209
+ },
210
+ get search() {
211
+ return switcher().search;
212
+ },
213
+ phone: "sheet",
214
+ variant: "touch",
215
+ position: "bottom-left",
216
+ attach: () => switchButton
217
+ })
218
+ })), _$escape(_$createComponent(Show, {
185
219
  get when() {
186
220
  return description();
187
221
  },
188
222
  get children() {
189
- return _$ssr(_tmpl$3, _$escape(description()));
223
+ return _$ssr(_tmpl$4, _$escape(description()));
190
224
  }
191
225
  })), _$escape(_$createComponent(Show, {
192
226
  get when() {
193
227
  return actions();
194
228
  },
195
229
  get children() {
196
- return _$ssr(_tmpl$4, _$escape(actions()));
230
+ return _$ssr(_tmpl$5, _$escape(actions()));
197
231
  }
198
232
  })));
199
233
  }
@@ -312,7 +346,7 @@ function AppWorkspaceMain(props) {
312
346
  get when() {
313
347
  return minWidth();
314
348
  },
315
- children: value => _$ssr(_tmpl$6, minWidthRule(value()))
349
+ children: value => _$ssr(_tmpl$8, minWidthRule(value()))
316
350
  }), _$ssrElement("div", _$mergeProps({
317
351
  get ["class"]() {
318
352
  return `k2b-app-workspace__main ${hasPanes() ? "has-panes" : ""} ${props.class ?? ""}`;
@@ -359,7 +393,7 @@ function AppWorkspaceMain(props) {
359
393
  return props.mobilePane ?? (anchor?.type === "pane" ? anchor.slot.props.id : "main");
360
394
  };
361
395
  if (region.type === "primary") {
362
- return _$ssr(_tmpl$7, _$ssrAttribute("data-workspace-mobile-active", activeMobilePane() === "main" ? "true" : "false", false), _$escape(region.children));
396
+ return _$ssr(_tmpl$9, _$ssrAttribute("data-workspace-mobile-active", activeMobilePane() === "main" ? "true" : "false", false), _$escape(region.children));
363
397
  }
364
398
  const pane = region.slot;
365
399
  const levelIndex = () => levels().indexOf(pane) + 1;
@@ -415,7 +449,7 @@ function AppWorkspaceMain(props) {
415
449
  get children() {
416
450
  return handle();
417
451
  }
418
- }), _$ssr(_tmpl$8, _$ssrAttribute("id", _$escape(pane.domId, true), false), `k2b-app-workspace__main-pane ${isAnchor() ? "is-primary" : ""} ${_$escape(pane.props.class ?? "", true)}`, _$ssrAttribute("aria-label", _$escape(pane.props.label, true), false) + _$ssrAttribute("data-workspace-level", levelsMode() ? _$escape(levelIndex(), true) : _$escape(undefined, true), false) + _$ssrAttribute("data-workspace-level-shown", _$escape(levelAttr("shown"), true), false) + _$ssrAttribute("data-workspace-level-first", _$escape(levelAttr("first"), true), false) + _$ssrAttribute("data-workspace-level-last", _$escape(levelAttr("last"), true), false) + _$ssrAttribute("data-workspace-main-region", _$escape(pane.props.id, true), false) + _$ssrAttribute("data-workspace-heading", levelsMode() ? _$escape(pane.props.heading, true) : _$escape(undefined, true), false) + _$ssrAttribute("data-workspace-mobile-active", (levelsMode() ? levelClasses(levelIndex(), "shown").split(" ").includes("1") : activeMobilePane() === pane.props.id) ? "true" : "false", false) + _$ssrAttribute("data-workspace-panel-id", _$escape(panelId, true), false) + _$ssrAttribute("data-workspace-resizable", resizable() ? "true" : "false", false) + _$ssrAttribute("data-surface", pane.props.surface === "navigation" ? "navigation" : _$escape(undefined, true), false) + _$ssrAttribute("data-scroll", !levelsMode() && pane.props.scroll === false ? "false" : _$escape(undefined, true), false) + _$ssrAttribute("data-scroll-fade-mode", !levelsMode() && pane.props.scroll !== false && pane.props.scrollFade !== false ? "both" : _$escape(undefined, true), false), _$ssrStyle(nonEmptyStyle({
452
+ }), _$ssr(_tmpl$0, _$ssrAttribute("id", _$escape(pane.domId, true), false), `k2b-app-workspace__main-pane ${isAnchor() ? "is-primary" : ""} ${_$escape(pane.props.class ?? "", true)}`, _$ssrAttribute("aria-label", _$escape(pane.props.label, true), false) + _$ssrAttribute("data-workspace-level", levelsMode() ? _$escape(levelIndex(), true) : _$escape(undefined, true), false) + _$ssrAttribute("data-workspace-level-shown", _$escape(levelAttr("shown"), true), false) + _$ssrAttribute("data-workspace-level-first", _$escape(levelAttr("first"), true), false) + _$ssrAttribute("data-workspace-level-last", _$escape(levelAttr("last"), true), false) + _$ssrAttribute("data-workspace-main-region", _$escape(pane.props.id, true), false) + _$ssrAttribute("data-workspace-heading", levelsMode() ? _$escape(pane.props.heading, true) : _$escape(undefined, true), false) + _$ssrAttribute("data-workspace-mobile-active", (levelsMode() ? levelClasses(levelIndex(), "shown").split(" ").includes("1") : activeMobilePane() === pane.props.id) ? "true" : "false", false) + _$ssrAttribute("data-workspace-panel-id", _$escape(panelId, true), false) + _$ssrAttribute("data-workspace-resizable", resizable() ? "true" : "false", false) + _$ssrAttribute("data-surface", pane.props.surface === "navigation" ? "navigation" : _$escape(undefined, true), false) + _$ssrAttribute("data-scroll", !levelsMode() && pane.props.scroll === false ? "false" : _$escape(undefined, true), false) + _$ssrAttribute("data-scroll-fade-mode", !levelsMode() && pane.props.scroll !== false && pane.props.scrollFade !== false ? "both" : _$escape(undefined, true), false), _$ssrStyle(nonEmptyStyle({
419
453
  ...(isAnchor() ? {} : {
420
454
  // A stored width keeps to this pane's limits before the controller attaches.
421
455
  "--k2b-workspace-panel-size": `clamp(${minSize()}px, var(${variable}, ${appWorkspaceWidthCss(defaultSize(), "var(--k2b-workspace-width)")}), ${maxSize()}px)`,
@@ -439,6 +473,9 @@ function AppWorkspaceMain(props) {
439
473
  get lead() {
440
474
  return pane.props.lead;
441
475
  },
476
+ get switcher() {
477
+ return pane.props.switcher;
478
+ },
442
479
  get children() {
443
480
  return _$createComponent(Show, {
444
481
  get when() {
@@ -467,7 +504,7 @@ function AppWorkspaceMain(props) {
467
504
  return props.onLevelNavigate ? navigateBack : undefined;
468
505
  },
469
506
  get children() {
470
- return _$ssr(_tmpl$0);
507
+ return _$ssr(_tmpl$10);
471
508
  }
472
509
  });
473
510
  }
@@ -484,12 +521,12 @@ function AppWorkspaceMain(props) {
484
521
  });
485
522
  },
486
523
  get children() {
487
- return _$ssr(_tmpl$0);
524
+ return _$ssr(_tmpl$10);
488
525
  }
489
526
  })
490
527
  });
491
528
  }
492
- }), _$ssr(_tmpl$9, _$ssrAttribute("data-scroll", pane.props.scroll === false ? "false" : _$escape(undefined, true), false) + _$ssrAttribute("data-scroll-fade-mode", pane.props.scroll !== false && pane.props.scrollFade !== false ? "both" : _$escape(undefined, true), false), _$escape(pane.props.children))]) : _$escape(pane.props.children)), _$createComponent(Show, {
529
+ }), _$ssr(_tmpl$1, _$ssrAttribute("data-scroll", pane.props.scroll === false ? "false" : _$escape(undefined, true), false) + _$ssrAttribute("data-scroll-fade-mode", pane.props.scroll !== false && pane.props.scrollFade !== false ? "both" : _$escape(undefined, true), false), _$escape(pane.props.children))]) : _$escape(pane.props.children)), _$createComponent(Show, {
493
530
  get when() {
494
531
  return _$memo(() => !!resizable())() && before();
495
532
  },
@@ -560,7 +597,7 @@ function AppWorkspaceDetail(props) {
560
597
  aside?.removeEventListener(APP_WORKSPACE_DETAIL_STEP_EVENT, step);
561
598
  });
562
599
  });
563
- return [_$ssr(_tmpl$6, workspaceRule()), _$createComponent(Show, {
600
+ return [_$ssr(_tmpl$8, workspaceRule()), _$createComponent(Show, {
564
601
  get when() {
565
602
  return props.toggle !== false;
566
603
  },
@@ -581,7 +618,7 @@ function AppWorkspaceDetail(props) {
581
618
  },
582
619
  "class": "k2b-app-workspace__detail-toggle k2b-details-toggle",
583
620
  get children() {
584
- return [_$ssr(_tmpl$1, _$ssrAttribute("class", _$escape(DETAILS_ICON, true), false)), workspaceMessages().details];
621
+ return [_$ssr(_tmpl$11, _$ssrAttribute("class", _$escape(DETAILS_ICON, true), false)), workspaceMessages().details];
585
622
  }
586
623
  });
587
624
  }
@@ -614,7 +651,7 @@ function AppWorkspaceDetail(props) {
614
651
  }
615
652
  });
616
653
  }
617
- }), _$ssr(_tmpl$10, _$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-detail-choice", props.openOnChoice === false ? "request" : _$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-reopen", props.onOpen ? "true" : _$escape(undefined, true), 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 || props.available === false, true), _$ssrStyle({
654
+ }), _$ssr(_tmpl$12, _$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-detail-choice", props.openOnChoice === false ? "request" : _$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-reopen", props.onOpen ? "true" : _$escape(undefined, true), 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 || props.available === false, true), _$ssrStyle({
618
655
  ...sizeStyle(),
619
656
  "view-transition-name": props.viewTransitionName
620
657
  }), _$ssrAttribute("aria-label", _$escape(workspaceMessages().detailFullHeight, true), false), _$escape(props.children))];
@@ -665,7 +702,7 @@ function AppWorkspaceBottomDrawer(props) {
665
702
  }
666
703
  });
667
704
  }
668
- }), _$ssr(_tmpl$11, _$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))];
705
+ }), _$ssr(_tmpl$13, _$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))];
669
706
  }
670
707
  function AppWorkspaceSidebar(props) {
671
708
  const rootResizable = useContext(ResizeContext);
@@ -755,7 +792,7 @@ function AppWorkspaceSidebar(props) {
755
792
  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.");
756
793
  return null;
757
794
  }
758
- return _$ssr(_tmpl$12, _$ssrAttribute("aria-label", _$escape(props.label, true), false), _$ssrStyle(accent), _$escape(resolved()));
795
+ return _$ssr(_tmpl$14, _$ssrAttribute("aria-label", _$escape(props.label, true), false), _$ssrStyle(accent), _$escape(resolved()));
759
796
  }
760
797
  });
761
798
  }
@@ -822,14 +859,14 @@ function AppWorkspaceSidebar(props) {
822
859
  return !props.hidden;
823
860
  },
824
861
  get children() {
825
- return [_$ssr(_tmpl$13, _$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, {
862
+ return [_$ssr(_tmpl$15, _$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, {
826
863
  get when() {
827
864
  return stacked();
828
865
  },
829
866
  get children() {
830
- return [_$ssr(_tmpl$14, _$ssrAttribute("aria-expanded", _$escape(sheetOpen(), true), false) + _$ssrAttribute("aria-label", props.label ? _$escape(workspaceMessages().sidebarAllLabel({
867
+ return [_$ssr(_tmpl$16, _$ssrAttribute("aria-expanded", _$escape(sheetOpen(), true), false) + _$ssrAttribute("aria-label", props.label ? _$escape(workspaceMessages().sidebarAllLabel({
831
868
  label: props.label
832
- }), true) : _$escape(undefined, true), false), _$escape(workspaceMessages().sidebarAll)), _$ssr(_tmpl$15, CHIP_ROW_SCRIPT)];
869
+ }), true) : _$escape(undefined, true), false), _$escape(workspaceMessages().sidebarAll)), _$ssr(_tmpl$17, CHIP_ROW_SCRIPT)];
833
870
  }
834
871
  })];
835
872
  }
@@ -909,7 +946,7 @@ const AppWorkspaceSidebarBody = props => {
909
946
  get ["data-scroll-fade-mode"]() {
910
947
  return props.scrollFade !== false ? "both" : undefined;
911
948
  }
912
- }, () => scrollAttrs(props.scrollPreserveKey), () => modeAttrs(props.sidebarMode)), _$escape(props.children), false), _$ssr(_tmpl$15, SIDEBAR_SCROLL_MEMORY_SCRIPT)];
949
+ }, () => scrollAttrs(props.scrollPreserveKey), () => modeAttrs(props.sidebarMode)), _$escape(props.children), false), _$ssr(_tmpl$17, SIDEBAR_SCROLL_MEMORY_SCRIPT)];
913
950
  };
914
951
  const AppWorkspaceSidebarFooter = props => _$ssrElement("footer", _$mergeProps({
915
952
  get ["class"]() {
@@ -925,14 +962,14 @@ const AppWorkspaceSidebarSection = props => {
925
962
  return props.icon;
926
963
  },
927
964
  get children() {
928
- return _$ssr(_tmpl$16, _$ssrAttribute("class", _$escape(iconClass(props.icon), true), false));
965
+ return _$ssr(_tmpl$18, _$ssrAttribute("class", _$escape(iconClass(props.icon), true), false));
929
966
  }
930
967
  }), props.title, _$createComponent(Show, {
931
968
  get when() {
932
969
  return props.count !== undefined;
933
970
  },
934
971
  get children() {
935
- return _$ssr(_tmpl$17, _$escape(props.count));
972
+ return _$ssr(_tmpl$19, _$escape(props.count));
936
973
  }
937
974
  })];
938
975
  return _$ssrElement("section", _$mergeProps({
@@ -947,7 +984,7 @@ const AppWorkspaceSidebarSection = props => {
947
984
  return props.title || props.actions;
948
985
  },
949
986
  get children() {
950
- return _$ssr(_tmpl$20, _$escape(_$createComponent(Show, {
987
+ return _$ssr(_tmpl$22, _$escape(_$createComponent(Show, {
951
988
  get when() {
952
989
  return props.collapsible;
953
990
  },
@@ -957,23 +994,23 @@ const AppWorkspaceSidebarSection = props => {
957
994
  return props.title;
958
995
  },
959
996
  get children() {
960
- return _$ssr(_tmpl$22, _$escape(title()));
997
+ return _$ssr(_tmpl$24, _$escape(title()));
961
998
  }
962
999
  });
963
1000
  },
964
1001
  get children() {
965
- return _$ssr(_tmpl$18, _$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));
1002
+ return _$ssr(_tmpl$20, _$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));
966
1003
  }
967
1004
  })), _$escape(_$createComponent(Show, {
968
1005
  get when() {
969
1006
  return props.actions;
970
1007
  },
971
1008
  get children() {
972
- return _$ssr(_tmpl$19, _$escape(props.actions));
1009
+ return _$ssr(_tmpl$21, _$escape(props.actions));
973
1010
  }
974
1011
  })));
975
1012
  }
976
- })), _$ssr(_tmpl$21, _$ssrAttribute("id", _$escape(id, true), false), _$ssrAttribute("hidden", !open(), true), _$escape(props.children))], false);
1013
+ })), _$ssr(_tmpl$23, _$ssrAttribute("id", _$escape(id, true), false), _$ssrAttribute("hidden", !open(), true), _$escape(props.children))], false);
977
1014
  };
978
1015
  const AppWorkspaceSidebarItemIcon = props => mergeProps({
979
1016
  kind: SIDEBAR_ITEM_ICON
@@ -987,7 +1024,7 @@ const AppWorkspaceSidebarItemMeta = props => mergeProps({
987
1024
  const AppWorkspaceSidebarItemAction = props => mergeProps({
988
1025
  kind: SIDEBAR_ITEM_ACTION
989
1026
  }, props);
990
- const AppWorkspaceSidebarItemActions = props => _$ssr(_tmpl$23, _$ssrAttribute("data-visibility", props.visibility === "hover" ? "hover" : _$escape(undefined, true), false), _$escape(props.children));
1027
+ const AppWorkspaceSidebarItemActions = props => _$ssr(_tmpl$25, _$ssrAttribute("data-visibility", props.visibility === "hover" ? "hover" : _$escape(undefined, true), false), _$escape(props.children));
991
1028
  /**
992
1029
  * Hover actions overlay a row's end, so the label and count under them fade
993
1030
  * out while they show. The row measures how far the overlay reaches into its
@@ -1083,6 +1120,9 @@ function AppWorkspaceSidebarRow(props) {
1083
1120
  },
1084
1121
  get disabled() {
1085
1122
  return props.disabled;
1123
+ },
1124
+ get ["aria-expanded"]() {
1125
+ return props.expanded;
1086
1126
  }
1087
1127
  }), _$escape(props.children), false);
1088
1128
  },
@@ -1206,22 +1246,22 @@ function AppWorkspaceSidebarItem(props) {
1206
1246
  return iconContent() || icon();
1207
1247
  },
1208
1248
  get children() {
1209
- return _$ssr(_tmpl$24, _$ssrAttribute("class",
1249
+ return _$ssr(_tmpl$26, _$ssrAttribute("class",
1210
1250
  // An object row's own glyph sits in a soft chip of the app colour; custom content such as an avatar keeps
1211
1251
  // its own look.
1212
- props.variant === "object" && !iconContent() ? "k2b-app-workspace__sidebar-item-icon k2b-icon-tile" : "k2b-app-workspace__sidebar-item-icon", false), _$escape(iconContent() ?? _$ssr(_tmpl$31, _$ssrAttribute("class", _$escape(iconClass(icon()), true), false))));
1252
+ props.variant === "object" && !iconContent() ? "k2b-app-workspace__sidebar-item-icon k2b-icon-tile" : "k2b-app-workspace__sidebar-item-icon", false), _$escape(iconContent() ?? _$ssr(_tmpl$33, _$ssrAttribute("class", _$escape(iconClass(icon()), true), false))));
1213
1253
  }
1214
- }), _$ssr(_tmpl$29, _$escape(_$createComponent(Show, {
1254
+ }), _$ssr(_tmpl$31, _$escape(_$createComponent(Show, {
1215
1255
  get when() {
1216
1256
  return props.context || props.contextMeta;
1217
1257
  },
1218
1258
  get children() {
1219
- return _$ssr(_tmpl$26, _$escape(props.context), _$escape(_$createComponent(Show, {
1259
+ return _$ssr(_tmpl$28, _$escape(props.context), _$escape(_$createComponent(Show, {
1220
1260
  get when() {
1221
1261
  return props.contextMeta;
1222
1262
  },
1223
1263
  get children() {
1224
- return _$ssr(_tmpl$25, _$escape(props.contextMeta));
1264
+ return _$ssr(_tmpl$27, _$escape(props.contextMeta));
1225
1265
  }
1226
1266
  })));
1227
1267
  }
@@ -1230,21 +1270,21 @@ function AppWorkspaceSidebarItem(props) {
1230
1270
  return props.description;
1231
1271
  },
1232
1272
  get children() {
1233
- return _$ssr(_tmpl$27, _$escape(props.description));
1273
+ return _$ssr(_tmpl$29, _$escape(props.description));
1234
1274
  }
1235
1275
  })), _$escape(_$createComponent(Show, {
1236
1276
  get when() {
1237
1277
  return props.note;
1238
1278
  },
1239
1279
  get children() {
1240
- return _$ssr(_tmpl$28, _$ssrAttribute("data-tone", _$escape(props.noteTone ?? "neutral", true), false), _$escape(props.note));
1280
+ return _$ssr(_tmpl$30, _$ssrAttribute("data-tone", _$escape(props.noteTone ?? "neutral", true), false), _$escape(props.note));
1241
1281
  }
1242
1282
  }))), _$createComponent(Show, {
1243
1283
  get when() {
1244
1284
  return hasMeta();
1245
1285
  },
1246
1286
  get children() {
1247
- return _$ssr(_tmpl$30, _$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()));
1287
+ return _$ssr(_tmpl$32, _$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()));
1248
1288
  }
1249
1289
  })];
1250
1290
  const singleAction = () => {
@@ -1259,7 +1299,7 @@ function AppWorkspaceSidebarItem(props) {
1259
1299
  actionSlot()?.onSelect?.(event);
1260
1300
  props.onActionClick?.(event);
1261
1301
  };
1262
- const content = () => actionSlot()?.children ?? _$ssr(_tmpl$31, _$ssrAttribute("class", _$escape(iconClass(actionSlot()?.icon ?? props.actionIcon, "ti-dots"), true), false));
1302
+ const content = () => actionSlot()?.children ?? _$ssr(_tmpl$33, _$ssrAttribute("class", _$escape(iconClass(actionSlot()?.icon ?? props.actionIcon, "ti-dots"), true), false));
1263
1303
  return _$createComponent(Show, {
1264
1304
  get when() {
1265
1305
  return Boolean(actionSlot() || props.actionIcon);
@@ -1270,10 +1310,10 @@ function AppWorkspaceSidebarItem(props) {
1270
1310
  return _$memo(() => !!actionSlot()?.href)() && !actionSlot()?.disabled;
1271
1311
  },
1272
1312
  get fallback() {
1273
- return _$ssr(_tmpl$33, _$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()));
1313
+ return _$ssr(_tmpl$35, _$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()));
1274
1314
  },
1275
1315
  get children() {
1276
- return _$ssr(_tmpl$32, _$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()));
1316
+ return _$ssr(_tmpl$34, _$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()));
1277
1317
  }
1278
1318
  });
1279
1319
  }
@@ -1329,6 +1369,9 @@ function AppWorkspaceSidebarItem(props) {
1329
1369
  get onClick() {
1330
1370
  return props.onClick;
1331
1371
  },
1372
+ get expanded() {
1373
+ return _$memo(() => !!props.href)() ? undefined : props.expanded;
1374
+ },
1332
1375
  get active() {
1333
1376
  return props.active;
1334
1377
  },
@@ -1582,31 +1625,31 @@ const AppWorkspaceNavTree = props => {
1582
1625
  get ["data-k2b-nav-tree-toggle"]() {
1583
1626
  return usesIconDisclosure() ? "" : undefined;
1584
1627
  }
1585
- }, () => iconAccessibility(item.iconLabel)), _$ssr(_tmpl$31, _$ssrAttribute("class", _$escape(iconClass(rowIcon()), true), false)), false);
1628
+ }, () => iconAccessibility(item.iconLabel)), _$ssr(_tmpl$33, _$ssrAttribute("class", _$escape(iconClass(rowIcon()), true), false)), false);
1586
1629
  }
1587
1630
  }), _$createComponent(Show, {
1588
1631
  get when() {
1589
1632
  return item.description !== undefined;
1590
1633
  },
1591
1634
  get fallback() {
1592
- return _$ssr(_tmpl$37, _$ssrAttribute("data-label", typeof item.label === "string" ? _$escape(item.label, true) : _$escape(undefined, true), false), _$escape(item.label));
1635
+ return _$ssr(_tmpl$39, _$ssrAttribute("data-label", typeof item.label === "string" ? _$escape(item.label, true) : _$escape(undefined, true), false), _$escape(item.label));
1593
1636
  },
1594
1637
  get children() {
1595
- return _$ssr(_tmpl$34, _$ssrAttribute("data-label", typeof item.label === "string" ? _$escape(item.label, true) : _$escape(undefined, true), false), _$escape(item.label), _$escape(item.description));
1638
+ return _$ssr(_tmpl$36, _$ssrAttribute("data-label", typeof item.label === "string" ? _$escape(item.label, true) : _$escape(undefined, true), false), _$escape(item.label), _$escape(item.description));
1596
1639
  }
1597
1640
  }), _$createComponent(Show, {
1598
1641
  get when() {
1599
1642
  return item.meta !== undefined;
1600
1643
  },
1601
1644
  get children() {
1602
- return _$ssr(_tmpl$35, `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));
1645
+ return _$ssr(_tmpl$37, `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));
1603
1646
  }
1604
1647
  }), _$createComponent(Show, {
1605
1648
  get when() {
1606
1649
  return _$memo(() => !!hasChildren())() && !usesIconDisclosure();
1607
1650
  },
1608
1651
  get children() {
1609
- return _$ssr(_tmpl$36, `ti ${isExpanded(item.id) ? "ti-chevron-down" : "ti-chevron-right"}`);
1652
+ return _$ssr(_tmpl$38, `ti ${isExpanded(item.id) ? "ti-chevron-down" : "ti-chevron-right"}`);
1610
1653
  }
1611
1654
  })];
1612
1655
  const row = () => _$createComponent(AppWorkspaceSidebarRow, {
@@ -1717,12 +1760,12 @@ const AppWorkspaceNavTree = props => {
1717
1760
  endDrag();
1718
1761
  requestMove(target.move, false);
1719
1762
  };
1720
- return _$ssr(_tmpl$39, _$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, {
1763
+ return _$ssr(_tmpl$41, _$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, {
1721
1764
  get when() {
1722
1765
  return _$memo(() => !!hasChildren())() && isExpanded(item.id);
1723
1766
  },
1724
1767
  get children() {
1725
- return _$ssr(_tmpl$38, _$escape(renderItems(nested, depth + 1, item.id)));
1768
+ return _$ssr(_tmpl$40, _$escape(renderItems(nested, depth + 1, item.id)));
1726
1769
  }
1727
1770
  })));
1728
1771
  }
@@ -1747,7 +1790,7 @@ const AppWorkspaceNavTree = props => {
1747
1790
  doc?.removeEventListener("pointermove", forgetDrag, true);
1748
1791
  });
1749
1792
  });
1750
- return _$ssr(_tmpl$40, `k2b-app-workspace__nav-tree ${_$escape(props.class ?? "", true)}`, _$ssrAttribute("aria-label", _$escape(props.ariaLabel, true), false), _$escape(renderItems(roots, 0)));
1793
+ return _$ssr(_tmpl$42, `k2b-app-workspace__nav-tree ${_$escape(props.class ?? "", true)}`, _$ssrAttribute("aria-label", _$escape(props.ariaLabel, true), false), _$escape(renderItems(roots, 0)));
1751
1794
  };
1752
1795
  AppWorkspaceNavTree.Item = AppWorkspaceNavTreeItem;
1753
1796
  const AppWorkspaceSidebarIconGrid = props => _$ssrElement("section", _$mergeProps({
@@ -1758,11 +1801,11 @@ const AppWorkspaceSidebarIconGrid = props => _$ssrElement("section", _$mergeProp
1758
1801
  get when() {
1759
1802
  return props.title;
1760
1803
  },
1761
- children: title => _$ssr(_tmpl$22, _$escape(title()))
1762
- })), _$ssr(_tmpl$41, _$ssrAttribute("data-columns", _$escape(props.columns ?? 2, true), false), _$escape(props.children))], false);
1804
+ children: title => _$ssr(_tmpl$24, _$escape(title()))
1805
+ })), _$ssr(_tmpl$43, _$ssrAttribute("data-columns", _$escape(props.columns ?? 2, true), false), _$escape(props.children))], false);
1763
1806
  const AppWorkspaceSidebarIconAction = props => {
1764
1807
  let target;
1765
- const content = _$ssr(_tmpl$1, _$ssrAttribute("class", _$escape(iconClass(props.icon), true), false));
1808
+ const content = _$ssr(_tmpl$11, _$ssrAttribute("class", _$escape(iconClass(props.icon), true), false));
1766
1809
  const attrs = () => ({
1767
1810
  ref: element => target = element,
1768
1811
  class: `k2b-app-workspace__sidebar-icon-action ${props.active ? "is-active" : ""}`,
@@ -1823,7 +1866,8 @@ const AppWorkspaceSidebarIconAction = props => {
1823
1866
  * host's page title with the way up (see `PageTitle`); the page's own
1824
1867
  * `PageTitle` takes its place. The visible title is no heading, because many
1825
1868
  * pages render their own `h1`. From 64 rem a sidebar that marks the current
1826
- * page names it already: the title and the way up hide, and only on a page
1869
+ * page, or the item a deeper page belongs to, names it already and links the
1870
+ * way up: the title and the way up hide, and only on a page
1827
1871
  * without its own `h1` its heading stays for assistive technology. With an
1828
1872
  * `AppWorkspace.Head` slot the row is always there and also carries the
1829
1873
  * views, the filters, the result count, and the actions; only its title
@@ -1852,19 +1896,19 @@ function AppWorkspaceHead(props) {
1852
1896
  return `@media not all and (min-width:48rem){${host} > .k2b-app-workspace__head,${host} > .k2b-app-workspace__content > .k2b-app-workspace__detail-toggle,${host} > .k2b-app-workspace__content > :is(solid-island, solid-client) > .k2b-app-workspace__detail-toggle{display:none}}`;
1853
1897
  };
1854
1898
  const resetContent = () => filters().reset;
1855
- const primaryContent = () => [_$ssr(_tmpl$1, _$ssrAttribute("class", _$escape(props.head?.primary?.icon, true), false)), _$ssr(_tmpl$43, _$escape(props.head?.primary?.label), _$escape(_$createComponent(Show, {
1899
+ const primaryContent = () => [_$ssr(_tmpl$11, _$ssrAttribute("class", _$escape(props.head?.primary?.icon, true), false)), _$ssr(_tmpl$45, _$escape(props.head?.primary?.label), _$escape(_$createComponent(Show, {
1856
1900
  get when() {
1857
1901
  return props.head?.primary?.popup;
1858
1902
  },
1859
1903
  get children() {
1860
- return _$ssr(_tmpl$42);
1904
+ return _$ssr(_tmpl$44);
1861
1905
  }
1862
1906
  })))];
1863
- return _$ssr(_tmpl$49, _$ssrAttribute("data-trail", trail()?.ancestors.length ? "up" : trail() ? "title" : _$escape(undefined, true), false) + _$ssrAttribute("data-row", props.head ? "" : _$escape(undefined, true), false) + _$ssrAttribute("data-workspace-head-pane", _$escape(mobilePane(), true), false), _$escape(_$createComponent(Show, {
1907
+ return _$ssr(_tmpl$51, _$ssrAttribute("data-trail", trail()?.ancestors.length ? "up" : trail() ? "title" : _$escape(undefined, true), false) + _$ssrAttribute("data-row", props.head ? "" : _$escape(undefined, true), false) + _$ssrAttribute("data-workspace-head-pane", _$escape(mobilePane(), true), false), _$escape(_$createComponent(Show, {
1864
1908
  get when() {
1865
1909
  return mobilePane();
1866
1910
  },
1867
- children: pane => _$ssr(_tmpl$6, mobilePaneRule(pane()))
1911
+ children: pane => _$ssr(_tmpl$8, mobilePaneRule(pane()))
1868
1912
  })), _$escape(_$createComponent(IconButton, {
1869
1913
  "class": "k2b-app-workspace__head-toggle",
1870
1914
  get label() {
@@ -1876,7 +1920,7 @@ function AppWorkspaceHead(props) {
1876
1920
  "aria-expanded": "false",
1877
1921
  "data-app-workspace-sidebar-toggle": "",
1878
1922
  get children() {
1879
- return _$ssr(_tmpl$44);
1923
+ return _$ssr(_tmpl$46);
1880
1924
  }
1881
1925
  })), _$escape(_$createComponent(Show, {
1882
1926
  get when() {
@@ -1888,20 +1932,20 @@ function AppWorkspaceHead(props) {
1888
1932
  },
1889
1933
  as: "p",
1890
1934
  fallback: true
1891
- }), _$ssr(_tmpl$50, _$ssrAttribute("data-k2b-server", isServer ? "" : _$escape(undefined, true), false), _$escape(current().title))]
1935
+ }), _$ssr(_tmpl$52, _$ssrAttribute("data-k2b-server", isServer ? "" : _$escape(undefined, true), false), _$escape(current().title))]
1892
1936
  })), _$escape(_$createComponent(Show, {
1893
1937
  get when() {
1894
1938
  return resolvedViews.toArray().some(Boolean);
1895
1939
  },
1896
1940
  get children() {
1897
- return _$ssr(_tmpl$45, _$escape(resolvedViews()));
1941
+ return _$ssr(_tmpl$47, _$escape(resolvedViews()));
1898
1942
  }
1899
1943
  })), _$escape(_$createComponent(Show, {
1900
1944
  get when() {
1901
1945
  return resolvedFilters.toArray().some(Boolean) || props.head?.filtered;
1902
1946
  },
1903
1947
  get children() {
1904
- return _$ssr(_tmpl$46, _$ssrAttribute("aria-label", _$escape(filters().filters, true), false), _$escape(resolvedFilters()), _$escape(_$createComponent(Show, {
1948
+ return _$ssr(_tmpl$48, _$ssrAttribute("aria-label", _$escape(filters().filters, true), false), _$escape(resolvedFilters()), _$escape(_$createComponent(Show, {
1905
1949
  get when() {
1906
1950
  return props.head?.filtered;
1907
1951
  },
@@ -1948,14 +1992,14 @@ function AppWorkspaceHead(props) {
1948
1992
  return _$memo(() => !!props.head?.filtered)() && resolvedCount.toArray().some(value => value !== undefined && value !== null && value !== false);
1949
1993
  },
1950
1994
  get children() {
1951
- return _$ssr(_tmpl$47, _$escape(resolvedCount()));
1995
+ return _$ssr(_tmpl$49, _$escape(resolvedCount()));
1952
1996
  }
1953
1997
  })), _$escape(_$createComponent(Show, {
1954
1998
  get when() {
1955
1999
  return resolvedActions.toArray().some(Boolean) || props.head?.primary;
1956
2000
  },
1957
2001
  get children() {
1958
- return _$ssr(_tmpl$48, _$escape(resolvedActions()), _$escape(_$createComponent(Show, {
2002
+ return _$ssr(_tmpl$50, _$escape(resolvedActions()), _$escape(_$createComponent(Show, {
1959
2003
  get when() {
1960
2004
  return props.head?.primary;
1961
2005
  },
@@ -2061,7 +2105,7 @@ const AppWorkspace = props => {
2061
2105
  return _$createComponent(WorkspaceContext.Provider, {
2062
2106
  value: workspace,
2063
2107
  get children() {
2064
- 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(contents()));
2108
+ return _$ssr(_tmpl$53, `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(contents()));
2065
2109
  }
2066
2110
  });
2067
2111
  }
@@ -2076,7 +2120,7 @@ AppWorkspace.LayoutStateProvider = props => _$createComponent(LayoutStateContext
2076
2120
  }
2077
2121
  });
2078
2122
  AppWorkspace.Head = AppWorkspaceHeadSlot;
2079
- AppWorkspace.Content = props => _$ssr(_tmpl$52, `k2b-app-workspace__content ${_$escape(props.class ?? "", true)}`, _$escape(props.children));
2123
+ AppWorkspace.Content = props => _$ssr(_tmpl$54, `k2b-app-workspace__content ${_$escape(props.class ?? "", true)}`, _$escape(props.children));
2080
2124
  AppWorkspace.Main = AppWorkspaceMain;
2081
2125
  AppWorkspace.MainPane = AppWorkspaceMainPane;
2082
2126
  AppWorkspace.Detail = AppWorkspaceDetail;