@flanksource/clicky-ui 0.2.19 → 0.2.20

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 (417) hide show
  1. package/dist/ai.cjs +26 -0
  2. package/dist/ai.cjs.map +1 -0
  3. package/dist/ai.d.ts +2 -0
  4. package/dist/ai.d.ts.map +1 -0
  5. package/dist/ai.js +26 -0
  6. package/dist/ai.js.map +1 -0
  7. package/dist/chat.cjs +7 -0
  8. package/dist/chat.cjs.map +1 -1
  9. package/dist/chat.js +7 -0
  10. package/dist/chat.js.map +1 -1
  11. package/dist/components/FilterBar.cjs +49 -18
  12. package/dist/components/FilterBar.cjs.map +1 -1
  13. package/dist/components/FilterBar.d.ts +0 -2
  14. package/dist/components/FilterBar.d.ts.map +1 -1
  15. package/dist/components/FilterBar.js +50 -19
  16. package/dist/components/FilterBar.js.map +1 -1
  17. package/dist/components/SearchInput.cjs +63 -0
  18. package/dist/components/SearchInput.cjs.map +1 -0
  19. package/dist/components/SearchInput.d.ts +31 -0
  20. package/dist/components/SearchInput.d.ts.map +1 -0
  21. package/dist/components/SearchInput.js +63 -0
  22. package/dist/components/SearchInput.js.map +1 -0
  23. package/dist/components/SegmentedControl.cjs +88 -0
  24. package/dist/components/SegmentedControl.cjs.map +1 -0
  25. package/dist/components/SegmentedControl.d.ts +38 -0
  26. package/dist/components/SegmentedControl.d.ts.map +1 -0
  27. package/dist/components/SegmentedControl.js +88 -0
  28. package/dist/components/SegmentedControl.js.map +1 -0
  29. package/dist/components/Switch.cjs +51 -0
  30. package/dist/components/Switch.cjs.map +1 -0
  31. package/dist/components/Switch.d.ts +23 -0
  32. package/dist/components/Switch.d.ts.map +1 -0
  33. package/dist/components/Switch.js +51 -0
  34. package/dist/components/Switch.js.map +1 -0
  35. package/dist/components/TimeRange.cjs +53 -45
  36. package/dist/components/TimeRange.cjs.map +1 -1
  37. package/dist/components/TimeRange.d.ts.map +1 -1
  38. package/dist/components/TimeRange.js +53 -45
  39. package/dist/components/TimeRange.js.map +1 -1
  40. package/dist/components/TreePickerField.cjs +5 -1
  41. package/dist/components/TreePickerField.cjs.map +1 -1
  42. package/dist/components/TreePickerField.d.ts.map +1 -1
  43. package/dist/components/TreePickerField.js +5 -1
  44. package/dist/components/TreePickerField.js.map +1 -1
  45. package/dist/components/filter-bar-utils.cjs +5 -0
  46. package/dist/components/filter-bar-utils.cjs.map +1 -1
  47. package/dist/components/filter-bar-utils.d.ts +2 -0
  48. package/dist/components/filter-bar-utils.d.ts.map +1 -1
  49. package/dist/components/filter-bar-utils.js +5 -0
  50. package/dist/components/filter-bar-utils.js.map +1 -1
  51. package/dist/components/json-schema-form-fields.cjs +8 -2
  52. package/dist/components/json-schema-form-fields.cjs.map +1 -1
  53. package/dist/components/json-schema-form-fields.d.ts.map +1 -1
  54. package/dist/components/json-schema-form-fields.js +8 -2
  55. package/dist/components/json-schema-form-fields.js.map +1 -1
  56. package/dist/components/json-schema-form-resolve.cjs +1 -1
  57. package/dist/components/json-schema-form-resolve.cjs.map +1 -1
  58. package/dist/components/json-schema-form-resolve.js +1 -1
  59. package/dist/components/json-schema-form-resolve.js.map +1 -1
  60. package/dist/components.cjs +15 -1
  61. package/dist/components.cjs.map +1 -1
  62. package/dist/components.d.ts +8 -1
  63. package/dist/components.d.ts.map +1 -1
  64. package/dist/components.js +15 -1
  65. package/dist/components.js.map +1 -1
  66. package/dist/data/Clicky.cjs +33 -44
  67. package/dist/data/Clicky.cjs.map +1 -1
  68. package/dist/data/Clicky.d.ts +0 -9
  69. package/dist/data/Clicky.d.ts.map +1 -1
  70. package/dist/data/Clicky.js +31 -42
  71. package/dist/data/Clicky.js.map +1 -1
  72. package/dist/data/DataTable.cjs +73 -50
  73. package/dist/data/DataTable.cjs.map +1 -1
  74. package/dist/data/DataTable.d.ts +4 -0
  75. package/dist/data/DataTable.d.ts.map +1 -1
  76. package/dist/data/DataTable.js +73 -50
  77. package/dist/data/DataTable.js.map +1 -1
  78. package/dist/data/Icon.cjs +2 -5
  79. package/dist/data/Icon.cjs.map +1 -1
  80. package/dist/data/Icon.d.ts +1 -21
  81. package/dist/data/Icon.d.ts.map +1 -1
  82. package/dist/data/Icon.js +3 -6
  83. package/dist/data/Icon.js.map +1 -1
  84. package/dist/data/MatrixTable.cjs +4 -4
  85. package/dist/data/MatrixTable.cjs.map +1 -1
  86. package/dist/data/MatrixTable.js +4 -4
  87. package/dist/data/MatrixTable.js.map +1 -1
  88. package/dist/data/RadialGauge.cjs +76 -0
  89. package/dist/data/RadialGauge.cjs.map +1 -0
  90. package/dist/data/RadialGauge.d.ts +24 -0
  91. package/dist/data/RadialGauge.d.ts.map +1 -0
  92. package/dist/data/RadialGauge.js +76 -0
  93. package/dist/data/RadialGauge.js.map +1 -0
  94. package/dist/data/StatusBreakdown.cjs +0 -4
  95. package/dist/data/StatusBreakdown.cjs.map +1 -1
  96. package/dist/data/StatusBreakdown.d.ts +0 -2
  97. package/dist/data/StatusBreakdown.d.ts.map +1 -1
  98. package/dist/data/StatusBreakdown.js +1 -5
  99. package/dist/data/StatusBreakdown.js.map +1 -1
  100. package/dist/data/Timeline.cjs +61 -0
  101. package/dist/data/Timeline.cjs.map +1 -0
  102. package/dist/data/Timeline.d.ts +36 -0
  103. package/dist/data/Timeline.d.ts.map +1 -0
  104. package/dist/data/Timeline.js +61 -0
  105. package/dist/data/Timeline.js.map +1 -0
  106. package/dist/data/TimeseriesCoreBars.cjs +2 -25
  107. package/dist/data/TimeseriesCoreBars.cjs.map +1 -1
  108. package/dist/data/TimeseriesCoreBars.d.ts +0 -19
  109. package/dist/data/TimeseriesCoreBars.d.ts.map +1 -1
  110. package/dist/data/TimeseriesCoreBars.js +2 -25
  111. package/dist/data/TimeseriesCoreBars.js.map +1 -1
  112. package/dist/data/TimeseriesCoreBars.model.cjs +27 -0
  113. package/dist/data/TimeseriesCoreBars.model.cjs.map +1 -0
  114. package/dist/data/TimeseriesCoreBars.model.d.ts +20 -0
  115. package/dist/data/TimeseriesCoreBars.model.d.ts.map +1 -0
  116. package/dist/data/TimeseriesCoreBars.model.js +27 -0
  117. package/dist/data/TimeseriesCoreBars.model.js.map +1 -0
  118. package/dist/data/TimeseriesPanel.axes.cjs.map +1 -1
  119. package/dist/data/TimeseriesPanel.axes.d.ts +1 -1
  120. package/dist/data/TimeseriesPanel.axes.d.ts.map +1 -1
  121. package/dist/data/TimeseriesPanel.axes.js.map +1 -1
  122. package/dist/data/TimeseriesPanel.cjs +4 -54
  123. package/dist/data/TimeseriesPanel.cjs.map +1 -1
  124. package/dist/data/TimeseriesPanel.d.ts +2 -138
  125. package/dist/data/TimeseriesPanel.d.ts.map +1 -1
  126. package/dist/data/TimeseriesPanel.js +2 -52
  127. package/dist/data/TimeseriesPanel.js.map +1 -1
  128. package/dist/data/TimeseriesPanel.model.cjs +53 -0
  129. package/dist/data/TimeseriesPanel.model.cjs.map +1 -0
  130. package/dist/data/TimeseriesPanel.model.d.ts +88 -0
  131. package/dist/data/TimeseriesPanel.model.d.ts.map +1 -0
  132. package/dist/data/TimeseriesPanel.model.js +53 -0
  133. package/dist/data/TimeseriesPanel.model.js.map +1 -0
  134. package/dist/data/Tree.cjs +1 -1
  135. package/dist/data/Tree.cjs.map +1 -1
  136. package/dist/data/Tree.js +1 -1
  137. package/dist/data/Tree.js.map +1 -1
  138. package/dist/data/ai/ChatFab.cjs +29 -0
  139. package/dist/data/ai/ChatFab.cjs.map +1 -0
  140. package/dist/data/ai/ChatFab.d.ts +12 -0
  141. package/dist/data/ai/ChatFab.d.ts.map +1 -0
  142. package/dist/data/ai/ChatFab.js +29 -0
  143. package/dist/data/ai/ChatFab.js.map +1 -0
  144. package/dist/data/ai/ChatWindow.cjs +178 -0
  145. package/dist/data/ai/ChatWindow.cjs.map +1 -0
  146. package/dist/data/ai/ChatWindow.d.ts +38 -0
  147. package/dist/data/ai/ChatWindow.d.ts.map +1 -0
  148. package/dist/data/ai/ChatWindow.js +156 -0
  149. package/dist/data/ai/ChatWindow.js.map +1 -0
  150. package/dist/data/ai/ChatWindowManager.cjs +139 -0
  151. package/dist/data/ai/ChatWindowManager.cjs.map +1 -0
  152. package/dist/data/ai/ChatWindowManager.d.ts +12 -0
  153. package/dist/data/ai/ChatWindowManager.d.ts.map +1 -0
  154. package/dist/data/ai/ChatWindowManager.js +139 -0
  155. package/dist/data/ai/ChatWindowManager.js.map +1 -0
  156. package/dist/data/ai/ContextBadges.cjs +74 -0
  157. package/dist/data/ai/ContextBadges.cjs.map +1 -0
  158. package/dist/data/ai/ContextBadges.d.ts +16 -0
  159. package/dist/data/ai/ContextBadges.d.ts.map +1 -0
  160. package/dist/data/ai/ContextBadges.js +74 -0
  161. package/dist/data/ai/ContextBadges.js.map +1 -0
  162. package/dist/data/ai/ThreadPicker.cjs +148 -0
  163. package/dist/data/ai/ThreadPicker.cjs.map +1 -0
  164. package/dist/data/ai/ThreadPicker.d.ts +37 -0
  165. package/dist/data/ai/ThreadPicker.d.ts.map +1 -0
  166. package/dist/data/ai/ThreadPicker.js +148 -0
  167. package/dist/data/ai/ThreadPicker.js.map +1 -0
  168. package/dist/data/ai/ToolPreferences.cjs +80 -0
  169. package/dist/data/ai/ToolPreferences.cjs.map +1 -0
  170. package/dist/data/ai/ToolPreferences.d.ts +19 -0
  171. package/dist/data/ai/ToolPreferences.d.ts.map +1 -0
  172. package/dist/data/ai/ToolPreferences.js +80 -0
  173. package/dist/data/ai/ToolPreferences.js.map +1 -0
  174. package/dist/data/ai/chat-window-context.cjs +78 -0
  175. package/dist/data/ai/chat-window-context.cjs.map +1 -0
  176. package/dist/data/ai/chat-window-context.d.ts +57 -0
  177. package/dist/data/ai/chat-window-context.d.ts.map +1 -0
  178. package/dist/data/ai/chat-window-context.js +78 -0
  179. package/dist/data/ai/chat-window-context.js.map +1 -0
  180. package/dist/data/ai/context.cjs +43 -0
  181. package/dist/data/ai/context.cjs.map +1 -0
  182. package/dist/data/ai/context.d.ts +35 -0
  183. package/dist/data/ai/context.d.ts.map +1 -0
  184. package/dist/data/ai/context.js +43 -0
  185. package/dist/data/ai/context.js.map +1 -0
  186. package/dist/data/ai/index.d.ts +10 -0
  187. package/dist/data/ai/index.d.ts.map +1 -0
  188. package/dist/data/cache-browser/CacheDetailPanel.cjs +15 -0
  189. package/dist/data/cache-browser/CacheDetailPanel.cjs.map +1 -1
  190. package/dist/data/cache-browser/CacheDetailPanel.d.ts.map +1 -1
  191. package/dist/data/cache-browser/CacheDetailPanel.js +15 -0
  192. package/dist/data/cache-browser/CacheDetailPanel.js.map +1 -1
  193. package/dist/data/cache-browser/cache-browser.fixtures.d.ts +10 -0
  194. package/dist/data/cache-browser/cache-browser.fixtures.d.ts.map +1 -0
  195. package/dist/data/cache-browser/download.cjs +13 -0
  196. package/dist/data/cache-browser/download.cjs.map +1 -0
  197. package/dist/data/cache-browser/download.d.ts +3 -0
  198. package/dist/data/cache-browser/download.d.ts.map +1 -0
  199. package/dist/data/cache-browser/download.js +13 -0
  200. package/dist/data/cache-browser/download.js.map +1 -0
  201. package/dist/data/chat/Chat.cjs +40 -2
  202. package/dist/data/chat/Chat.cjs.map +1 -1
  203. package/dist/data/chat/Chat.d.ts +5 -2
  204. package/dist/data/chat/Chat.d.ts.map +1 -1
  205. package/dist/data/chat/Chat.fixtures.cjs +86 -0
  206. package/dist/data/chat/Chat.fixtures.cjs.map +1 -0
  207. package/dist/data/chat/Chat.fixtures.d.ts +4 -0
  208. package/dist/data/chat/Chat.fixtures.d.ts.map +1 -1
  209. package/dist/data/chat/Chat.fixtures.js +86 -0
  210. package/dist/data/chat/Chat.fixtures.js.map +1 -0
  211. package/dist/data/chat/Chat.js +41 -3
  212. package/dist/data/chat/Chat.js.map +1 -1
  213. package/dist/data/chat/ContextUsage.cjs +99 -0
  214. package/dist/data/chat/ContextUsage.cjs.map +1 -0
  215. package/dist/data/chat/ContextUsage.d.ts +19 -0
  216. package/dist/data/chat/ContextUsage.d.ts.map +1 -0
  217. package/dist/data/chat/ContextUsage.js +99 -0
  218. package/dist/data/chat/ContextUsage.js.map +1 -0
  219. package/dist/data/chat/ModelSelector.cjs +28 -14
  220. package/dist/data/chat/ModelSelector.cjs.map +1 -1
  221. package/dist/data/chat/ModelSelector.d.ts +5 -4
  222. package/dist/data/chat/ModelSelector.d.ts.map +1 -1
  223. package/dist/data/chat/ModelSelector.js +28 -14
  224. package/dist/data/chat/ModelSelector.js.map +1 -1
  225. package/dist/data/chat/clickyOperationsToTools.cjs +21 -1
  226. package/dist/data/chat/clickyOperationsToTools.cjs.map +1 -1
  227. package/dist/data/chat/clickyOperationsToTools.d.ts +5 -4
  228. package/dist/data/chat/clickyOperationsToTools.d.ts.map +1 -1
  229. package/dist/data/chat/clickyOperationsToTools.js +21 -1
  230. package/dist/data/chat/clickyOperationsToTools.js.map +1 -1
  231. package/dist/data/chat/index.d.ts +4 -1
  232. package/dist/data/chat/index.d.ts.map +1 -1
  233. package/dist/data/chat/provider-icons.cjs +15 -0
  234. package/dist/data/chat/provider-icons.cjs.map +1 -0
  235. package/dist/data/chat/provider-icons.d.ts +7 -0
  236. package/dist/data/chat/provider-icons.d.ts.map +1 -0
  237. package/dist/data/chat/provider-icons.js +15 -0
  238. package/dist/data/chat/provider-icons.js.map +1 -0
  239. package/dist/data/chat/types.cjs.map +1 -1
  240. package/dist/data/chat/types.d.ts +41 -9
  241. package/dist/data/chat/types.d.ts.map +1 -1
  242. package/dist/data/chat/types.js.map +1 -1
  243. package/dist/data/clicky-parse.cjs +42 -0
  244. package/dist/data/clicky-parse.cjs.map +1 -0
  245. package/dist/data/clicky-parse.d.ts +11 -0
  246. package/dist/data/clicky-parse.d.ts.map +1 -0
  247. package/dist/data/clicky-parse.js +42 -0
  248. package/dist/data/clicky-parse.js.map +1 -0
  249. package/dist/data/diagnostics/FrameSourceWindow.cjs +0 -4
  250. package/dist/data/diagnostics/FrameSourceWindow.cjs.map +1 -1
  251. package/dist/data/diagnostics/FrameSourceWindow.d.ts +1 -11
  252. package/dist/data/diagnostics/FrameSourceWindow.d.ts.map +1 -1
  253. package/dist/data/diagnostics/FrameSourceWindow.js +1 -5
  254. package/dist/data/diagnostics/FrameSourceWindow.js.map +1 -1
  255. package/dist/data/diagnostics/FrameSourceWindow.utils.cjs +7 -0
  256. package/dist/data/diagnostics/FrameSourceWindow.utils.cjs.map +1 -0
  257. package/dist/data/diagnostics/FrameSourceWindow.utils.d.ts +12 -0
  258. package/dist/data/diagnostics/FrameSourceWindow.utils.d.ts.map +1 -0
  259. package/dist/data/diagnostics/FrameSourceWindow.utils.js +7 -0
  260. package/dist/data/diagnostics/FrameSourceWindow.utils.js.map +1 -0
  261. package/dist/data/diagnostics/JvmStackTrace.cjs +2 -1
  262. package/dist/data/diagnostics/JvmStackTrace.cjs.map +1 -1
  263. package/dist/data/diagnostics/JvmStackTrace.d.ts.map +1 -1
  264. package/dist/data/diagnostics/JvmStackTrace.js +2 -1
  265. package/dist/data/diagnostics/JvmStackTrace.js.map +1 -1
  266. package/dist/data/icon-fallback.cjs +12 -0
  267. package/dist/data/icon-fallback.cjs.map +1 -0
  268. package/dist/data/icon-fallback.d.ts +19 -0
  269. package/dist/data/icon-fallback.d.ts.map +1 -0
  270. package/dist/data/icon-fallback.js +12 -0
  271. package/dist/data/icon-fallback.js.map +1 -0
  272. package/dist/data/status-breakdown-utils.cjs +7 -0
  273. package/dist/data/status-breakdown-utils.cjs.map +1 -0
  274. package/dist/data/status-breakdown-utils.d.ts +4 -0
  275. package/dist/data/status-breakdown-utils.d.ts.map +1 -0
  276. package/dist/data/status-breakdown-utils.js +7 -0
  277. package/dist/data/status-breakdown-utils.js.map +1 -0
  278. package/dist/data/test-runner/TestRunSummary.cjs +36 -0
  279. package/dist/data/test-runner/TestRunSummary.cjs.map +1 -1
  280. package/dist/data/test-runner/TestRunSummary.d.ts +7 -1
  281. package/dist/data/test-runner/TestRunSummary.d.ts.map +1 -1
  282. package/dist/data/test-runner/TestRunSummary.js +36 -0
  283. package/dist/data/test-runner/TestRunSummary.js.map +1 -1
  284. package/dist/data/test-runner/TestRunner.cjs +5 -3
  285. package/dist/data/test-runner/TestRunner.cjs.map +1 -1
  286. package/dist/data/test-runner/TestRunner.d.ts +13 -1
  287. package/dist/data/test-runner/TestRunner.d.ts.map +1 -1
  288. package/dist/data/test-runner/TestRunner.js +5 -3
  289. package/dist/data/test-runner/TestRunner.js.map +1 -1
  290. package/dist/data/version-info.cjs +2 -2
  291. package/dist/data/version-info.js +2 -2
  292. package/dist/data.cjs +19 -6
  293. package/dist/data.cjs.map +1 -1
  294. package/dist/data.d.ts +13 -5
  295. package/dist/data.d.ts.map +1 -1
  296. package/dist/data.js +18 -5
  297. package/dist/data.js.map +1 -1
  298. package/dist/index.cjs +51 -7
  299. package/dist/index.cjs.map +1 -1
  300. package/dist/index.js +50 -6
  301. package/dist/index.js.map +1 -1
  302. package/dist/layout/AppShell.cjs +179 -29
  303. package/dist/layout/AppShell.cjs.map +1 -1
  304. package/dist/layout/AppShell.d.ts +5 -5
  305. package/dist/layout/AppShell.d.ts.map +1 -1
  306. package/dist/layout/AppShell.js +179 -29
  307. package/dist/layout/AppShell.js.map +1 -1
  308. package/dist/layout/AppSidebar.cjs +239 -0
  309. package/dist/layout/AppSidebar.cjs.map +1 -0
  310. package/dist/layout/AppSidebar.d.ts +62 -0
  311. package/dist/layout/AppSidebar.d.ts.map +1 -0
  312. package/dist/layout/AppSidebar.js +239 -0
  313. package/dist/layout/AppSidebar.js.map +1 -0
  314. package/dist/overlay/DropdownMenu.cjs.map +1 -1
  315. package/dist/overlay/DropdownMenu.d.ts.map +1 -1
  316. package/dist/overlay/DropdownMenu.js.map +1 -1
  317. package/dist/overlay/Modal.cjs +4 -2
  318. package/dist/overlay/Modal.cjs.map +1 -1
  319. package/dist/overlay/Modal.d.ts +1 -1
  320. package/dist/overlay/Modal.d.ts.map +1 -1
  321. package/dist/overlay/Modal.js +4 -2
  322. package/dist/overlay/Modal.js.map +1 -1
  323. package/dist/overlay/Toast.cjs +89 -0
  324. package/dist/overlay/Toast.cjs.map +1 -0
  325. package/dist/overlay/Toast.d.ts +14 -0
  326. package/dist/overlay/Toast.d.ts.map +1 -0
  327. package/dist/overlay/Toast.js +89 -0
  328. package/dist/overlay/Toast.js.map +1 -0
  329. package/dist/overlay/toast-context.cjs +12 -0
  330. package/dist/overlay/toast-context.cjs.map +1 -0
  331. package/dist/overlay/toast-context.d.ts +24 -0
  332. package/dist/overlay/toast-context.d.ts.map +1 -0
  333. package/dist/overlay/toast-context.js +12 -0
  334. package/dist/overlay/toast-context.js.map +1 -0
  335. package/dist/rpc/AcceptPicker.cjs +81 -58
  336. package/dist/rpc/AcceptPicker.cjs.map +1 -1
  337. package/dist/rpc/AcceptPicker.d.ts.map +1 -1
  338. package/dist/rpc/AcceptPicker.js +81 -58
  339. package/dist/rpc/AcceptPicker.js.map +1 -1
  340. package/dist/rpc/CommandForm.cjs +5 -35
  341. package/dist/rpc/CommandForm.cjs.map +1 -1
  342. package/dist/rpc/CommandForm.d.ts +0 -3
  343. package/dist/rpc/CommandForm.d.ts.map +1 -1
  344. package/dist/rpc/CommandForm.js +2 -32
  345. package/dist/rpc/CommandForm.js.map +1 -1
  346. package/dist/rpc/CommandOutput.cjs +2 -1
  347. package/dist/rpc/CommandOutput.cjs.map +1 -1
  348. package/dist/rpc/CommandOutput.d.ts.map +1 -1
  349. package/dist/rpc/CommandOutput.js +2 -1
  350. package/dist/rpc/CommandOutput.js.map +1 -1
  351. package/dist/rpc/EntityExplorerApp.cjs +28 -83
  352. package/dist/rpc/EntityExplorerApp.cjs.map +1 -1
  353. package/dist/rpc/EntityExplorerApp.d.ts +1 -4
  354. package/dist/rpc/EntityExplorerApp.d.ts.map +1 -1
  355. package/dist/rpc/EntityExplorerApp.js +13 -68
  356. package/dist/rpc/EntityExplorerApp.js.map +1 -1
  357. package/dist/rpc/OperationCatalog.cjs +2 -2
  358. package/dist/rpc/OperationCatalog.cjs.map +1 -1
  359. package/dist/rpc/OperationCatalog.d.ts +1 -1
  360. package/dist/rpc/OperationCatalog.d.ts.map +1 -1
  361. package/dist/rpc/OperationCatalog.js +1 -1
  362. package/dist/rpc/OperationCatalog.js.map +1 -1
  363. package/dist/rpc/OperationCommandPage.cjs +6 -4
  364. package/dist/rpc/OperationCommandPage.cjs.map +1 -1
  365. package/dist/rpc/OperationCommandPage.d.ts.map +1 -1
  366. package/dist/rpc/OperationCommandPage.js +3 -1
  367. package/dist/rpc/OperationCommandPage.js.map +1 -1
  368. package/dist/rpc/RouterProvider.cjs +10 -0
  369. package/dist/rpc/RouterProvider.cjs.map +1 -0
  370. package/dist/rpc/RouterProvider.d.ts +10 -0
  371. package/dist/rpc/RouterProvider.d.ts.map +1 -0
  372. package/dist/rpc/RouterProvider.js +10 -0
  373. package/dist/rpc/RouterProvider.js.map +1 -0
  374. package/dist/rpc/apiClient.cjs +4 -4
  375. package/dist/rpc/apiClient.cjs.map +1 -1
  376. package/dist/rpc/apiClient.js +4 -4
  377. package/dist/rpc/apiClient.js.map +1 -1
  378. package/dist/rpc/command-form-utils.cjs +43 -0
  379. package/dist/rpc/command-form-utils.cjs.map +1 -0
  380. package/dist/rpc/command-form-utils.d.ts +5 -0
  381. package/dist/rpc/command-form-utils.d.ts.map +1 -0
  382. package/dist/rpc/command-form-utils.js +43 -0
  383. package/dist/rpc/command-form-utils.js.map +1 -0
  384. package/dist/rpc/commandHref.cjs +62 -0
  385. package/dist/rpc/commandHref.cjs.map +1 -0
  386. package/dist/rpc/commandHref.d.ts +7 -0
  387. package/dist/rpc/commandHref.d.ts.map +1 -0
  388. package/dist/rpc/commandHref.js +62 -0
  389. package/dist/rpc/commandHref.js.map +1 -0
  390. package/dist/rpc/formMetadata.cjs +1 -1
  391. package/dist/rpc/formMetadata.cjs.map +1 -1
  392. package/dist/rpc/formMetadata.js +1 -1
  393. package/dist/rpc/formMetadata.js.map +1 -1
  394. package/dist/rpc/router.cjs +83 -0
  395. package/dist/rpc/router.cjs.map +1 -0
  396. package/dist/rpc/router.d.ts +24 -0
  397. package/dist/rpc/router.d.ts.map +1 -0
  398. package/dist/rpc/router.js +83 -0
  399. package/dist/rpc/router.js.map +1 -0
  400. package/dist/rpc/rpc-story-fixtures/orders.fixture.d.ts +3 -0
  401. package/dist/rpc/rpc-story-fixtures/orders.fixture.d.ts.map +1 -0
  402. package/dist/rpc/rpc-story-fixtures/services.fixture.d.ts +3 -0
  403. package/dist/rpc/rpc-story-fixtures/services.fixture.d.ts.map +1 -0
  404. package/dist/rpc/rpc-story-fixtures/surface-fixture.d.ts +24 -0
  405. package/dist/rpc/rpc-story-fixtures/surface-fixture.d.ts.map +1 -0
  406. package/dist/rpc/rpc-story-fixtures/widgets.fixture.d.ts +3 -0
  407. package/dist/rpc/rpc-story-fixtures/widgets.fixture.d.ts.map +1 -0
  408. package/dist/rpc/rpc-story.fixtures.d.ts +16 -0
  409. package/dist/rpc/rpc-story.fixtures.d.ts.map +1 -0
  410. package/dist/rpc.cjs +17 -0
  411. package/dist/rpc.cjs.map +1 -1
  412. package/dist/rpc.d.ts +5 -0
  413. package/dist/rpc.d.ts.map +1 -1
  414. package/dist/rpc.js +18 -1
  415. package/dist/rpc.js.map +1 -1
  416. package/dist/styles.css +1 -1
  417. package/package.json +11 -1
package/dist/index.js CHANGED
@@ -14,6 +14,9 @@ import { Loading, LoadingDots } from "./components/loading.js";
14
14
  import { buttonVariants } from "./components/button-variants.js";
15
15
  import { IconButton } from "./components/IconButton.js";
16
16
  import { SplitButton } from "./components/SplitButton.js";
17
+ import { SegmentedControl } from "./components/SegmentedControl.js";
18
+ import { SearchInput } from "./components/SearchInput.js";
19
+ import { Switch } from "./components/Switch.js";
17
20
  import { FormatOptionsDropdown } from "./components/FormatOptionsDropdown.js";
18
21
  import { CLICKY_FORMAT_OPTIONS } from "./components/format-options.js";
19
22
  import { DateField } from "./components/DateField.js";
@@ -21,7 +24,8 @@ import { DatePicker } from "./components/DatePicker.js";
21
24
  import { DateTimePicker } from "./components/DateTimePicker.js";
22
25
  import { TimeRange } from "./components/TimeRange.js";
23
26
  import { RangeSlider } from "./components/RangeSlider.js";
24
- import { FilterBar, TriStateMultiSelect, applyFilterExtensions } from "./components/FilterBar.js";
27
+ import { FilterBar, TriStateMultiSelect } from "./components/FilterBar.js";
28
+ import { applyFilterExtensions } from "./components/filter-bar-utils.js";
25
29
  import { MultiSelect } from "./components/MultiSelect.js";
26
30
  import { Select } from "./components/select.js";
27
31
  import { Combobox } from "./components/Combobox.js";
@@ -40,6 +44,7 @@ import { DEFAULT_PREFERENCES_STORAGE_KEY, readPreferences, writePreferences } fr
40
44
  import { effectiveProperties, isOpenStringMap, matchesIf, resolveControl } from "./components/json-schema-form-resolve.js";
41
45
  import { SplitPane } from "./layout/SplitPane.js";
42
46
  import { AppShell } from "./layout/AppShell.js";
47
+ import { AppLayout, AppSidebar } from "./layout/AppSidebar.js";
43
48
  import { Panel } from "./layout/Panel.js";
44
49
  import { Tabs } from "./layout/Tabs.js";
45
50
  import { DetailEmptyState, Section } from "./layout/Section.js";
@@ -47,6 +52,8 @@ import { DropdownMenu } from "./overlay/DropdownMenu.js";
47
52
  import { HoverCard } from "./overlay/HoverCard.js";
48
53
  import { Modal } from "./overlay/Modal.js";
49
54
  import { useModalStack } from "./overlay/modalStack.js";
55
+ import { ToastProvider } from "./overlay/Toast.js";
56
+ import { useToast } from "./overlay/toast-context.js";
50
57
  import { AnsiHtml } from "./data/AnsiHtml.js";
51
58
  import { Avatar } from "./data/Avatar.js";
52
59
  import { AvatarBadge } from "./data/AvatarBadge.js";
@@ -63,7 +70,9 @@ import { StatusDot } from "./data/cells/StatusDot.js";
63
70
  import { STATUS_TOKEN_GROUPS, normalizeStatus } from "./data/cells/status-mapping.js";
64
71
  import { FilterPill, FilterPillGroup, FilterSeparator } from "./data/FilterPill.js";
65
72
  import { Gauge } from "./data/Gauge.js";
66
- import { Icon, LabelIcon, setFallbackIconProvider } from "./data/Icon.js";
73
+ import { RadialGauge } from "./data/RadialGauge.js";
74
+ import { Icon, LabelIcon } from "./data/Icon.js";
75
+ import { setFallbackIconProvider } from "./data/icon-fallback.js";
67
76
  import { JsonView } from "./data/JsonView.js";
68
77
  import { KeyValueList } from "./data/KeyValueList.js";
69
78
  import { Properties } from "./data/Properties.js";
@@ -78,15 +87,20 @@ import { ProgressBar } from "./data/ProgressBar.js";
78
87
  import { SignedDeltaBar } from "./data/SignedDeltaBar.js";
79
88
  import { SortableHeader } from "./data/SortableHeader.js";
80
89
  import { TabButton } from "./data/TabButton.js";
81
- import { TimeseriesPanel, resolveBreakdown, resolveSeries } from "./data/TimeseriesPanel.js";
90
+ import { TimeseriesPanel } from "./data/TimeseriesPanel.js";
91
+ import { mergeSeries, resolveBreakdown, resolveSeries } from "./data/TimeseriesPanel.model.js";
92
+ import { assignAxes, latestOf } from "./data/TimeseriesPanel.axes.js";
82
93
  import { TimeseriesGauge } from "./data/TimeseriesGauge.js";
83
- import { TimeseriesCoreBars, deriveCoreBars } from "./data/TimeseriesCoreBars.js";
84
- import { StackedStatusBar, StatusRows, segment } from "./data/StatusBreakdown.js";
94
+ import { TimeseriesCoreBars } from "./data/TimeseriesCoreBars.js";
95
+ import { deriveCoreBars } from "./data/TimeseriesCoreBars.model.js";
96
+ import { StackedStatusBar, StatusRows } from "./data/StatusBreakdown.js";
97
+ import { segment } from "./data/status-breakdown-utils.js";
85
98
  import { Version } from "./data/Version.js";
86
99
  import { getVersionInfo } from "./data/version-info.js";
87
100
  import { Tree } from "./data/Tree.js";
88
101
  import { TreeNode } from "./data/TreeNode.js";
89
102
  import { TreeGroupHeader } from "./data/TreeGroupHeader.js";
103
+ import { Timeline } from "./data/Timeline.js";
90
104
  import { allGroupsTerminal, isTerminalStatus } from "./data/TaskSnapshot.js";
91
105
  import { bucketTasks, logLevelColor, taskSegments, taskStatusBg, taskStatusColor, taskStatusIcon } from "./data/task-status.js";
92
106
  import { TaskProgress } from "./data/TaskProgress.js";
@@ -97,7 +111,8 @@ import { countProcesses, findProcessByPID, processLabel, processStateColor, proc
97
111
  import { countGoroutinesByState, countStackByState, detectDumpFormat, parseGoroutineDump, parseStackDump } from "./data/diagnostics/stacktrace.js";
98
112
  import { countThreadsByState, parseJvmThreadDump } from "./data/diagnostics/jvm-stacktrace.js";
99
113
  import { JvmStackFrameRow, JvmStackTrace } from "./data/diagnostics/JvmStackTrace.js";
100
- import { FrameSourceWindow, frameHasSource } from "./data/diagnostics/FrameSourceWindow.js";
114
+ import { FrameSourceWindow } from "./data/diagnostics/FrameSourceWindow.js";
115
+ import { frameHasSource } from "./data/diagnostics/FrameSourceWindow.utils.js";
101
116
  import { StackTrace } from "./data/diagnostics/RenderedStackTrace.js";
102
117
  import { parseJavaStackTrace } from "./data/diagnostics/stacktrace-parse.js";
103
118
  import { CopyBadge, ErrorDetails, PrettyStackTrace } from "./data/diagnostics/ErrorDetails.js";
@@ -109,6 +124,7 @@ import { EntityExplorerApp } from "./rpc/EntityExplorerApp.js";
109
124
  import { AcceptPicker } from "./rpc/AcceptPicker.js";
110
125
  import { ACCEPT_OPTIONS, VIEW_OPTIONS } from "./rpc/accept-options.js";
111
126
  import { CommandForm } from "./rpc/CommandForm.js";
127
+ import { normalizeParameters, pathParamNames, submitValue } from "./rpc/command-form-utils.js";
112
128
  import { CommandOutput } from "./rpc/CommandOutput.js";
113
129
  import { FilterForm } from "./rpc/FilterForm.js";
114
130
  import { InlineError } from "./rpc/InlineError.js";
@@ -119,6 +135,10 @@ import { EndpointList } from "./rpc/EndpointList.js";
119
135
  import { useOpenAPI, useOperationById, useOperations } from "./rpc/useOperations.js";
120
136
  import { OperationsApiClientError, createOperationsApiClient } from "./rpc/apiClient.js";
121
137
  import { filterOperationsByDomain, findDetailEndpoint, findListEndpoint, normalizeRows, parseJsonBody } from "./rpc/classify.js";
138
+ import { findSurfaceListOperation, getClickySurfaces, makeSurfaceDefinition } from "./rpc/clickyMetadata.js";
139
+ import { buildCommandHref, withBasePath } from "./rpc/commandHref.js";
140
+ import { useBrowserRouter, useMemoryRouter, useRouter } from "./rpc/router.js";
141
+ import { RouterProvider } from "./rpc/RouterProvider.js";
122
142
  import { isPositionalParam } from "./rpc/types.js";
123
143
  import { CacheAdapterRegistry, createCacheRegistry, prefixAdapter } from "./data/cache-browser/adapter.js";
124
144
  import { CacheBrowser } from "./data/cache-browser/CacheBrowser.js";
@@ -406,7 +426,9 @@ export {
406
426
  AVATAR_PALETTE,
407
427
  AcceptPicker,
408
428
  AnsiHtml,
429
+ AppLayout,
409
430
  AppShell,
431
+ AppSidebar,
410
432
  Avatar,
411
433
  AvatarBadge,
412
434
  Badge,
@@ -482,11 +504,15 @@ export {
482
504
  PrettyStackTrace,
483
505
  ProgressBar,
484
506
  Properties,
507
+ RadialGauge,
485
508
  RangeSlider,
509
+ RouterProvider,
486
510
  SIZE_TOKENS,
487
511
  STATUS_TOKEN_GROUPS,
512
+ SearchInput,
488
513
  SecretKeySelector,
489
514
  Section,
515
+ SegmentedControl,
490
516
  Select,
491
517
  SignedDeltaBar,
492
518
  SortableHeader,
@@ -496,6 +522,7 @@ export {
496
522
  StackedStatusBar,
497
523
  StatusDot,
498
524
  StatusRows,
525
+ Switch,
499
526
  TabButton,
500
527
  Tabs,
501
528
  TagActionsProvider,
@@ -516,10 +543,12 @@ export {
516
543
  ThemeProvider,
517
544
  ThemeSwitcher,
518
545
  TimeRange,
546
+ Timeline,
519
547
  TimeseriesCoreBars,
520
548
  TimeseriesGauge,
521
549
  TimeseriesPanel,
522
550
  Timestamp,
551
+ ToastProvider,
523
552
  Tree,
524
553
  TreeGroupHeader,
525
554
  TreeNode,
@@ -1020,8 +1049,10 @@ export {
1020
1049
  allGroupsTerminal,
1021
1050
  annotateRoutePaths,
1022
1051
  applyFilterExtensions,
1052
+ assignAxes,
1023
1053
  badgeVariants,
1024
1054
  bucketTasks,
1055
+ buildCommandHref,
1025
1056
  buttonVariants,
1026
1057
  cacheQueryKeys,
1027
1058
  changeIconAliases,
@@ -1051,6 +1082,7 @@ export {
1051
1082
  findListEndpoint,
1052
1083
  findNodeByRoutePath,
1053
1084
  findProcessByPID,
1085
+ findSurfaceListOperation,
1054
1086
  fnv1a32,
1055
1087
  formatBytes,
1056
1088
  formatBytesPerSecond,
@@ -1066,6 +1098,7 @@ export {
1066
1098
  frameHasSource,
1067
1099
  frameworkIcon,
1068
1100
  getChangeIcon,
1101
+ getClickySurfaces,
1069
1102
  getVersionInfo,
1070
1103
  hasFailed,
1071
1104
  hasPending,
@@ -1077,13 +1110,17 @@ export {
1077
1110
  isPositionalParam,
1078
1111
  isTerminalStatus,
1079
1112
  kindForValue,
1113
+ latestOf,
1080
1114
  loadedWorkloads,
1081
1115
  logLevelColor,
1116
+ makeSurfaceDefinition,
1082
1117
  matchesFilterState,
1083
1118
  matchesIf,
1119
+ mergeSeries,
1084
1120
  modeToFormat,
1085
1121
  normalizeErrorDiagnostics,
1086
1122
  normalizeLogsTableRows,
1123
+ normalizeParameters,
1087
1124
  normalizeRows,
1088
1125
  normalizeStatus,
1089
1126
  normalizeTags,
@@ -1097,6 +1134,7 @@ export {
1097
1134
  parseStackDump,
1098
1135
  parseTimestamp,
1099
1136
  parseWorkloadKey,
1137
+ pathParamNames,
1100
1138
  prefixAdapter,
1101
1139
  processLabel,
1102
1140
  processStateColor,
@@ -1112,6 +1150,7 @@ export {
1112
1150
  splitTagToken,
1113
1151
  statusIconFor,
1114
1152
  statusToneFor,
1153
+ submitValue,
1115
1154
  sum,
1116
1155
  sumNonTaskTests,
1117
1156
  tagActionsFromRecord,
@@ -1122,16 +1161,19 @@ export {
1122
1161
  taskStatusIcon,
1123
1162
  testStatus,
1124
1163
  totalDuration,
1164
+ useBrowserRouter,
1125
1165
  useDensity,
1126
1166
  useDensityValue,
1127
1167
  useForm,
1128
1168
  useHistoryRoute,
1169
+ useMemoryRouter,
1129
1170
  useModalStack,
1130
1171
  useOpenAPI,
1131
1172
  useOperationById,
1132
1173
  useOperations,
1133
1174
  useOptionalTheme,
1134
1175
  useResolvedTheme,
1176
+ useRouter,
1135
1177
  useSort,
1136
1178
  useTagActions,
1137
1179
  useTagActionsValue,
@@ -1139,6 +1181,8 @@ export {
1139
1181
  useTaskRuns,
1140
1182
  useTestRunner,
1141
1183
  useTheme,
1184
+ useToast,
1185
+ withBasePath,
1142
1186
  workloadKey,
1143
1187
  writePreferences
1144
1188
  };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -4,8 +4,11 @@ const jsxRuntime = require("react/jsx-runtime");
4
4
  const react = require("react");
5
5
  const utils = require("../lib/utils.cjs");
6
6
  const Icon = require("../data/Icon.cjs");
7
+ const router = require("../rpc/router.cjs");
7
8
  const SplitPane = require("./SplitPane.cjs");
8
9
  const UiSidebar = require("../icons/components/UiSidebar.cjs");
10
+ const UiMenu = require("../icons/components/UiMenu.cjs");
11
+ const UiClose = require("../icons/components/UiClose.cjs");
9
12
  function readStored(key) {
10
13
  if (!key || typeof window === "undefined") return null;
11
14
  return window.localStorage.getItem(key);
@@ -27,6 +30,7 @@ function AppShell(props) {
27
30
  collapsedStorageKey,
28
31
  sidebarWidth = 240,
29
32
  collapsedWidth = 56,
33
+ mobileSidebarLabel = "Navigation",
30
34
  bodyHeader,
31
35
  bodyActions,
32
36
  bodySidebar,
@@ -40,6 +44,7 @@ function AppShell(props) {
40
44
  contentClassName
41
45
  } = props;
42
46
  const hasSidebar = sidebar !== void 0 || ((navSections == null ? void 0 : navSections.length) ?? 0) > 0;
47
+ const [mobileSidebarOpen, setMobileSidebarOpen] = react.useState(false);
43
48
  const [collapsed, setCollapsed] = react.useState(
44
49
  () => readStored(collapsedStorageKey) === "true" || readStored(collapsedStorageKey) === null && defaultCollapsed
45
50
  );
@@ -47,16 +52,33 @@ function AppShell(props) {
47
52
  if (collapsedStorageKey && typeof window !== "undefined")
48
53
  window.localStorage.setItem(collapsedStorageKey, String(collapsed));
49
54
  }, [collapsed, collapsedStorageKey]);
55
+ react.useEffect(() => {
56
+ if (!mobileSidebarOpen) return;
57
+ const onKeyDown = (event) => {
58
+ if (event.key === "Escape") setMobileSidebarOpen(false);
59
+ };
60
+ document.addEventListener("keydown", onKeyDown);
61
+ return () => document.removeEventListener("keydown", onKeyDown);
62
+ }, [mobileSidebarOpen]);
50
63
  const railWidth = collapsed ? collapsedWidth : sidebarWidth;
51
64
  const hasTopBar = !hasSidebar && brand !== void 0 || nav !== void 0 || search !== void 0 || actions !== void 0 || toolbar !== void 0;
65
+ const hasMobileHeader = hasSidebar;
52
66
  const hasBodyHeader = bodyHeader !== void 0 || bodyActions !== void 0;
67
+ const renderSidebarContent = (collapsedValue, onNavigate) => typeof sidebar === "function" ? sidebar(collapsedValue) : sidebar !== void 0 ? sidebar : navSections && /* @__PURE__ */ jsxRuntime.jsx(
68
+ NavSections,
69
+ {
70
+ sections: navSections,
71
+ collapsed: collapsedValue,
72
+ ...onNavigate ? { onNavigate } : {}
73
+ }
74
+ );
53
75
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: utils.cn("flex h-full min-h-0 w-full bg-background", className), children: [
54
76
  hasSidebar && /* @__PURE__ */ jsxRuntime.jsxs(
55
77
  "aside",
56
78
  {
57
79
  style: { width: railWidth },
58
80
  className: utils.cn(
59
- "flex shrink-0 flex-col overflow-hidden border-r border-sidebar-border bg-sidebar text-sidebar-foreground transition-[width] duration-200",
81
+ "hidden shrink-0 flex-col overflow-hidden border-r border-sidebar-border bg-sidebar text-sidebar-foreground transition-[width] duration-200 md:flex",
60
82
  sidebarClassName
61
83
  ),
62
84
  children: [
@@ -84,17 +106,38 @@ function AppShell(props) {
84
106
  }
85
107
  ),
86
108
  sidebarHeader && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 border-b border-sidebar-border px-density-3 py-density-2", children: sidebarHeader }),
87
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-0 flex-1 overflow-y-auto py-density-2", children: typeof sidebar === "function" ? sidebar(collapsed) : sidebar !== void 0 ? sidebar : navSections && /* @__PURE__ */ jsxRuntime.jsx(NavSections, { sections: navSections, collapsed }) }),
109
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-0 flex-1 overflow-y-auto py-density-2", children: renderSidebarContent(collapsed) }),
88
110
  sidebarFooter && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-auto shrink-0 border-t border-sidebar-border px-density-3 py-density-2", children: sidebarFooter })
89
111
  ]
90
112
  }
91
113
  ),
92
114
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-h-0 min-w-0 flex-1 flex-col", children: [
93
- hasTopBar && /* @__PURE__ */ jsxRuntime.jsxs("header", { className: "shrink-0 border-b border-border bg-card", children: [
115
+ (hasTopBar || hasMobileHeader) && /* @__PURE__ */ jsxRuntime.jsxs("header", { className: "shrink-0 border-b border-border bg-card", children: [
116
+ hasMobileHeader && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-density-2 px-density-3 py-density-2 md:hidden", children: [
117
+ /* @__PURE__ */ jsxRuntime.jsx(
118
+ "button",
119
+ {
120
+ type: "button",
121
+ "aria-label": `Open ${mobileSidebarLabel}`,
122
+ title: mobileSidebarLabel,
123
+ className: "inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-md border border-border bg-background text-foreground transition-colors hover:bg-accent",
124
+ onClick: () => setMobileSidebarOpen(true),
125
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: UiMenu.UiMenu, className: "h-4 w-4" })
126
+ }
127
+ ),
128
+ brand && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex min-w-0 flex-1 items-center gap-density-2", children: brand }),
129
+ actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ml-auto flex shrink-0 items-center gap-density-2", children: actions }),
130
+ search !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "basis-full min-w-0", children: search }),
131
+ nav && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "basis-full min-w-0 overflow-x-auto", children: nav })
132
+ ] }),
94
133
  /* @__PURE__ */ jsxRuntime.jsxs(
95
134
  "div",
96
135
  {
97
- className: utils.cn("flex h-14 items-center gap-density-3 px-density-4", headerClassName),
136
+ className: utils.cn(
137
+ "hidden h-14 items-center gap-density-3 px-density-4 md:flex",
138
+ !hasSidebar && "flex",
139
+ headerClassName
140
+ ),
98
141
  children: [
99
142
  !hasSidebar && brand && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex shrink-0 items-center gap-density-2", children: brand }),
100
143
  nav && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex shrink-0 items-center", children: nav }),
@@ -108,7 +151,7 @@ function AppShell(props) {
108
151
  "div",
109
152
  {
110
153
  className: utils.cn(
111
- "flex items-center gap-density-2 border-t border-border bg-muted px-density-4 py-density-2",
154
+ "flex flex-wrap items-center gap-density-2 border-t border-border bg-muted px-density-3 py-density-2 md:px-density-4",
112
155
  toolbarClassName
113
156
  ),
114
157
  children: toolbar
@@ -119,64 +162,171 @@ function AppShell(props) {
119
162
  "div",
120
163
  {
121
164
  className: utils.cn(
122
- "flex shrink-0 items-start justify-between gap-density-3 border-b border-border bg-card px-density-4 py-density-2",
165
+ "flex shrink-0 flex-col items-stretch gap-density-2 border-b border-border bg-card px-density-3 py-density-2 md:flex-row md:items-start md:justify-between md:gap-density-3 md:px-density-4",
123
166
  bodyHeaderClassName
124
167
  ),
125
168
  children: [
126
169
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 flex-1", children: bodyHeader }),
127
- bodyActions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex shrink-0 items-center gap-density-2", children: bodyActions })
170
+ bodyActions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex shrink-0 flex-wrap items-center gap-density-2", children: bodyActions })
128
171
  ]
129
172
  }
130
173
  ),
131
- bodySidebar !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx(
132
- SplitPane.SplitPane,
174
+ bodySidebar !== void 0 ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
175
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-h-0 flex-1 flex-col overflow-hidden md:hidden", children: [
176
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-h-[40vh] shrink-0 overflow-y-auto border-b border-border bg-background", children: bodySidebar }),
177
+ /* @__PURE__ */ jsxRuntime.jsx(
178
+ "main",
179
+ {
180
+ className: utils.cn(
181
+ "min-h-0 min-w-0 flex-1 overflow-auto",
182
+ contentClassName
183
+ ),
184
+ children
185
+ }
186
+ )
187
+ ] }),
188
+ /* @__PURE__ */ jsxRuntime.jsx(
189
+ SplitPane.SplitPane,
190
+ {
191
+ className: "hidden min-h-0 flex-1 md:flex",
192
+ defaultSplit: bodySplit,
193
+ minLeft: 12,
194
+ minRight: 30,
195
+ left: bodySidebar,
196
+ right: /* @__PURE__ */ jsxRuntime.jsx("div", { className: utils.cn("h-full min-w-0", contentClassName), children }),
197
+ rightClass: "overflow-y-auto"
198
+ }
199
+ )
200
+ ] }) : /* @__PURE__ */ jsxRuntime.jsx(
201
+ "main",
133
202
  {
134
- className: "min-h-0 flex-1",
135
- defaultSplit: bodySplit,
136
- minLeft: 12,
137
- minRight: 30,
138
- left: bodySidebar,
139
- right: /* @__PURE__ */ jsxRuntime.jsx("div", { className: utils.cn("h-full min-w-0", contentClassName), children }),
140
- rightClass: "overflow-y-auto"
203
+ className: utils.cn(
204
+ "min-h-0 min-w-0 flex-1 overflow-auto",
205
+ contentClassName
206
+ ),
207
+ children
141
208
  }
142
- ) : /* @__PURE__ */ jsxRuntime.jsx("main", { className: utils.cn("min-h-0 min-w-0 flex-1 overflow-auto", contentClassName), children })
143
- ] })
209
+ )
210
+ ] }),
211
+ hasSidebar && mobileSidebarOpen && /* @__PURE__ */ jsxRuntime.jsxs(
212
+ "div",
213
+ {
214
+ className: "fixed inset-0 z-50 md:hidden",
215
+ role: "presentation",
216
+ onClick: () => setMobileSidebarOpen(false),
217
+ children: [
218
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 bg-black/40" }),
219
+ /* @__PURE__ */ jsxRuntime.jsxs(
220
+ "aside",
221
+ {
222
+ role: "dialog",
223
+ "aria-modal": "true",
224
+ "aria-label": mobileSidebarLabel,
225
+ className: utils.cn(
226
+ "relative z-10 flex h-full w-[min(20rem,85vw)] flex-col overflow-hidden border-r border-sidebar-border bg-sidebar text-sidebar-foreground shadow-xl",
227
+ sidebarClassName
228
+ ),
229
+ onClick: (event) => event.stopPropagation(),
230
+ children: [
231
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-14 shrink-0 items-center justify-between border-b border-sidebar-border px-density-3", children: [
232
+ brand && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex min-w-0 items-center gap-2", children: brand }),
233
+ /* @__PURE__ */ jsxRuntime.jsx(
234
+ "button",
235
+ {
236
+ type: "button",
237
+ "aria-label": `Close ${mobileSidebarLabel}`,
238
+ title: "Close",
239
+ className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-md text-sidebar-foreground/70 transition-colors hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
240
+ onClick: () => setMobileSidebarOpen(false),
241
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: UiClose.UiClose, className: "h-4 w-4" })
242
+ }
243
+ )
244
+ ] }),
245
+ sidebarHeader && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 border-b border-sidebar-border px-density-3 py-density-2", children: sidebarHeader }),
246
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-0 flex-1 overflow-y-auto py-density-2", children: renderSidebarContent(false, () => setMobileSidebarOpen(false)) }),
247
+ sidebarFooter && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-auto shrink-0 border-t border-sidebar-border px-density-3 py-density-2", children: sidebarFooter })
248
+ ]
249
+ }
250
+ )
251
+ ]
252
+ }
253
+ )
144
254
  ] });
145
255
  }
146
256
  function NavSections({
147
257
  sections,
148
- collapsed
258
+ collapsed,
259
+ onNavigate
149
260
  }) {
150
- return /* @__PURE__ */ jsxRuntime.jsx("nav", { className: utils.cn("flex flex-col gap-0.5", collapsed ? "px-2" : "px-density-2"), children: sections.map((section, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col", children: [
151
- section.label && (collapsed ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-2 mb-1 mt-3 border-t border-sidebar-border first:mt-1" }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-0.5 mt-3 px-density-2 text-[10px] font-semibold uppercase tracking-[0.18em] text-sidebar-foreground/55 first:mt-1", children: section.label })),
152
- section.items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(NavItemRow, { item, collapsed }, item.key))
153
- ] }, section.label ?? `section-${i}`)) });
261
+ const { renderLink } = router.useRouter();
262
+ return /* @__PURE__ */ jsxRuntime.jsx(
263
+ "nav",
264
+ {
265
+ className: utils.cn(
266
+ "flex flex-col gap-0.5",
267
+ collapsed ? "px-2" : "px-density-2"
268
+ ),
269
+ children: sections.map((section, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col", children: [
270
+ section.label && (collapsed ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-2 mb-1 mt-3 border-t border-sidebar-border first:mt-1" }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-0.5 mt-3 px-density-2 text-[10px] font-semibold uppercase tracking-[0.18em] text-sidebar-foreground/55 first:mt-1", children: section.label })),
271
+ section.items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
272
+ NavItemRow,
273
+ {
274
+ item,
275
+ collapsed,
276
+ renderLink,
277
+ ...onNavigate ? { onNavigate } : {}
278
+ },
279
+ item.key
280
+ ))
281
+ ] }, section.label ?? `section-${i}`))
282
+ }
283
+ );
154
284
  }
155
- function NavItemRow({ item, collapsed }) {
285
+ function NavItemRow({
286
+ item,
287
+ collapsed,
288
+ renderLink,
289
+ onNavigate
290
+ }) {
156
291
  const className = utils.cn(
157
292
  "flex w-full items-center gap-2.5 rounded-md px-density-2 py-1.5 text-left text-[13px] text-sidebar-foreground transition-colors hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
158
293
  collapsed && "justify-center px-0",
159
294
  item.active && "bg-sidebar-accent font-medium text-sidebar-primary"
160
295
  );
161
296
  const inner = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
162
- item.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex h-4 w-4 shrink-0 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { ...typeof item.icon === "string" ? { name: item.icon } : { icon: item.icon } }) }),
297
+ item.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex h-4 w-4 shrink-0 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
298
+ Icon.Icon,
299
+ {
300
+ ...typeof item.icon === "string" ? { name: item.icon } : { icon: item.icon }
301
+ }
302
+ ) }),
163
303
  !collapsed && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 truncate", children: item.label }),
164
304
  !collapsed && item.badge
165
305
  ] });
166
306
  const title = collapsed && typeof item.label === "string" ? item.label : void 0;
167
- if (item.href) {
307
+ if (item.external) {
168
308
  return /* @__PURE__ */ jsxRuntime.jsx(
169
309
  "a",
170
310
  {
171
- href: item.href,
311
+ href: item.to,
172
312
  className,
173
313
  title,
174
- ...item.external ? { target: "_blank", rel: "noopener noreferrer" } : {},
314
+ target: "_blank",
315
+ rel: "noopener noreferrer",
316
+ onClick: onNavigate,
175
317
  children: inner
176
318
  }
177
319
  );
178
320
  }
179
- return /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", onClick: item.onClick, className, title, children: inner });
321
+ const link = renderLink({
322
+ key: item.key,
323
+ to: item.to,
324
+ className,
325
+ children: inner,
326
+ ...title ? { title } : {}
327
+ });
328
+ if (!onNavigate) return link;
329
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { onClick: onNavigate, children: link });
180
330
  }
181
331
  exports.AppShell = AppShell;
182
332
  //# sourceMappingURL=AppShell.cjs.map