adonisjs-server-stats 1.5.4 → 1.6.2

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 (527) hide show
  1. package/README.md +351 -171
  2. package/dist/configure.d.ts.map +1 -1
  3. package/dist/core/api-client.d.ts +73 -0
  4. package/dist/core/api-client.d.ts.map +1 -0
  5. package/dist/core/config-utils.d.ts +109 -0
  6. package/dist/core/config-utils.d.ts.map +1 -0
  7. package/dist/core/constants.d.ts +11 -0
  8. package/dist/core/constants.d.ts.map +1 -0
  9. package/dist/core/dashboard-api.d.ts +65 -0
  10. package/dist/core/dashboard-api.d.ts.map +1 -0
  11. package/dist/core/dashboard-data-controller.d.ts +157 -0
  12. package/dist/core/dashboard-data-controller.d.ts.map +1 -0
  13. package/dist/core/debug-data-controller.d.ts +89 -0
  14. package/dist/core/debug-data-controller.d.ts.map +1 -0
  15. package/dist/core/feature-detect.d.ts +67 -0
  16. package/dist/core/feature-detect.d.ts.map +1 -0
  17. package/dist/core/formatters.d.ts +189 -0
  18. package/dist/core/formatters.d.ts.map +1 -0
  19. package/dist/core/history-buffer.d.ts +23 -0
  20. package/dist/core/history-buffer.d.ts.map +1 -0
  21. package/dist/core/icons.d.ts +36 -0
  22. package/dist/core/icons.d.ts.map +1 -0
  23. package/dist/core/index.d.ts +39 -0
  24. package/dist/core/index.d.ts.map +1 -0
  25. package/dist/core/index.js +1961 -0
  26. package/dist/core/internals-utils.d.ts +71 -0
  27. package/dist/core/internals-utils.d.ts.map +1 -0
  28. package/dist/core/job-utils.d.ts +45 -0
  29. package/dist/core/job-utils.d.ts.map +1 -0
  30. package/dist/core/log-utils.d.ts +34 -0
  31. package/dist/core/log-utils.d.ts.map +1 -0
  32. package/dist/core/metrics.d.ts +41 -0
  33. package/dist/core/metrics.d.ts.map +1 -0
  34. package/dist/core/pagination.d.ts +128 -0
  35. package/dist/core/pagination.d.ts.map +1 -0
  36. package/dist/core/query-utils.d.ts +35 -0
  37. package/dist/core/query-utils.d.ts.map +1 -0
  38. package/dist/core/resizable-columns.d.ts +18 -0
  39. package/dist/core/resizable-columns.d.ts.map +1 -0
  40. package/dist/core/routes.d.ts +12 -0
  41. package/dist/core/routes.d.ts.map +1 -0
  42. package/dist/core/server-stats-controller.d.ts +106 -0
  43. package/dist/core/server-stats-controller.d.ts.map +1 -0
  44. package/dist/core/sparkline.d.ts +80 -0
  45. package/dist/core/sparkline.d.ts.map +1 -0
  46. package/dist/core/theme.d.ts +42 -0
  47. package/dist/core/theme.d.ts.map +1 -0
  48. package/dist/core/trace-utils.d.ts +62 -0
  49. package/dist/core/trace-utils.d.ts.map +1 -0
  50. package/dist/core/transmit-adapter.d.ts +59 -0
  51. package/dist/core/transmit-adapter.d.ts.map +1 -0
  52. package/dist/core/types.d.ts +619 -0
  53. package/dist/core/types.d.ts.map +1 -0
  54. package/dist/react/CacheSection-DGxMDlWK.js +146 -0
  55. package/dist/react/CacheTab-CnVW5PLs.js +123 -0
  56. package/dist/react/ConfigContent-CnsEI4j3.js +397 -0
  57. package/dist/react/ConfigSection-DPcrfqXY.js +11 -0
  58. package/dist/react/ConfigTab-BSWq_o2p.js +15 -0
  59. package/dist/react/CustomPaneTab-xjkYwTvH.js +104 -0
  60. package/dist/react/DataTable-YyShr5B-.js +55 -0
  61. package/dist/react/EmailsSection-CSyTg1aX.js +262 -0
  62. package/dist/react/EmailsTab-Dh2YSa_f.js +131 -0
  63. package/dist/react/EventsSection-C1pbJDfW.js +86 -0
  64. package/dist/react/EventsTab-eCh02cdd.js +63 -0
  65. package/dist/react/FilterBar-DQRXpWrb.js +50 -0
  66. package/dist/react/InternalsContent-DBzsI0CG.js +346 -0
  67. package/dist/react/InternalsSection-t7ihcWO-.js +32 -0
  68. package/dist/react/InternalsTab-Oij0A2fN.js +30 -0
  69. package/dist/react/JobsSection-CLAin5vU.js +187 -0
  70. package/dist/react/JobsTab-Dl5nrj2z.js +141 -0
  71. package/dist/react/LogsSection-C1p81fXO.js +212 -0
  72. package/dist/react/LogsTab-D-kR7PjX.js +88 -0
  73. package/dist/react/OverviewSection-nm3xdACz.js +539 -0
  74. package/dist/react/Pagination-BkmzUDY8.js +64 -0
  75. package/dist/react/QueriesSection-DB12HMfQ.js +461 -0
  76. package/dist/react/QueriesTab-fyBB1u_Y.js +90 -0
  77. package/dist/react/RequestsSection-DTqB81ac.js +209 -0
  78. package/dist/react/RoutesSection-DJWa4NPV.js +74 -0
  79. package/dist/react/RoutesTab-D3l8TOpu.js +74 -0
  80. package/dist/react/TimelineSection-C4d-jRX1.js +158 -0
  81. package/dist/react/TimelineTab-C5TFaSmQ.js +193 -0
  82. package/dist/react/WaterfallChart-Cj73WdfM.js +100 -0
  83. package/dist/react/core/api-client.d.ts +73 -0
  84. package/dist/react/core/api-client.d.ts.map +1 -0
  85. package/dist/react/core/config-utils.d.ts +109 -0
  86. package/dist/react/core/config-utils.d.ts.map +1 -0
  87. package/dist/react/core/constants.d.ts +11 -0
  88. package/dist/react/core/constants.d.ts.map +1 -0
  89. package/dist/react/core/dashboard-api.d.ts +65 -0
  90. package/dist/react/core/dashboard-api.d.ts.map +1 -0
  91. package/dist/react/core/dashboard-data-controller.d.ts +157 -0
  92. package/dist/react/core/dashboard-data-controller.d.ts.map +1 -0
  93. package/dist/react/core/debug-data-controller.d.ts +89 -0
  94. package/dist/react/core/debug-data-controller.d.ts.map +1 -0
  95. package/dist/react/core/feature-detect.d.ts +67 -0
  96. package/dist/react/core/feature-detect.d.ts.map +1 -0
  97. package/dist/react/core/formatters.d.ts +189 -0
  98. package/dist/react/core/formatters.d.ts.map +1 -0
  99. package/dist/react/core/history-buffer.d.ts +23 -0
  100. package/dist/react/core/history-buffer.d.ts.map +1 -0
  101. package/dist/react/core/icons.d.ts +36 -0
  102. package/dist/react/core/icons.d.ts.map +1 -0
  103. package/dist/react/core/index.d.ts +39 -0
  104. package/dist/react/core/index.d.ts.map +1 -0
  105. package/dist/react/core/internals-utils.d.ts +71 -0
  106. package/dist/react/core/internals-utils.d.ts.map +1 -0
  107. package/dist/react/core/job-utils.d.ts +45 -0
  108. package/dist/react/core/job-utils.d.ts.map +1 -0
  109. package/dist/react/core/log-utils.d.ts +34 -0
  110. package/dist/react/core/log-utils.d.ts.map +1 -0
  111. package/dist/react/core/metrics.d.ts +41 -0
  112. package/dist/react/core/metrics.d.ts.map +1 -0
  113. package/dist/react/core/pagination.d.ts +128 -0
  114. package/dist/react/core/pagination.d.ts.map +1 -0
  115. package/dist/react/core/query-utils.d.ts +35 -0
  116. package/dist/react/core/query-utils.d.ts.map +1 -0
  117. package/dist/react/core/resizable-columns.d.ts +18 -0
  118. package/dist/react/core/resizable-columns.d.ts.map +1 -0
  119. package/dist/react/core/routes.d.ts +12 -0
  120. package/dist/react/core/routes.d.ts.map +1 -0
  121. package/dist/react/core/server-stats-controller.d.ts +106 -0
  122. package/dist/react/core/server-stats-controller.d.ts.map +1 -0
  123. package/dist/react/core/sparkline.d.ts +80 -0
  124. package/dist/react/core/sparkline.d.ts.map +1 -0
  125. package/dist/react/core/theme.d.ts +42 -0
  126. package/dist/react/core/theme.d.ts.map +1 -0
  127. package/dist/react/core/trace-utils.d.ts +62 -0
  128. package/dist/react/core/trace-utils.d.ts.map +1 -0
  129. package/dist/react/core/transmit-adapter.d.ts +59 -0
  130. package/dist/react/core/transmit-adapter.d.ts.map +1 -0
  131. package/dist/react/core/types.d.ts +619 -0
  132. package/dist/react/core/types.d.ts.map +1 -0
  133. package/dist/react/index-UdTfSvtO.js +1074 -0
  134. package/dist/react/index.js +18 -0
  135. package/dist/react/react/components/Dashboard/DashboardPage.d.ts +17 -0
  136. package/dist/react/react/components/Dashboard/DashboardPage.d.ts.map +1 -0
  137. package/dist/react/react/components/Dashboard/sections/CacheSection.d.ts +7 -0
  138. package/dist/react/react/components/Dashboard/sections/CacheSection.d.ts.map +1 -0
  139. package/dist/react/react/components/Dashboard/sections/ConfigSection.d.ts +7 -0
  140. package/dist/react/react/components/Dashboard/sections/ConfigSection.d.ts.map +1 -0
  141. package/dist/react/react/components/Dashboard/sections/EmailsSection.d.ts +7 -0
  142. package/dist/react/react/components/Dashboard/sections/EmailsSection.d.ts.map +1 -0
  143. package/dist/react/react/components/Dashboard/sections/EventsSection.d.ts +7 -0
  144. package/dist/react/react/components/Dashboard/sections/EventsSection.d.ts.map +1 -0
  145. package/dist/react/react/components/Dashboard/sections/InternalsSection.d.ts +14 -0
  146. package/dist/react/react/components/Dashboard/sections/InternalsSection.d.ts.map +1 -0
  147. package/dist/react/react/components/Dashboard/sections/JobsSection.d.ts +7 -0
  148. package/dist/react/react/components/Dashboard/sections/JobsSection.d.ts.map +1 -0
  149. package/dist/react/react/components/Dashboard/sections/LogsSection.d.ts +7 -0
  150. package/dist/react/react/components/Dashboard/sections/LogsSection.d.ts.map +1 -0
  151. package/dist/react/react/components/Dashboard/sections/OverviewSection.d.ts +7 -0
  152. package/dist/react/react/components/Dashboard/sections/OverviewSection.d.ts.map +1 -0
  153. package/dist/react/react/components/Dashboard/sections/QueriesSection.d.ts +7 -0
  154. package/dist/react/react/components/Dashboard/sections/QueriesSection.d.ts.map +1 -0
  155. package/dist/react/react/components/Dashboard/sections/RequestsSection.d.ts +7 -0
  156. package/dist/react/react/components/Dashboard/sections/RequestsSection.d.ts.map +1 -0
  157. package/dist/react/react/components/Dashboard/sections/RoutesSection.d.ts +7 -0
  158. package/dist/react/react/components/Dashboard/sections/RoutesSection.d.ts.map +1 -0
  159. package/dist/react/react/components/Dashboard/sections/TimelineSection.d.ts +9 -0
  160. package/dist/react/react/components/Dashboard/sections/TimelineSection.d.ts.map +1 -0
  161. package/dist/react/react/components/Dashboard/shared/DataTable.d.ts +27 -0
  162. package/dist/react/react/components/Dashboard/shared/DataTable.d.ts.map +1 -0
  163. package/dist/react/react/components/Dashboard/shared/FilterBar.d.ts +17 -0
  164. package/dist/react/react/components/Dashboard/shared/FilterBar.d.ts.map +1 -0
  165. package/dist/react/react/components/Dashboard/shared/Pagination.d.ts +13 -0
  166. package/dist/react/react/components/Dashboard/shared/Pagination.d.ts.map +1 -0
  167. package/dist/react/react/components/Dashboard/shared/TimeRangeSelector.d.ts +12 -0
  168. package/dist/react/react/components/Dashboard/shared/TimeRangeSelector.d.ts.map +1 -0
  169. package/dist/react/react/components/Dashboard/shared/WaterfallChart.d.ts +16 -0
  170. package/dist/react/react/components/Dashboard/shared/WaterfallChart.d.ts.map +1 -0
  171. package/dist/react/react/components/DebugPanel/DebugPanel.d.ts +16 -0
  172. package/dist/react/react/components/DebugPanel/DebugPanel.d.ts.map +1 -0
  173. package/dist/react/react/components/DebugPanel/tabs/CacheTab.d.ts +8 -0
  174. package/dist/react/react/components/DebugPanel/tabs/CacheTab.d.ts.map +1 -0
  175. package/dist/react/react/components/DebugPanel/tabs/ConfigTab.d.ts +8 -0
  176. package/dist/react/react/components/DebugPanel/tabs/ConfigTab.d.ts.map +1 -0
  177. package/dist/react/react/components/DebugPanel/tabs/CustomPaneTab.d.ts +14 -0
  178. package/dist/react/react/components/DebugPanel/tabs/CustomPaneTab.d.ts.map +1 -0
  179. package/dist/react/react/components/DebugPanel/tabs/EmailsTab.d.ts +7 -0
  180. package/dist/react/react/components/DebugPanel/tabs/EmailsTab.d.ts.map +1 -0
  181. package/dist/react/react/components/DebugPanel/tabs/EventsTab.d.ts +7 -0
  182. package/dist/react/react/components/DebugPanel/tabs/EventsTab.d.ts.map +1 -0
  183. package/dist/react/react/components/DebugPanel/tabs/InternalsTab.d.ts +12 -0
  184. package/dist/react/react/components/DebugPanel/tabs/InternalsTab.d.ts.map +1 -0
  185. package/dist/react/react/components/DebugPanel/tabs/JobsTab.d.ts +9 -0
  186. package/dist/react/react/components/DebugPanel/tabs/JobsTab.d.ts.map +1 -0
  187. package/dist/react/react/components/DebugPanel/tabs/LogsTab.d.ts +7 -0
  188. package/dist/react/react/components/DebugPanel/tabs/LogsTab.d.ts.map +1 -0
  189. package/dist/react/react/components/DebugPanel/tabs/QueriesTab.d.ts +7 -0
  190. package/dist/react/react/components/DebugPanel/tabs/QueriesTab.d.ts.map +1 -0
  191. package/dist/react/react/components/DebugPanel/tabs/RoutesTab.d.ts +8 -0
  192. package/dist/react/react/components/DebugPanel/tabs/RoutesTab.d.ts.map +1 -0
  193. package/dist/react/react/components/DebugPanel/tabs/TimelineTab.d.ts +7 -0
  194. package/dist/react/react/components/DebugPanel/tabs/TimelineTab.d.ts.map +1 -0
  195. package/dist/react/react/components/StatsBar/MetricCard.d.ts +21 -0
  196. package/dist/react/react/components/StatsBar/MetricCard.d.ts.map +1 -0
  197. package/dist/react/react/components/StatsBar/Sparkline.d.ts +15 -0
  198. package/dist/react/react/components/StatsBar/Sparkline.d.ts.map +1 -0
  199. package/dist/react/react/components/StatsBar/StatsBar.d.ts +22 -0
  200. package/dist/react/react/components/StatsBar/StatsBar.d.ts.map +1 -0
  201. package/dist/react/react/components/shared/Badge.d.ts +32 -0
  202. package/dist/react/react/components/shared/Badge.d.ts.map +1 -0
  203. package/dist/react/react/components/shared/ConfigContent.d.ts +13 -0
  204. package/dist/react/react/components/shared/ConfigContent.d.ts.map +1 -0
  205. package/dist/react/react/components/shared/InternalsContent.d.ts +10 -0
  206. package/dist/react/react/components/shared/InternalsContent.d.ts.map +1 -0
  207. package/dist/react/react/components/shared/JsonViewer.d.ts +12 -0
  208. package/dist/react/react/components/shared/JsonViewer.d.ts.map +1 -0
  209. package/dist/react/react/components/shared/ThemeToggle.d.ts +13 -0
  210. package/dist/react/react/components/shared/ThemeToggle.d.ts.map +1 -0
  211. package/dist/react/react/components/shared/Tooltip.d.ts +16 -0
  212. package/dist/react/react/components/shared/Tooltip.d.ts.map +1 -0
  213. package/dist/react/react/hooks/useApiClient.d.ts +10 -0
  214. package/dist/react/react/hooks/useApiClient.d.ts.map +1 -0
  215. package/dist/react/react/hooks/useDashboardApiBase.d.ts +19 -0
  216. package/dist/react/react/hooks/useDashboardApiBase.d.ts.map +1 -0
  217. package/dist/react/react/hooks/useDashboardData.d.ts +27 -0
  218. package/dist/react/react/hooks/useDashboardData.d.ts.map +1 -0
  219. package/dist/react/react/hooks/useDebugData.d.ts +17 -0
  220. package/dist/react/react/hooks/useDebugData.d.ts.map +1 -0
  221. package/dist/react/react/hooks/useFeatures.d.ts +13 -0
  222. package/dist/react/react/hooks/useFeatures.d.ts.map +1 -0
  223. package/dist/react/react/hooks/useResizableTable.d.ts +13 -0
  224. package/dist/react/react/hooks/useResizableTable.d.ts.map +1 -0
  225. package/dist/react/react/hooks/useServerStats.d.ts +21 -0
  226. package/dist/react/react/hooks/useServerStats.d.ts.map +1 -0
  227. package/dist/react/react/hooks/useTheme.d.ts +12 -0
  228. package/dist/react/react/hooks/useTheme.d.ts.map +1 -0
  229. package/dist/react/react/index.d.ts +14 -0
  230. package/dist/react/react/index.d.ts.map +1 -0
  231. package/dist/react/style.css +1 -0
  232. package/dist/react/useApiClient-BVtNCmnL.js +9 -0
  233. package/dist/react/useDashboardApiBase-Bi36pJ2L.js +14 -0
  234. package/dist/react/useResizableTable-CNJmACdt.js +13 -0
  235. package/dist/src/collectors/app_collector.d.ts.map +1 -1
  236. package/dist/src/collectors/app_collector.js +30 -2
  237. package/dist/src/collectors/auto_detect.d.ts +31 -0
  238. package/dist/src/collectors/auto_detect.d.ts.map +1 -0
  239. package/dist/src/collectors/auto_detect.js +120 -0
  240. package/dist/src/collectors/collector.d.ts +17 -0
  241. package/dist/src/collectors/collector.d.ts.map +1 -1
  242. package/dist/src/collectors/db_pool_collector.d.ts.map +1 -1
  243. package/dist/src/collectors/db_pool_collector.js +35 -1
  244. package/dist/src/collectors/http_collector.d.ts +4 -3
  245. package/dist/src/collectors/http_collector.d.ts.map +1 -1
  246. package/dist/src/collectors/http_collector.js +28 -11
  247. package/dist/src/collectors/index.d.ts +2 -0
  248. package/dist/src/collectors/index.d.ts.map +1 -1
  249. package/dist/src/collectors/index.js +1 -0
  250. package/dist/src/collectors/log_collector.d.ts +11 -4
  251. package/dist/src/collectors/log_collector.d.ts.map +1 -1
  252. package/dist/src/collectors/log_collector.js +51 -5
  253. package/dist/src/collectors/process_collector.d.ts.map +1 -1
  254. package/dist/src/collectors/process_collector.js +4 -0
  255. package/dist/src/collectors/queue_collector.d.ts.map +1 -1
  256. package/dist/src/collectors/queue_collector.js +55 -1
  257. package/dist/src/collectors/redis_collector.d.ts.map +1 -1
  258. package/dist/src/collectors/redis_collector.js +42 -3
  259. package/dist/src/collectors/system_collector.d.ts.map +1 -1
  260. package/dist/src/collectors/system_collector.js +4 -0
  261. package/dist/src/controller/api_controller.d.ts +101 -0
  262. package/dist/src/controller/api_controller.d.ts.map +1 -0
  263. package/dist/src/controller/api_controller.js +131 -0
  264. package/dist/src/controller/debug_controller.d.ts +19 -10
  265. package/dist/src/controller/debug_controller.d.ts.map +1 -1
  266. package/dist/src/controller/debug_controller.js +118 -101
  267. package/dist/src/core/theme.d.ts +42 -0
  268. package/dist/src/core/theme.d.ts.map +1 -0
  269. package/dist/src/core/theme.js +115 -0
  270. package/dist/src/dashboard/chart_aggregator.d.ts.map +1 -1
  271. package/dist/src/dashboard/chart_aggregator.js +3 -2
  272. package/dist/src/dashboard/dashboard_controller.d.ts +10 -14
  273. package/dist/src/dashboard/dashboard_controller.d.ts.map +1 -1
  274. package/dist/src/dashboard/dashboard_controller.js +132 -250
  275. package/dist/src/dashboard/dashboard_store.d.ts +62 -19
  276. package/dist/src/dashboard/dashboard_store.d.ts.map +1 -1
  277. package/dist/src/dashboard/dashboard_store.js +242 -53
  278. package/dist/src/dashboard/integrations/cache_inspector.d.ts +19 -1
  279. package/dist/src/dashboard/integrations/cache_inspector.d.ts.map +1 -1
  280. package/dist/src/dashboard/integrations/config_inspector.d.ts +1 -1
  281. package/dist/src/dashboard/integrations/config_inspector.d.ts.map +1 -1
  282. package/dist/src/dashboard/integrations/config_inspector.js +3 -2
  283. package/dist/src/dashboard/integrations/queue_inspector.d.ts +55 -10
  284. package/dist/src/dashboard/integrations/queue_inspector.d.ts.map +1 -1
  285. package/dist/src/dashboard/integrations/queue_inspector.js +70 -24
  286. package/dist/src/dashboard/migrator.d.ts +5 -0
  287. package/dist/src/dashboard/migrator.d.ts.map +1 -1
  288. package/dist/src/dashboard/migrator.js +44 -9
  289. package/dist/src/dashboard/models/stats_event.d.ts +1 -1
  290. package/dist/src/dashboard/models/stats_event.d.ts.map +1 -1
  291. package/dist/src/dashboard/models/stats_log.d.ts +1 -1
  292. package/dist/src/dashboard/models/stats_log.d.ts.map +1 -1
  293. package/dist/src/dashboard/models/stats_query.d.ts +1 -1
  294. package/dist/src/dashboard/models/stats_query.d.ts.map +1 -1
  295. package/dist/src/dashboard/models/stats_saved_filter.d.ts +1 -1
  296. package/dist/src/dashboard/models/stats_saved_filter.d.ts.map +1 -1
  297. package/dist/src/dashboard/models/stats_trace.d.ts +2 -1
  298. package/dist/src/dashboard/models/stats_trace.d.ts.map +1 -1
  299. package/dist/src/data/data_access.d.ts +105 -0
  300. package/dist/src/data/data_access.d.ts.map +1 -0
  301. package/dist/src/data/data_access.js +310 -0
  302. package/dist/src/data/index.d.ts +3 -0
  303. package/dist/src/data/index.d.ts.map +1 -0
  304. package/dist/src/data/index.js +1 -0
  305. package/dist/src/debug/debug_store.d.ts +20 -1
  306. package/dist/src/debug/debug_store.d.ts.map +1 -1
  307. package/dist/src/debug/debug_store.js +43 -15
  308. package/dist/src/debug/email_collector.d.ts +6 -2
  309. package/dist/src/debug/email_collector.d.ts.map +1 -1
  310. package/dist/src/debug/email_collector.js +3 -0
  311. package/dist/src/debug/event_collector.d.ts +6 -2
  312. package/dist/src/debug/event_collector.d.ts.map +1 -1
  313. package/dist/src/debug/event_collector.js +12 -8
  314. package/dist/src/debug/query_collector.d.ts +6 -2
  315. package/dist/src/debug/query_collector.d.ts.map +1 -1
  316. package/dist/src/debug/query_collector.js +3 -0
  317. package/dist/src/debug/ring_buffer.d.ts +1 -0
  318. package/dist/src/debug/ring_buffer.d.ts.map +1 -1
  319. package/dist/src/debug/ring_buffer.js +5 -2
  320. package/dist/src/debug/route_inspector.d.ts +2 -2
  321. package/dist/src/debug/route_inspector.d.ts.map +1 -1
  322. package/dist/src/debug/route_inspector.js +4 -3
  323. package/dist/src/debug/trace_collector.d.ts +7 -3
  324. package/dist/src/debug/trace_collector.d.ts.map +1 -1
  325. package/dist/src/debug/trace_collector.js +7 -5
  326. package/dist/src/debug/types.d.ts +107 -2
  327. package/dist/src/debug/types.d.ts.map +1 -1
  328. package/dist/src/debug/types.js +1 -1
  329. package/dist/src/define_config.d.ts +49 -5
  330. package/dist/src/define_config.d.ts.map +1 -1
  331. package/dist/src/define_config.js +361 -4
  332. package/dist/src/edge/bootstrap.d.ts +17 -0
  333. package/dist/src/edge/bootstrap.d.ts.map +1 -0
  334. package/dist/src/edge/bootstrap.js +29 -0
  335. package/dist/src/edge/client/dashboard.js +2 -3619
  336. package/dist/src/edge/client/debug-panel-deferred.js +1 -0
  337. package/dist/src/edge/client/debug-panel.js +1 -2140
  338. package/dist/src/edge/client/stats-bar.js +1 -801
  339. package/dist/src/edge/client-vue/dashboard.js +5 -0
  340. package/dist/src/edge/client-vue/debug-panel-deferred.js +4 -0
  341. package/dist/src/edge/client-vue/debug-panel.js +4 -0
  342. package/dist/src/edge/client-vue/stats-bar.js +4 -0
  343. package/dist/src/edge/plugin.d.ts +35 -2
  344. package/dist/src/edge/plugin.d.ts.map +1 -1
  345. package/dist/src/edge/plugin.js +30 -66
  346. package/dist/src/edge/types.d.ts +46 -0
  347. package/dist/src/edge/types.d.ts.map +1 -0
  348. package/dist/src/edge/types.js +4 -0
  349. package/dist/src/edge/views/dashboard.edge +1 -358
  350. package/dist/src/edge/views/debug-panel.edge +2 -154
  351. package/dist/src/edge/views/stats-bar.edge +15 -48
  352. package/dist/src/engine/stats_engine.d.ts +18 -0
  353. package/dist/src/engine/stats_engine.d.ts.map +1 -1
  354. package/dist/src/engine/stats_engine.js +45 -2
  355. package/dist/src/index.d.ts +1 -1
  356. package/dist/src/index.d.ts.map +1 -1
  357. package/dist/src/log_stream/log_stream_provider.d.ts.map +1 -1
  358. package/dist/src/log_stream/log_stream_provider.js +21 -4
  359. package/dist/src/log_stream/log_stream_service.d.ts +8 -1
  360. package/dist/src/log_stream/log_stream_service.d.ts.map +1 -1
  361. package/dist/src/log_stream/log_stream_service.js +27 -3
  362. package/dist/src/middleware/request_tracking_middleware.d.ts +1 -1
  363. package/dist/src/middleware/request_tracking_middleware.d.ts.map +1 -1
  364. package/dist/src/middleware/request_tracking_middleware.js +21 -6
  365. package/dist/src/prometheus/prometheus_collector.d.ts +2 -1
  366. package/dist/src/prometheus/prometheus_collector.d.ts.map +1 -1
  367. package/dist/src/provider/server_stats_provider.d.ts +100 -0
  368. package/dist/src/provider/server_stats_provider.d.ts.map +1 -1
  369. package/dist/src/provider/server_stats_provider.js +460 -104
  370. package/dist/src/routes/access_middleware.d.ts +2 -1
  371. package/dist/src/routes/access_middleware.d.ts.map +1 -1
  372. package/dist/src/routes/access_middleware.js +7 -1
  373. package/dist/src/routes/index.d.ts +4 -0
  374. package/dist/src/routes/index.d.ts.map +1 -0
  375. package/dist/src/routes/index.js +1 -0
  376. package/dist/src/routes/register_routes.d.ts +103 -0
  377. package/dist/src/routes/register_routes.d.ts.map +1 -0
  378. package/dist/src/routes/register_routes.js +356 -0
  379. package/dist/src/routes/router_types.d.ts +29 -0
  380. package/dist/src/routes/router_types.d.ts.map +1 -0
  381. package/dist/src/routes/router_types.js +1 -0
  382. package/dist/src/stubs/config.stub +12 -32
  383. package/dist/src/styles/components.css +1048 -0
  384. package/dist/src/{edge/client → styles}/dashboard.css +299 -736
  385. package/dist/src/{edge/client → styles}/debug-panel.css +117 -633
  386. package/dist/src/{edge/client → styles}/stats-bar.css +28 -10
  387. package/dist/src/styles/tokens.css +153 -0
  388. package/dist/src/styles/utilities.css +75 -0
  389. package/dist/src/types.d.ts +119 -16
  390. package/dist/src/types.d.ts.map +1 -1
  391. package/dist/src/utils/app_import.d.ts +23 -0
  392. package/dist/src/utils/app_import.d.ts.map +1 -0
  393. package/dist/src/utils/app_import.js +44 -0
  394. package/dist/src/utils/json_helpers.d.ts +2 -2
  395. package/dist/src/utils/json_helpers.d.ts.map +1 -1
  396. package/dist/src/utils/logger.d.ts +17 -0
  397. package/dist/src/utils/logger.d.ts.map +1 -0
  398. package/dist/src/utils/logger.js +27 -0
  399. package/dist/src/utils/mail_helpers.d.ts +1 -1
  400. package/dist/src/utils/mail_helpers.d.ts.map +1 -1
  401. package/dist/src/utils/mail_helpers.js +1 -1
  402. package/dist/vue/CacheSection-C788Yfai.js +149 -0
  403. package/dist/vue/CacheTab-BPisYYiQ.js +104 -0
  404. package/dist/vue/ConfigSection-CRzYxqW2.js +576 -0
  405. package/dist/vue/ConfigTab-C8cafGUj.js +361 -0
  406. package/dist/vue/CustomPaneTab-BJxT5Dp7.js +172 -0
  407. package/dist/vue/EmailsSection-C8JFMtW7.js +206 -0
  408. package/dist/vue/EmailsTab-DhFhoNmU.js +157 -0
  409. package/dist/vue/EventsSection-C4wXUgxG.js +107 -0
  410. package/dist/vue/EventsTab-DQ4Nd6AK.js +97 -0
  411. package/dist/vue/FilterBar.vue_vue_type_script_setup_true_lang-ClJ37hhT.js +62 -0
  412. package/dist/vue/InternalsSection-BJUXE-5F.js +468 -0
  413. package/dist/vue/InternalsTab-DEMjqtlw.js +471 -0
  414. package/dist/vue/JobsSection-CsKWTjgN.js +187 -0
  415. package/dist/vue/JobsTab-BCvhOARO.js +117 -0
  416. package/dist/vue/JsonViewer.vue_vue_type_script_setup_true_lang-Vsqar1zx.js +67 -0
  417. package/dist/vue/LogsSection-BFVjSZ24.js +227 -0
  418. package/dist/vue/LogsTab-DpEQ7euu.js +122 -0
  419. package/dist/vue/OverviewSection-CbMdAido.js +849 -0
  420. package/dist/vue/PaginationControls.vue_vue_type_script_setup_true_lang-CuN7g_8Z.js +50 -0
  421. package/dist/vue/QueriesSection-BPiv7u3r.js +429 -0
  422. package/dist/vue/QueriesTab-C8_7oprC.js +107 -0
  423. package/dist/vue/RequestsSection-LtImH4rD.js +243 -0
  424. package/dist/vue/RoutesSection-CrxOxmzx.js +106 -0
  425. package/dist/vue/RoutesTab-Dz0MkZuF.js +80 -0
  426. package/dist/vue/TimelineSection-DLxMW2J_.js +186 -0
  427. package/dist/vue/TimelineTab-Db6lKKsD.js +250 -0
  428. package/dist/vue/WaterfallChart.vue_vue_type_script_setup_true_lang-tZ13cNj1.js +118 -0
  429. package/dist/vue/components/Dashboard/DashboardPage.vue.d.ts +18 -0
  430. package/dist/vue/components/Dashboard/DashboardPage.vue.d.ts.map +1 -0
  431. package/dist/vue/components/Dashboard/sections/CacheSection.vue.d.ts +5 -0
  432. package/dist/vue/components/Dashboard/sections/CacheSection.vue.d.ts.map +1 -0
  433. package/dist/vue/components/Dashboard/sections/ConfigSection.vue.d.ts +3 -0
  434. package/dist/vue/components/Dashboard/sections/ConfigSection.vue.d.ts.map +1 -0
  435. package/dist/vue/components/Dashboard/sections/EmailsSection.vue.d.ts +5 -0
  436. package/dist/vue/components/Dashboard/sections/EmailsSection.vue.d.ts.map +1 -0
  437. package/dist/vue/components/Dashboard/sections/EventsSection.vue.d.ts +5 -0
  438. package/dist/vue/components/Dashboard/sections/EventsSection.vue.d.ts.map +1 -0
  439. package/dist/vue/components/Dashboard/sections/InternalsSection.vue.d.ts +3 -0
  440. package/dist/vue/components/Dashboard/sections/InternalsSection.vue.d.ts.map +1 -0
  441. package/dist/vue/components/Dashboard/sections/JobsSection.vue.d.ts +5 -0
  442. package/dist/vue/components/Dashboard/sections/JobsSection.vue.d.ts.map +1 -0
  443. package/dist/vue/components/Dashboard/sections/LogsSection.vue.d.ts +3 -0
  444. package/dist/vue/components/Dashboard/sections/LogsSection.vue.d.ts.map +1 -0
  445. package/dist/vue/components/Dashboard/sections/OverviewSection.vue.d.ts +5 -0
  446. package/dist/vue/components/Dashboard/sections/OverviewSection.vue.d.ts.map +1 -0
  447. package/dist/vue/components/Dashboard/sections/QueriesSection.vue.d.ts +45 -0
  448. package/dist/vue/components/Dashboard/sections/QueriesSection.vue.d.ts.map +1 -0
  449. package/dist/vue/components/Dashboard/sections/RequestsSection.vue.d.ts +5 -0
  450. package/dist/vue/components/Dashboard/sections/RequestsSection.vue.d.ts.map +1 -0
  451. package/dist/vue/components/Dashboard/sections/RoutesSection.vue.d.ts +5 -0
  452. package/dist/vue/components/Dashboard/sections/RoutesSection.vue.d.ts.map +1 -0
  453. package/dist/vue/components/Dashboard/sections/TimelineSection.vue.d.ts +11 -0
  454. package/dist/vue/components/Dashboard/sections/TimelineSection.vue.d.ts.map +1 -0
  455. package/dist/vue/components/Dashboard/shared/FilterBar.vue.d.ts +29 -0
  456. package/dist/vue/components/Dashboard/shared/FilterBar.vue.d.ts.map +1 -0
  457. package/dist/vue/components/Dashboard/shared/PaginationControls.vue.d.ts +12 -0
  458. package/dist/vue/components/Dashboard/shared/PaginationControls.vue.d.ts.map +1 -0
  459. package/dist/vue/components/Dashboard/shared/TimeRangeSelector.vue.d.ts +11 -0
  460. package/dist/vue/components/Dashboard/shared/TimeRangeSelector.vue.d.ts.map +1 -0
  461. package/dist/vue/components/Dashboard/shared/WaterfallChart.vue.d.ts +10 -0
  462. package/dist/vue/components/Dashboard/shared/WaterfallChart.vue.d.ts.map +1 -0
  463. package/dist/vue/components/DebugPanel/DebugPanel.vue.d.ts +21 -0
  464. package/dist/vue/components/DebugPanel/DebugPanel.vue.d.ts.map +1 -0
  465. package/dist/vue/components/DebugPanel/tabs/CacheTab.vue.d.ts +12 -0
  466. package/dist/vue/components/DebugPanel/tabs/CacheTab.vue.d.ts.map +1 -0
  467. package/dist/vue/components/DebugPanel/tabs/ConfigTab.vue.d.ts +11 -0
  468. package/dist/vue/components/DebugPanel/tabs/ConfigTab.vue.d.ts.map +1 -0
  469. package/dist/vue/components/DebugPanel/tabs/CustomPaneTab.vue.d.ts +11 -0
  470. package/dist/vue/components/DebugPanel/tabs/CustomPaneTab.vue.d.ts.map +1 -0
  471. package/dist/vue/components/DebugPanel/tabs/EmailsTab.vue.d.ts +12 -0
  472. package/dist/vue/components/DebugPanel/tabs/EmailsTab.vue.d.ts.map +1 -0
  473. package/dist/vue/components/DebugPanel/tabs/EventsTab.vue.d.ts +12 -0
  474. package/dist/vue/components/DebugPanel/tabs/EventsTab.vue.d.ts.map +1 -0
  475. package/dist/vue/components/DebugPanel/tabs/InternalsTab.vue.d.ts +11 -0
  476. package/dist/vue/components/DebugPanel/tabs/InternalsTab.vue.d.ts.map +1 -0
  477. package/dist/vue/components/DebugPanel/tabs/JobsTab.vue.d.ts +13 -0
  478. package/dist/vue/components/DebugPanel/tabs/JobsTab.vue.d.ts.map +1 -0
  479. package/dist/vue/components/DebugPanel/tabs/LogsTab.vue.d.ts +15 -0
  480. package/dist/vue/components/DebugPanel/tabs/LogsTab.vue.d.ts.map +1 -0
  481. package/dist/vue/components/DebugPanel/tabs/QueriesTab.vue.d.ts +12 -0
  482. package/dist/vue/components/DebugPanel/tabs/QueriesTab.vue.d.ts.map +1 -0
  483. package/dist/vue/components/DebugPanel/tabs/RoutesTab.vue.d.ts +12 -0
  484. package/dist/vue/components/DebugPanel/tabs/RoutesTab.vue.d.ts.map +1 -0
  485. package/dist/vue/components/DebugPanel/tabs/TimelineTab.vue.d.ts +15 -0
  486. package/dist/vue/components/DebugPanel/tabs/TimelineTab.vue.d.ts.map +1 -0
  487. package/dist/vue/components/StatsBar/MetricCard.vue.d.ts +19 -0
  488. package/dist/vue/components/StatsBar/MetricCard.vue.d.ts.map +1 -0
  489. package/dist/vue/components/StatsBar/Sparkline.vue.d.ts +17 -0
  490. package/dist/vue/components/StatsBar/Sparkline.vue.d.ts.map +1 -0
  491. package/dist/vue/components/StatsBar/StatsBar.vue.d.ts +22 -0
  492. package/dist/vue/components/StatsBar/StatsBar.vue.d.ts.map +1 -0
  493. package/dist/vue/components/shared/JsonViewer.vue.d.ts +13 -0
  494. package/dist/vue/components/shared/JsonViewer.vue.d.ts.map +1 -0
  495. package/dist/vue/components/shared/ThemeToggle.vue.d.ts +8 -0
  496. package/dist/vue/components/shared/ThemeToggle.vue.d.ts.map +1 -0
  497. package/dist/vue/composables/useApiClient.d.ts +9 -0
  498. package/dist/vue/composables/useApiClient.d.ts.map +1 -0
  499. package/dist/vue/composables/useDashboardData.d.ts +53 -0
  500. package/dist/vue/composables/useDashboardData.d.ts.map +1 -0
  501. package/dist/vue/composables/useDebugData.d.ts +25 -0
  502. package/dist/vue/composables/useDebugData.d.ts.map +1 -0
  503. package/dist/vue/composables/useFeatures.d.ts +80 -0
  504. package/dist/vue/composables/useFeatures.d.ts.map +1 -0
  505. package/dist/vue/composables/useResizableTable.d.ts +16 -0
  506. package/dist/vue/composables/useResizableTable.d.ts.map +1 -0
  507. package/dist/vue/composables/useServerStats.d.ts +104 -0
  508. package/dist/vue/composables/useServerStats.d.ts.map +1 -0
  509. package/dist/vue/composables/useTheme.d.ts +6 -0
  510. package/dist/vue/composables/useTheme.d.ts.map +1 -0
  511. package/dist/vue/index-qCQpBftQ.js +1233 -0
  512. package/dist/vue/index.d.ts +10 -0
  513. package/dist/vue/index.d.ts.map +1 -0
  514. package/dist/vue/index.js +11 -0
  515. package/dist/vue/style.css +1 -0
  516. package/dist/vue/useApiClient-BQQ9CF-q.js +10 -0
  517. package/dist/vue/useResizableTable-BoivAevK.js +17 -0
  518. package/package.json +72 -10
  519. package/dist/src/dashboard/dashboard_routes.d.ts +0 -16
  520. package/dist/src/dashboard/dashboard_routes.d.ts.map +0 -1
  521. package/dist/src/dashboard/dashboard_routes.js +0 -77
  522. package/dist/src/routes/debug_routes.d.ts +0 -14
  523. package/dist/src/routes/debug_routes.d.ts.map +0 -1
  524. package/dist/src/routes/debug_routes.js +0 -42
  525. package/dist/src/routes/stats_routes.d.ts +0 -14
  526. package/dist/src/routes/stats_routes.d.ts.map +0 -1
  527. package/dist/src/routes/stats_routes.js +0 -27
@@ -38,7 +38,6 @@
38
38
  --ss-reqid-fg: #6d28d9;
39
39
  --ss-reqid-hover-bg: #2e2644;
40
40
  --ss-reqid-hover-fg: #a78bfa;
41
-
42
41
  position: fixed;
43
42
  inset-inline: 0;
44
43
  bottom: 28px;
@@ -51,6 +50,7 @@
51
50
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
52
51
  color: var(--ss-text);
53
52
  box-shadow: 0 -8px 24px var(--ss-shadow);
53
+ overflow-x: hidden;
54
54
  }
55
55
 
56
56
  /* ── Theme: Light (auto via system preference) ────────────────── */
@@ -92,6 +92,15 @@
92
92
  }
93
93
  }
94
94
 
95
+ /* ── Reset: inherit font-family on form elements ─────────────── */
96
+ .ss-dbg-panel button,
97
+ .ss-dbg-panel input,
98
+ .ss-dbg-panel select,
99
+ .ss-dbg-panel textarea,
100
+ .ss-dbg-panel pre {
101
+ font-family: inherit;
102
+ }
103
+
95
104
  /* ── Theme: Light (manual override) ───────────────────────────── */
96
105
  .ss-dbg-panel[data-ss-theme='light'] {
97
106
  --ss-bg: #fafafa;
@@ -152,8 +161,7 @@
152
161
  flex: 1;
153
162
  min-width: 0;
154
163
  padding-left: 8px;
155
- scrollbar-width: none;
156
- -ms-overflow-style: none;
164
+ /* scrollbar hiding → utilities.css */
157
165
  mask-image: linear-gradient(
158
166
  to right,
159
167
  transparent 0,
@@ -169,9 +177,6 @@
169
177
  transparent 100%
170
178
  );
171
179
  }
172
- .ss-dbg-tabs-scroll::-webkit-scrollbar {
173
- display: none;
174
- }
175
180
  .ss-dbg-tab {
176
181
  display: inline-flex;
177
182
  align-items: center;
@@ -188,7 +193,6 @@
188
193
  transition:
189
194
  color 0.15s,
190
195
  border-color 0.15s;
191
- font-family: inherit;
192
196
  text-transform: uppercase;
193
197
  white-space: nowrap;
194
198
  flex-shrink: 0;
@@ -225,7 +229,6 @@
225
229
  cursor: pointer;
226
230
  border: none;
227
231
  background: none;
228
- font-family: inherit;
229
232
  }
230
233
  .ss-dbg-close:hover {
231
234
  color: var(--ss-text-bright);
@@ -234,18 +237,16 @@
234
237
  /* Tab content */
235
238
  .ss-dbg-content {
236
239
  flex: 1;
237
- overflow: auto;
240
+ overflow-x: hidden;
241
+ overflow-y: auto;
238
242
  padding: 0;
239
243
  }
240
244
  .ss-dbg-pane {
241
245
  display: none;
242
246
  height: 100%;
243
- overflow: auto;
244
- scrollbar-width: none;
245
- -ms-overflow-style: none;
246
- }
247
- .ss-dbg-pane::-webkit-scrollbar {
248
- display: none;
247
+ overflow-x: hidden;
248
+ overflow-y: auto;
249
+ /* scrollbar hiding → utilities.css */
249
250
  }
250
251
  .ss-dbg-pane.ss-dbg-active {
251
252
  display: block;
@@ -264,7 +265,6 @@
264
265
  flex: 1;
265
266
  padding: 4px 8px;
266
267
  font-size: 11px;
267
- font-family: inherit;
268
268
  color: var(--ss-text);
269
269
  background: var(--ss-input-bg);
270
270
  border: 1px solid var(--ss-border);
@@ -286,7 +286,6 @@
286
286
  .ss-dbg-btn-clear {
287
287
  padding: 3px 8px;
288
288
  font-size: 10px;
289
- font-family: inherit;
290
289
  color: var(--ss-muted);
291
290
  background: var(--ss-border-dim);
292
291
  border: 1px solid var(--ss-border-strong);
@@ -299,35 +298,7 @@
299
298
  border-color: var(--ss-dim);
300
299
  }
301
300
 
302
- /* Table */
303
- .ss-dbg-table {
304
- width: 100%;
305
- border-collapse: collapse;
306
- font-size: 11px;
307
- }
308
- .ss-dbg-table th {
309
- position: sticky;
310
- top: 0;
311
- padding: 6px 10px;
312
- text-align: left;
313
- font-weight: 600;
314
- font-size: 10px;
315
- text-transform: uppercase;
316
- letter-spacing: 0.05em;
317
- color: var(--ss-muted);
318
- background: var(--ss-surface);
319
- border-bottom: 1px solid var(--ss-border);
320
- white-space: nowrap;
321
- }
322
- .ss-dbg-table td {
323
- padding: 5px 10px;
324
- border-bottom: 1px solid var(--ss-border-faint);
325
- vertical-align: top;
326
- max-width: 0;
327
- }
328
- .ss-dbg-table tr:hover td {
329
- background: var(--ss-hover);
330
- }
301
+ /* Table base / column resize → components.css */
331
302
 
332
303
  /* Query-specific styles */
333
304
  .ss-dbg-sql {
@@ -336,55 +307,19 @@
336
307
  word-break: break-all;
337
308
  cursor: pointer;
338
309
  max-width: 500px;
339
- overflow: hidden;
340
- text-overflow: ellipsis;
341
- white-space: nowrap;
310
+ /* truncation → utilities.css */
342
311
  }
343
312
  .ss-dbg-sql.ss-dbg-expanded {
344
313
  white-space: pre-wrap;
345
314
  max-width: none;
346
315
  }
347
- .ss-dbg-duration {
348
- font-variant-numeric: tabular-nums;
349
- }
350
- .ss-dbg-slow {
351
- color: var(--ss-amber-fg);
352
- }
353
- .ss-dbg-very-slow {
354
- color: var(--ss-red-fg);
355
- }
316
+ /* Duration → components.css */
356
317
  .ss-dbg-dup {
357
318
  color: var(--ss-purple-fg);
358
319
  font-size: 10px;
359
320
  }
360
321
 
361
- /* Method badges */
362
- .ss-dbg-method {
363
- display: inline-block;
364
- padding: 1px 5px;
365
- border-radius: 3px;
366
- font-size: 10px;
367
- font-weight: 600;
368
- letter-spacing: 0.03em;
369
- text-transform: uppercase;
370
- }
371
- .ss-dbg-method-get {
372
- background: var(--ss-green-bg);
373
- color: var(--ss-green-fg);
374
- }
375
- .ss-dbg-method-post {
376
- background: var(--ss-blue-bg);
377
- color: var(--ss-blue-fg);
378
- }
379
- .ss-dbg-method-put,
380
- .ss-dbg-method-patch {
381
- background: var(--ss-amber-bg);
382
- color: var(--ss-amber-fg);
383
- }
384
- .ss-dbg-method-delete {
385
- background: var(--ss-red-bg);
386
- color: var(--ss-red-fg);
387
- }
322
+ /* Method badges → components.css */
388
323
 
389
324
  /* Route highlight */
390
325
  .ss-dbg-current-route td {
@@ -394,25 +329,40 @@
394
329
  /* Event list */
395
330
  .ss-dbg-event-name {
396
331
  color: var(--ss-sql-color);
332
+ /* truncation → utilities.css */
397
333
  }
398
334
  .ss-dbg-event-data {
399
335
  color: var(--ss-muted);
400
336
  font-size: 10px;
401
337
  position: relative;
338
+ /* truncation → utilities.css */
402
339
  }
403
340
  .ss-dbg-event-time {
404
341
  color: var(--ss-dim);
405
342
  font-size: 10px;
406
- font-variant-numeric: tabular-nums;
343
+ /* tabular-nums → utilities.css */
344
+ white-space: nowrap;
407
345
  }
408
346
  .ss-dbg-data-preview {
409
347
  cursor: pointer;
410
348
  color: var(--ss-text-secondary);
411
349
  border-bottom: 1px dashed var(--ss-dim);
350
+ /* truncation → utilities.css */
351
+ display: block;
412
352
  }
413
353
  .ss-dbg-data-preview:hover {
414
354
  color: var(--ss-text);
415
355
  }
356
+ /* Data cell wrapper used by JsonViewer */
357
+ .ss-dbg-data-cell {
358
+ /* truncation → utilities.css */
359
+ }
360
+ /* When expanded data is shown, allow the cell to wrap */
361
+ .ss-dbg-event-data:has(.ss-dbg-data-full),
362
+ .ss-dbg-data-cell:has(.ss-dbg-data-full) {
363
+ white-space: normal;
364
+ overflow: visible;
365
+ }
416
366
  .ss-dbg-data-full {
417
367
  margin: 4px 0 0;
418
368
  padding: 8px;
@@ -421,34 +371,14 @@
421
371
  border-radius: 4px;
422
372
  color: var(--ss-text-secondary);
423
373
  font-size: 10px;
424
- font-family: inherit;
425
374
  white-space: pre-wrap;
426
375
  word-break: break-all;
427
376
  max-height: 200px;
428
377
  overflow: auto;
429
378
  cursor: pointer;
430
- scrollbar-width: none;
431
- -ms-overflow-style: none;
432
- }
433
- .ss-dbg-data-full::-webkit-scrollbar {
434
- display: none;
435
- }
436
- .ss-dbg-copy-btn {
437
- margin-left: 6px;
438
- padding: 1px 5px;
439
- font-size: 11px;
440
- color: var(--ss-dim);
441
- background: none;
442
- border: 1px solid transparent;
443
- border-radius: 3px;
444
- cursor: pointer;
445
- font-family: inherit;
446
- vertical-align: middle;
447
- }
448
- .ss-dbg-copy-btn:hover {
449
- color: var(--ss-text-secondary);
450
- border-color: var(--ss-border-strong);
379
+ /* scrollbar hiding → utilities.css */
451
380
  }
381
+ /* Copy button → components.css */
452
382
 
453
383
  /* Logs */
454
384
  .ss-dbg-log-filters {
@@ -458,10 +388,12 @@
458
388
  border-bottom: 1px solid var(--ss-border-dim);
459
389
  background: var(--ss-surface-alt);
460
390
  }
461
- .ss-dbg-log-filter {
391
+ /* Filter buttons share a common style (log, job, config tabs) */
392
+ .ss-dbg-log-filter,
393
+ .ss-dbg-job-filter,
394
+ .ss-dbg-config-tab {
462
395
  padding: 3px 10px;
463
396
  font-size: 10px;
464
- font-family: inherit;
465
397
  border: 1px solid var(--ss-border);
466
398
  border-radius: 4px;
467
399
  cursor: pointer;
@@ -469,363 +401,51 @@
469
401
  color: var(--ss-muted);
470
402
  text-transform: uppercase;
471
403
  }
472
- .ss-dbg-log-filter:hover {
404
+ .ss-dbg-log-filter:hover,
405
+ .ss-dbg-job-filter:hover,
406
+ .ss-dbg-config-tab:hover {
473
407
  border-color: var(--ss-dim);
474
408
  color: var(--ss-text-secondary);
475
409
  }
476
- .ss-dbg-log-filter.ss-dbg-active {
410
+ .ss-dbg-log-filter.ss-dbg-active,
411
+ .ss-dbg-job-filter.ss-dbg-active,
412
+ .ss-dbg-config-tab.ss-dbg-active {
477
413
  border-color: var(--ss-accent);
478
414
  color: var(--ss-accent);
479
415
  }
480
416
 
481
- .ss-dbg-log-entry {
482
- padding: 4px 12px;
483
- font-size: 11px;
484
- border-bottom: 1px solid var(--ss-input-bg);
485
- display: flex;
486
- gap: 8px;
487
- align-items: baseline;
488
- }
489
- .ss-dbg-log-level {
490
- font-size: 10px;
491
- font-weight: 600;
492
- width: 42px;
493
- text-align: center;
494
- flex-shrink: 0;
495
- padding: 1px 0;
496
- border-radius: 3px;
497
- }
498
- .ss-dbg-log-level-info {
499
- background: var(--ss-green-bg);
500
- color: var(--ss-green-fg);
501
- }
502
- .ss-dbg-log-level-warn {
503
- background: var(--ss-amber-bg);
504
- color: var(--ss-amber-fg);
505
- }
506
- .ss-dbg-log-level-error,
507
- .ss-dbg-log-level-fatal {
508
- background: var(--ss-red-bg);
509
- color: var(--ss-red-fg);
510
- }
511
- .ss-dbg-log-level-debug {
512
- background: var(--ss-surface-alt);
513
- color: var(--ss-muted);
514
- }
515
- .ss-dbg-log-level-trace {
516
- background: var(--ss-surface-alt);
517
- color: var(--ss-dim);
518
- }
519
- .ss-dbg-log-time {
520
- color: var(--ss-dim);
521
- font-size: 10px;
522
- font-variant-numeric: tabular-nums;
523
- flex-shrink: 0;
524
- }
525
- .ss-dbg-log-reqid {
526
- font-size: 10px;
527
- color: var(--ss-reqid-fg);
528
- background: var(--ss-reqid-bg);
529
- padding: 1px 5px;
530
- border-radius: 3px;
531
- cursor: pointer;
532
- flex-shrink: 0;
533
- font-family: inherit;
534
- letter-spacing: 0.02em;
535
- }
536
- .ss-dbg-log-reqid:hover {
537
- color: var(--ss-reqid-hover-fg);
538
- background: var(--ss-reqid-hover-bg);
539
- }
540
- .ss-dbg-log-reqid-empty {
541
- font-size: 10px;
542
- color: var(--ss-border);
543
- flex-shrink: 0;
544
- width: 58px;
545
- text-align: center;
546
- }
417
+ /* Log entry / level / time / reqid / msg → components.css */
547
418
  .ss-dbg-reqid-input {
548
419
  max-width: 200px;
549
420
  margin-left: auto;
550
421
  }
551
- .ss-dbg-log-msg {
552
- color: var(--ss-text);
553
- word-break: break-word;
554
- }
555
-
556
- /* Empty state */
557
- .ss-dbg-empty {
558
- display: flex;
559
- align-items: center;
560
- justify-content: center;
561
- height: 100%;
562
- min-height: 120px;
563
- color: var(--ss-dim);
564
- font-size: 12px;
565
- }
566
-
567
- /* Badge format */
568
- .ss-dbg-badge {
569
- display: inline-block;
570
- padding: 1px 6px;
571
- border-radius: 3px;
572
- font-size: 10px;
573
- font-weight: 600;
574
- text-transform: uppercase;
575
- }
576
- .ss-dbg-badge-green {
577
- background: var(--ss-green-bg);
578
- color: var(--ss-green-fg);
579
- }
580
- .ss-dbg-badge-amber {
581
- background: var(--ss-amber-bg);
582
- color: var(--ss-amber-fg);
583
- }
584
- .ss-dbg-badge-red {
585
- background: var(--ss-red-bg);
586
- color: var(--ss-red-fg);
587
- }
588
- .ss-dbg-badge-blue {
589
- background: var(--ss-blue-bg);
590
- color: var(--ss-blue-fg);
591
- }
592
- .ss-dbg-badge-purple {
593
- background: var(--ss-purple-bg);
594
- color: var(--ss-purple-fg);
595
- }
596
- .ss-dbg-badge-muted {
597
- background: var(--ss-border-dim);
598
- color: var(--ss-muted);
599
- }
600
422
 
601
- /* Email preview overlay */
602
- .ss-dbg-email-preview {
603
- position: absolute;
604
- inset: 0;
605
- display: flex;
606
- flex-direction: column;
607
- background: var(--ss-bg);
608
- z-index: 30;
609
- }
610
- .ss-dbg-email-preview-header {
611
- display: flex;
612
- align-items: flex-start;
613
- justify-content: space-between;
614
- gap: 12px;
615
- padding: 10px 12px;
616
- border-bottom: 1px solid var(--ss-border-dim);
617
- background: var(--ss-surface-alt);
618
- flex-shrink: 0;
619
- }
620
- .ss-dbg-email-preview-meta {
621
- font-size: 11px;
622
- color: var(--ss-text-secondary);
623
- line-height: 1.6;
624
- overflow: hidden;
625
- }
626
- .ss-dbg-email-preview-meta strong {
627
- color: var(--ss-text);
628
- font-weight: 600;
629
- }
630
- .ss-dbg-email-iframe {
631
- flex: 1;
632
- border: none;
633
- background: #fff;
634
- }
423
+ /* Empty state components.css */
635
424
 
636
- /* Email row */
637
- .ss-dbg-email-row {
638
- cursor: pointer;
639
- }
640
- .ss-dbg-email-row:hover td {
641
- background: var(--ss-hover-accent) !important;
642
- }
425
+ /* Badge components.css */
643
426
 
644
- /* Email status badges */
645
- .ss-dbg-email-status {
646
- display: inline-block;
647
- padding: 1px 6px;
648
- border-radius: 3px;
649
- font-size: 10px;
650
- font-weight: 600;
651
- text-transform: uppercase;
652
- }
653
- .ss-dbg-email-status-sent {
654
- background: var(--ss-green-bg);
655
- color: var(--ss-green-fg);
656
- }
657
- .ss-dbg-email-status-sending {
658
- background: var(--ss-amber-bg);
659
- color: var(--ss-amber-fg);
660
- }
661
- .ss-dbg-email-status-queued {
662
- background: var(--ss-blue-bg);
663
- color: var(--ss-blue-fg);
664
- }
665
- .ss-dbg-email-status-failed {
666
- background: var(--ss-red-bg);
667
- color: var(--ss-red-fg);
668
- }
427
+ /* Email preview / row / status components.css */
669
428
 
670
429
  /* Filterable cell */
671
430
  .ss-dbg-filterable:hover {
672
431
  background: var(--ss-hover-accent);
673
432
  }
674
433
 
675
- /* Timeline */
676
- .ss-dbg-tl-detail-header {
677
- display: flex;
678
- align-items: center;
679
- gap: 12px;
680
- padding: 8px 12px;
681
- border-bottom: 1px solid var(--ss-border-dim);
682
- background: var(--ss-surface-alt);
683
- flex-shrink: 0;
434
+ /* Timeline base → components.css */
435
+ /* Debug-specific timeline overrides */
436
+ .ss-dbg-tl-detail-url {
437
+ color: var(--ss-text);
438
+ font-size: 11px;
439
+ /* truncation → utilities.css */
440
+ min-width: 0;
684
441
  }
685
442
  #ss-dbg-tl-waterfall {
686
443
  padding: 8px 12px;
687
444
  overflow: auto;
688
- scrollbar-width: none;
689
- -ms-overflow-style: none;
690
- }
691
- #ss-dbg-tl-waterfall::-webkit-scrollbar {
692
- display: none;
693
- }
694
-
695
- .ss-dbg-tl-row {
696
- display: flex;
697
- align-items: center;
698
- height: 24px;
699
- font-size: 11px;
700
- border-bottom: 1px solid var(--ss-input-bg);
701
- }
702
- .ss-dbg-tl-row:hover {
703
- background: var(--ss-hover);
704
- }
705
- .ss-dbg-tl-label {
706
- width: 280px;
707
- min-width: 280px;
708
- padding-right: 8px;
709
- overflow: hidden;
710
- text-overflow: ellipsis;
711
- white-space: nowrap;
712
- color: var(--ss-text-secondary);
713
- font-size: 10px;
714
- }
715
- .ss-dbg-tl-track {
716
- flex: 1;
717
- position: relative;
718
- height: 16px;
719
- }
720
- .ss-dbg-tl-bar {
721
- position: absolute;
722
- height: 12px;
723
- top: 2px;
724
- border-radius: 2px;
725
- min-width: 2px;
726
- cursor: default;
727
- }
728
- /* Timeline bar colors are semantic category indicators — kept as fixed values */
729
- .ss-dbg-tl-bar-request {
730
- background: #1e3a5f;
731
- }
732
- .ss-dbg-tl-bar-middleware {
733
- background: #1e3a5f;
734
- opacity: 0.7;
735
- }
736
- .ss-dbg-tl-bar-db {
737
- background: #6d28d9;
738
- }
739
- .ss-dbg-tl-bar-view {
740
- background: #0e7490;
741
- }
742
- .ss-dbg-tl-bar-mail {
743
- background: #059669;
744
- }
745
- .ss-dbg-tl-bar-event {
746
- background: #b45309;
747
- }
748
- .ss-dbg-tl-bar-custom {
749
- background: #525252;
750
- }
751
-
752
- .ss-dbg-tl-dur {
753
- font-size: 10px;
754
- color: var(--ss-dim);
755
- margin-left: 4px;
756
- white-space: nowrap;
757
- font-variant-numeric: tabular-nums;
758
- }
759
-
760
- .ss-dbg-tl-legend {
761
- display: flex;
762
- gap: 12px;
763
- padding: 6px 12px;
764
- border-bottom: 1px solid var(--ss-border-dim);
765
- background: var(--ss-surface-alt);
766
- font-size: 10px;
767
- color: var(--ss-muted);
768
- }
769
- .ss-dbg-tl-legend-item {
770
- display: flex;
771
- align-items: center;
772
- gap: 4px;
773
- }
774
- .ss-dbg-tl-legend-dot {
775
- width: 8px;
776
- height: 8px;
777
- border-radius: 2px;
778
- flex-shrink: 0;
779
- }
780
-
781
- .ss-dbg-tl-warnings {
782
- margin-top: 12px;
783
- padding: 8px 12px;
784
- border-top: 1px solid var(--ss-border-dim);
785
- }
786
- .ss-dbg-tl-warnings-title {
787
- font-size: 10px;
788
- font-weight: 600;
789
- color: var(--ss-amber-fg);
790
- text-transform: uppercase;
791
- letter-spacing: 0.05em;
792
- margin-bottom: 4px;
793
- }
794
- .ss-dbg-tl-warning {
795
- font-size: 11px;
796
- color: var(--ss-amber-fg);
797
- padding: 2px 0;
445
+ /* scrollbar hiding → utilities.css */
798
446
  }
799
447
 
800
- .ss-dbg-tl-meta {
801
- font-size: 10px;
802
- color: var(--ss-dim);
803
- margin-left: 8px;
804
- }
805
-
806
- /* Status code badges */
807
- .ss-dbg-status {
808
- font-size: 10px;
809
- font-weight: 600;
810
- padding: 1px 5px;
811
- border-radius: 3px;
812
- }
813
- .ss-dbg-status-2xx {
814
- background: var(--ss-green-bg);
815
- color: var(--ss-green-fg);
816
- }
817
- .ss-dbg-status-3xx {
818
- background: var(--ss-blue-bg);
819
- color: var(--ss-blue-fg);
820
- }
821
- .ss-dbg-status-4xx {
822
- background: var(--ss-amber-bg);
823
- color: var(--ss-amber-fg);
824
- }
825
- .ss-dbg-status-5xx {
826
- background: var(--ss-red-bg);
827
- color: var(--ss-red-fg);
828
- }
448
+ /* Status code badges → components.css */
829
449
 
830
450
  /* Dashboard deep link button in tab bar */
831
451
  .ss-dbg-dashboard-link {
@@ -911,8 +531,9 @@
911
531
  white-space: nowrap;
912
532
  }
913
533
  .ss-dbg-mini-stat-value {
914
- font-variant-numeric: tabular-nums;
534
+ /* tabular-nums → utilities.css */
915
535
  font-weight: 600;
536
+ color: var(--ss-text);
916
537
  }
917
538
  .ss-dbg-mini-stat-value.ss-dbg-stat-green {
918
539
  color: var(--ss-green-fg);
@@ -944,7 +565,7 @@
944
565
  .ss-dbg-cache-stat-value {
945
566
  color: var(--ss-text);
946
567
  font-weight: 600;
947
- font-variant-numeric: tabular-nums;
568
+ /* tabular-nums → utilities.css */
948
569
  }
949
570
 
950
571
  /* Cache detail overlay */
@@ -962,16 +583,11 @@
962
583
  border-radius: 4px;
963
584
  color: var(--ss-text-secondary);
964
585
  font-size: 10px;
965
- font-family: inherit;
966
586
  white-space: pre-wrap;
967
587
  word-break: break-all;
968
588
  max-height: 300px;
969
589
  overflow: auto;
970
- scrollbar-width: none;
971
- -ms-overflow-style: none;
972
- }
973
- .ss-dbg-cache-detail pre::-webkit-scrollbar {
974
- display: none;
590
+ /* scrollbar hiding → utilities.css */
975
591
  }
976
592
 
977
593
  /* Jobs tab */
@@ -996,28 +612,10 @@
996
612
  .ss-dbg-job-stat-value {
997
613
  color: var(--ss-text);
998
614
  font-weight: 600;
999
- font-variant-numeric: tabular-nums;
615
+ /* tabular-nums → utilities.css */
1000
616
  }
1001
617
 
1002
- .ss-dbg-job-filter {
1003
- padding: 3px 10px;
1004
- font-size: 10px;
1005
- font-family: inherit;
1006
- border: 1px solid var(--ss-border);
1007
- border-radius: 4px;
1008
- cursor: pointer;
1009
- background: none;
1010
- color: var(--ss-muted);
1011
- text-transform: uppercase;
1012
- }
1013
- .ss-dbg-job-filter:hover {
1014
- border-color: var(--ss-dim);
1015
- color: var(--ss-text-secondary);
1016
- }
1017
- .ss-dbg-job-filter.ss-dbg-active {
1018
- border-color: var(--ss-accent);
1019
- color: var(--ss-accent);
1020
- }
618
+ /* .ss-dbg-job-filter → consolidated above with log-filter & config-tab */
1021
619
 
1022
620
  .ss-dbg-job-status-completed {
1023
621
  background: var(--ss-green-bg);
@@ -1043,7 +641,6 @@
1043
641
  .ss-dbg-retry-btn {
1044
642
  padding: 2px 8px;
1045
643
  font-size: 10px;
1046
- font-family: inherit;
1047
644
  color: var(--ss-muted);
1048
645
  background: var(--ss-border-dim);
1049
646
  border: 1px solid var(--ss-border-strong);
@@ -1060,159 +657,46 @@
1060
657
  cursor: default;
1061
658
  }
1062
659
 
1063
- /* Config tab */
1064
- .ss-dbg-config-tab {
1065
- padding: 3px 10px;
1066
- font-size: 10px;
1067
- font-family: inherit;
1068
- border: 1px solid var(--ss-border);
1069
- border-radius: 4px;
1070
- cursor: pointer;
1071
- background: none;
1072
- color: var(--ss-muted);
1073
- text-transform: uppercase;
1074
- }
1075
- .ss-dbg-config-tab:hover {
1076
- border-color: var(--ss-dim);
1077
- color: var(--ss-text-secondary);
1078
- }
1079
- .ss-dbg-config-tab.ss-dbg-active {
1080
- border-color: var(--ss-accent);
1081
- color: var(--ss-accent);
1082
- }
660
+ /* .ss-dbg-config-tab → consolidated above with log-filter & job-filter */
661
+ /* Config sections/toggle/key/val/match/leaf/redacted/copy-row/inner-table → components.css */
662
+ /* Btn / btn-group → components.css */
1083
663
 
1084
- .ss-dbg-config-sections {
1085
- padding: 0;
1086
- }
1087
- .ss-dbg-config-section {
1088
- border-bottom: 1px solid var(--ss-border-faint);
664
+ /* Debug-specific: config toolbar, env table, search wrap */
665
+ .ss-dbg-config-table-wrap {
666
+ overflow: auto;
667
+ /* scrollbar hiding → utilities.css */
1089
668
  }
1090
- .ss-dbg-config-section-header {
669
+ .ss-dbg-config-toolbar {
1091
670
  display: flex;
1092
671
  align-items: center;
1093
- gap: 6px;
1094
- padding: 6px 12px;
1095
- cursor: pointer;
1096
- font-size: 11px;
1097
- }
1098
- .ss-dbg-config-section-header:hover {
1099
- background: var(--ss-hover);
1100
- }
1101
- .ss-dbg-config-toggle {
1102
- color: var(--ss-dim);
1103
- font-size: 9px;
1104
- width: 12px;
1105
- text-align: center;
1106
- flex-shrink: 0;
1107
- }
1108
- .ss-dbg-config-key {
1109
- color: var(--ss-sql-color);
1110
- }
1111
- .ss-dbg-config-count {
1112
- color: var(--ss-dim);
1113
- font-size: 10px;
1114
- margin-left: auto;
1115
- }
1116
- .ss-dbg-config-val {
1117
- color: var(--ss-text-secondary);
1118
- }
1119
- .ss-dbg-config-val-true {
1120
- color: var(--ss-accent);
1121
- }
1122
- .ss-dbg-config-val-false {
1123
- color: var(--ss-red-fg);
1124
- }
1125
- .ss-dbg-config-val-number {
1126
- color: var(--ss-amber-fg);
1127
- }
1128
- .ss-dbg-config-val-array {
1129
- color: var(--ss-purple-fg);
1130
- }
1131
- .ss-dbg-config-val-null {
1132
- color: var(--ss-dim);
1133
- }
1134
- .ss-dbg-config-redacted {
1135
- color: var(--ss-dim);
1136
- font-style: italic;
1137
- }
1138
- .ss-dbg-redacted-wrap {
1139
- display: inline-flex;
1140
- align-items: center;
1141
- gap: 4px;
1142
- font-style: italic;
1143
- color: var(--ss-dim);
1144
- }
1145
- .ss-dbg-redacted-real {
1146
- font-style: normal;
1147
- color: var(--ss-text-secondary);
1148
- font-family: 'SF Mono', SFMono-Regular, ui-monospace, Menlo, monospace;
1149
- font-size: 11px;
1150
- word-break: break-all;
1151
- }
1152
- .ss-dbg-redacted-reveal,
1153
- .ss-dbg-redacted-copy {
1154
- background: none;
1155
- border: 1px solid var(--ss-border);
1156
- border-radius: 3px;
1157
- padding: 2px 4px;
1158
- cursor: pointer;
1159
- color: var(--ss-dim);
1160
- display: inline-flex;
1161
- align-items: center;
1162
- line-height: 1;
1163
- transition:
1164
- color 0.15s,
1165
- border-color 0.15s;
1166
- }
1167
- .ss-dbg-redacted-reveal:hover,
1168
- .ss-dbg-redacted-copy:hover {
1169
- color: var(--ss-text);
1170
- border-color: var(--ss-dim);
1171
- }
1172
- .ss-dbg-config-match {
1173
- background: var(--ss-amber-bg);
1174
- color: var(--ss-amber-fg);
1175
- border-radius: 2px;
1176
- padding: 0 1px;
672
+ gap: 8px;
673
+ padding: 6px 10px;
674
+ border-bottom: 1px solid var(--ss-border-faint);
1177
675
  }
1178
-
1179
- .ss-dbg-config-leaf {
1180
- cursor: default;
676
+ .ss-dbg-config-env-table {
677
+ table-layout: fixed;
1181
678
  }
1182
- .ss-dbg-config-leaf:hover {
1183
- background: transparent;
679
+ .ss-dbg-env-key {
680
+ width: 200px;
681
+ min-width: 200px;
682
+ /* truncation → utilities.css */
1184
683
  }
1185
-
1186
- .ss-dbg-config-table-wrap {
1187
- overflow: auto;
1188
- scrollbar-width: none;
1189
- -ms-overflow-style: none;
684
+ .ss-dbg-env-val {
685
+ /* truncation → utilities.css */
686
+ max-width: 0;
1190
687
  }
1191
- .ss-dbg-config-table-wrap::-webkit-scrollbar {
1192
- display: none;
688
+ .ss-dbg-config-search-wrap {
689
+ position: relative;
690
+ flex: 1;
691
+ min-width: 120px;
692
+ max-width: 280px;
1193
693
  }
1194
694
 
1195
- /* Wrench button in stats bar */
695
+ /* Debug-specific btn overrides */
1196
696
  .ss-dbg-btn {
1197
- display: flex;
1198
- align-items: center;
1199
- gap: 4px;
1200
- padding: 2px 6px;
1201
- font-size: 12px;
1202
- color: var(--ss-muted);
1203
- cursor: pointer;
1204
- border: none;
1205
- background: none;
1206
- font-family: inherit;
1207
- border-radius: 4px;
1208
- flex-shrink: 0;
1209
- }
1210
- .ss-dbg-btn:hover {
1211
- color: var(--ss-text);
1212
- background: var(--ss-hover);
1213
- }
1214
- .ss-dbg-btn.ss-dbg-active {
1215
- color: var(--ss-accent);
697
+ --ss-btn-py: 2px;
698
+ --ss-btn-px: 6px;
699
+ --ss-btn-font: 12px;
1216
700
  }
1217
701
 
1218
702
  /* Theme toggle button */
@@ -1236,28 +720,28 @@
1236
720
  background: var(--ss-hover-accent);
1237
721
  }
1238
722
 
1239
- /* Utility classes for JS-rendered inline content */
1240
- .ss-dbg-c-dim {
1241
- color: var(--ss-dim);
1242
- }
1243
- .ss-dbg-c-muted {
723
+ /* Utility color classes components.css */
724
+
725
+ /* ── Internals section title ──────────────────────────────────── */
726
+ .ss-dbg-internals-title {
727
+ font-size: 11px;
728
+ font-weight: 600;
729
+ text-transform: uppercase;
730
+ letter-spacing: 0.05em;
1244
731
  color: var(--ss-muted);
732
+ margin: 20px 0 8px;
733
+ padding: 0 10px 6px;
734
+ border-bottom: 1px solid var(--ss-border);
1245
735
  }
1246
- .ss-dbg-c-secondary {
1247
- color: var(--ss-text-secondary);
1248
- }
1249
- .ss-dbg-c-text {
1250
- color: var(--ss-text);
1251
- }
1252
- .ss-dbg-c-sql {
1253
- color: var(--ss-sql-color);
1254
- }
1255
- .ss-dbg-c-amber {
1256
- color: var(--ss-amber-fg);
1257
- }
1258
- .ss-dbg-c-red {
1259
- color: var(--ss-red-fg);
736
+ .ss-dbg-internals-title:first-child {
737
+ margin-top: 4px;
1260
738
  }
1261
- .ss-dbg-c-border {
1262
- color: var(--ss-border);
739
+
740
+ /* Info cards → components.css */
741
+ /* Status indicator dot → components.css */
742
+
743
+ /* Progress bar → components.css */
744
+ /* Debug panel override: constrain bar-track width */
745
+ .ss-dbg-bar-track {
746
+ max-width: 120px;
1263
747
  }