@oneuptime/common 11.5.8 → 11.5.10

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 (542) hide show
  1. package/Models/AnalyticsModels/Index.ts +13 -0
  2. package/Models/AnalyticsModels/MetricItemAggMV1mByContainer.ts +178 -0
  3. package/Models/AnalyticsModels/MetricItemAggMV1mByK8sCluster.ts +179 -0
  4. package/Models/AnalyticsModels/MetricItemAggMV1mByService.ts +179 -0
  5. package/Models/AnalyticsModels/NetworkFlow.ts +397 -0
  6. package/Models/DatabaseModels/AIAgentTaskPullRequest.ts +15 -6
  7. package/Models/DatabaseModels/AIRun.ts +37 -0
  8. package/Models/DatabaseModels/AIRunEvent.ts +34 -1
  9. package/Models/DatabaseModels/EnterpriseLicenseInstance.ts +18 -0
  10. package/Models/DatabaseModels/GlobalConfig.ts +36 -0
  11. package/Models/DatabaseModels/Index.ts +2 -0
  12. package/Models/DatabaseModels/MarketingConversion.ts +198 -0
  13. package/Models/DatabaseModels/MetricSavedView.ts +34 -0
  14. package/Models/DatabaseModels/MetricType.ts +74 -0
  15. package/Models/DatabaseModels/NetworkDevice.ts +332 -0
  16. package/Models/DatabaseModels/NetworkDeviceDiscoveryScan.ts +328 -0
  17. package/Models/DatabaseModels/NetworkInterface.ts +58 -0
  18. package/Models/DatabaseModels/Project.ts +62 -0
  19. package/Models/DatabaseModels/StatusPage.ts +42 -0
  20. package/Models/DatabaseModels/User.ts +37 -0
  21. package/Server/API/AIAgentTaskAPI.ts +38 -12
  22. package/Server/API/AIAgentTaskLogAPI.ts +49 -0
  23. package/Server/API/AIChatAPI.ts +16 -0
  24. package/Server/API/AIReadinessAPI.ts +84 -0
  25. package/Server/API/BaseAnalyticsAPI.ts +23 -0
  26. package/Server/API/CodeFixRunAPI.ts +182 -0
  27. package/Server/API/EnterpriseLicenseAPI.ts +14 -0
  28. package/Server/API/TelemetryExceptionAPI.ts +6 -1
  29. package/Server/EnvironmentConfig.ts +84 -0
  30. package/Server/Infrastructure/Postgres/SchemaMigrations/1784124919694-AddAITaskNumberAndRunTranscript.ts +95 -0
  31. package/Server/Infrastructure/Postgres/SchemaMigrations/1784135099754-AllowNullAiAgentOnPullRequest.ts +52 -0
  32. package/Server/Infrastructure/Postgres/SchemaMigrations/1784137457184-AddEnableMcpServerToStatusPage.ts +30 -0
  33. package/Server/Infrastructure/Postgres/SchemaMigrations/1784191414522-AddCounterSemanticsToMetricType.ts +38 -0
  34. package/Server/Infrastructure/Postgres/SchemaMigrations/1784191414600-AddViewTypeToMetricSavedView.ts +28 -0
  35. package/Server/Infrastructure/Postgres/SchemaMigrations/1784200000000-AddSnmpV3ColumnsToNetworkDeviceDiscoveryScan.ts +49 -0
  36. package/Server/Infrastructure/Postgres/SchemaMigrations/1784211212164-AddNetworkDeviceInventoryAndDiscoverySchedule.ts +108 -0
  37. package/Server/Infrastructure/Postgres/SchemaMigrations/1784218257664-AddEnterpriseLicenseNotificationColumns.ts +31 -0
  38. package/Server/Infrastructure/Postgres/SchemaMigrations/1784293516000-AddAttributionColumnsToUserAndProject.ts +29 -0
  39. package/Server/Infrastructure/Postgres/SchemaMigrations/1784298000000-AddMarketingConversionTable.ts +35 -0
  40. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +20 -0
  41. package/Server/Services/AIRunEventService.ts +15 -1
  42. package/Server/Services/AIRunService.ts +38 -1
  43. package/Server/Services/AnalyticsDatabaseService.ts +70 -1
  44. package/Server/Services/IncidentService.ts +13 -0
  45. package/Server/Services/Index.ts +10 -0
  46. package/Server/Services/LlmProviderService.ts +2 -0
  47. package/Server/Services/MarketingConversionService.ts +10 -0
  48. package/Server/Services/MetricItemAggMV1mByContainerService.ts +31 -0
  49. package/Server/Services/MetricItemAggMV1mByK8sClusterService.ts +31 -0
  50. package/Server/Services/MetricItemAggMV1mByServiceService.ts +31 -0
  51. package/Server/Services/MetricService.ts +970 -122
  52. package/Server/Services/MonitorService.ts +14 -0
  53. package/Server/Services/NetworkDeviceOwnerTeamService.ts +42 -0
  54. package/Server/Services/NetworkDeviceOwnerUserService.ts +106 -0
  55. package/Server/Services/NetworkFlowService.ts +11 -0
  56. package/Server/Services/OnCallDutyPolicyService.ts +11 -1
  57. package/Server/Services/ProjectService.ts +178 -0
  58. package/Server/Services/SpanService.ts +13 -9
  59. package/Server/Services/StatusPageService.ts +97 -0
  60. package/Server/Services/TeamMemberService.ts +11 -0
  61. package/Server/Services/TelemetryExceptionService.ts +19 -90
  62. package/Server/Services/UserService.ts +59 -0
  63. package/Server/Types/AnalyticsDatabase/AggregateBy.ts +37 -7
  64. package/Server/Types/Markdown.ts +9 -9
  65. package/Server/Types/MarkdownSlugify.ts +47 -0
  66. package/Server/Utils/AI/AIRunTranscript.ts +240 -0
  67. package/Server/Utils/AI/Chat/ChatAgentRunner.ts +9 -0
  68. package/Server/Utils/AI/Chat/ObservabilityChatPrompt.ts +119 -5
  69. package/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.ts +75 -0
  70. package/Server/Utils/AI/CodeFix/CodeFixReadiness.ts +235 -0
  71. package/Server/Utils/AI/SRE/Insights/FixRouting.ts +2 -3
  72. package/Server/Utils/AI/Toolbox/CodeTools.ts +883 -0
  73. package/Server/Utils/AI/Toolbox/CodeWriteTools.ts +519 -0
  74. package/Server/Utils/AI/Toolbox/Index.ts +27 -0
  75. package/Server/Utils/AI/Toolbox/ScheduledMaintenanceTools.ts +279 -0
  76. package/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.ts +19 -1
  77. package/Server/Utils/Attribution.ts +99 -0
  78. package/Server/Utils/CodeRepository/GitHub/GitHub.ts +600 -0
  79. package/Server/Utils/CodeRepository/StackTraceRepoResolver.ts +7 -2
  80. package/Server/Utils/LLM/LLMService.ts +397 -18
  81. package/Server/Utils/Marketing/ConversionUploadProvider.ts +103 -0
  82. package/Server/Utils/Marketing/ConversionUploadProviders.ts +22 -0
  83. package/Server/Utils/Marketing/Providers/GoogleAds.ts +270 -0
  84. package/Server/Utils/Marketing/Providers/LinkedIn.ts +147 -0
  85. package/Server/Utils/Marketing/Providers/Meta.ts +148 -0
  86. package/Server/Utils/Marketing/Providers/MicrosoftAds.ts +196 -0
  87. package/Server/Utils/Marketing/Providers/Reddit.ts +178 -0
  88. package/Server/Utils/Monitor/MonitorAlert.ts +71 -7
  89. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +31 -19
  90. package/Server/Utils/Monitor/MonitorIncident.ts +71 -7
  91. package/Server/Utils/Monitor/MonitorMetricUtil.ts +57 -0
  92. package/Server/Utils/Monitor/MonitorTemplateUtil.ts +94 -0
  93. package/Server/Utils/Monitor/NetworkDeviceHydrationUtil.ts +19 -11
  94. package/Server/Utils/Monitor/NetworkInventoryUtil.ts +125 -14
  95. package/Server/Utils/ProductAnalytics.ts +133 -0
  96. package/Server/Utils/Telemetry/Telemetry.ts +39 -0
  97. package/Server/Utils/Telemetry/TelemetryEntity.ts +21 -0
  98. package/Tests/Models/StatusPageEnableMcpServer.test.ts +125 -0
  99. package/Tests/Server/API/BaseAnalyticsAPI.test.ts +72 -0
  100. package/Tests/Server/Infrastructure/SemaphorePermit.test.ts +9 -1
  101. package/Tests/Server/Services/AnalyticsDatabaseService.test.ts +21 -2
  102. package/Tests/Server/Services/MetricEntityMVKeyParity.test.ts +173 -0
  103. package/Tests/Server/Services/MetricServiceAggregate.test.ts +1391 -0
  104. package/Tests/Server/Services/NetworkDeviceOwnerServices.test.ts +260 -0
  105. package/Tests/Server/Services/StatusPageServiceMcp.test.ts +223 -0
  106. package/Tests/Server/Services/TelemetryExceptionAIFixReadiness.test.ts +26 -3
  107. package/Tests/Server/Services/TelemetryExceptionCodeFixRun.test.ts +12 -0
  108. package/Tests/Server/Types/Markdown.test.ts +106 -0
  109. package/Tests/Server/Utils/AI/AIRunTranscript.test.ts +182 -0
  110. package/Tests/Server/Utils/AI/CodeFixReadiness.test.ts +411 -0
  111. package/Tests/Server/Utils/AI/CodeTools.test.ts +596 -0
  112. package/Tests/Server/Utils/AI/CodeWriteTools.test.ts +475 -0
  113. package/Tests/Server/Utils/AI/LLMServiceModelCompatibility.test.ts +548 -0
  114. package/Tests/Server/Utils/AI/ObservabilityChatPrompt.test.ts +142 -0
  115. package/Tests/Server/Utils/AI/ScheduledMaintenanceTools.test.ts +176 -0
  116. package/Tests/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.test.ts +63 -0
  117. package/Tests/Server/Utils/GitHubGetFileContent.test.ts +197 -0
  118. package/Tests/Server/Utils/Monitor/MonitorTemplateUtilNetworkDevice.test.ts +389 -0
  119. package/Tests/Server/Utils/Monitor/NetworkDeviceHydrationUtil.test.ts +502 -0
  120. package/Tests/Server/Utils/Monitor/NetworkInventoryUtil.test.ts +764 -0
  121. package/Tests/Types/AI/AIAgentTaskStatus.test.ts +7 -6
  122. package/Tests/Types/AI/AIChatPageContext.test.ts +0 -0
  123. package/Tests/Types/AI/AIRunStatus.test.ts +42 -0
  124. package/Tests/Types/BaseDatabase/AggregationIntervalUtil.test.ts +111 -2
  125. package/Tests/Types/Database/EndsWith.test.ts +64 -0
  126. package/Tests/Types/Database/GreaterThan.test.ts +62 -0
  127. package/Tests/Types/Database/GreaterThanOrEqual.test.ts +65 -0
  128. package/Tests/Types/Database/GreaterThanOrNull.test.ts +63 -0
  129. package/Tests/Types/Database/Includes.test.ts +65 -0
  130. package/Tests/Types/Database/IncludesAll.test.ts +65 -0
  131. package/Tests/Types/Database/IncludesNone.test.ts +65 -0
  132. package/Tests/Types/Database/IsNull.test.ts +44 -0
  133. package/Tests/Types/Database/LessThan.test.ts +62 -0
  134. package/Tests/Types/Database/LessThanOrEqual.test.ts +62 -0
  135. package/Tests/Types/Database/LessThanOrNull.test.ts +62 -0
  136. package/Tests/Types/Database/MultiSearch.test.ts +81 -0
  137. package/Tests/Types/Database/NotContains.test.ts +64 -0
  138. package/Tests/Types/Database/NotNull.test.ts +44 -0
  139. package/Tests/Types/Database/StartsWith.test.ts +64 -0
  140. package/Tests/Types/Log/LogSeverity.test.ts +78 -0
  141. package/Tests/Types/Monitor/MonitorStepSqlMonitor.test.ts +83 -1
  142. package/Tests/Types/Monitor/SnmpV3EnumParsing.test.ts +247 -0
  143. package/Tests/Types/Monitor/SnmpVendorTemplate.test.ts +263 -0
  144. package/Tests/UI/Components/BasicFormDropdownNormalization.test.tsx +167 -0
  145. package/Tests/UI/Components/Charts/AxisTickColor.test.tsx +66 -0
  146. package/Tests/UI/Components/XAxis.test.ts +5 -3
  147. package/Tests/UI/Utils/AIChatExport/ChatWidgetData.test.ts +319 -0
  148. package/Tests/UI/Utils/AIChatExport/ChatWidgetMarkdown.test.ts +188 -0
  149. package/Tests/Utils/EnterpriseLicenseUsage.test.ts +76 -0
  150. package/Tests/Utils/Metrics/MetricExplorerUrl.test.ts +622 -0
  151. package/Tests/Utils/Metrics/MetricFormulaEvaluator.test.ts +474 -0
  152. package/Tests/Utils/Telemetry/HeartbeatAvailability.test.ts +52 -4
  153. package/Types/AI/AIAgentTaskStatus.ts +13 -0
  154. package/Types/AI/AIChatPageContext.ts +137 -0
  155. package/Types/AI/AIChatTypes.ts +44 -0
  156. package/Types/AI/AIFixReadiness.ts +46 -0
  157. package/Types/AI/AIRunStatus.ts +11 -0
  158. package/Types/AnalyticsDatabase/AnalyticsTableName.ts +11 -0
  159. package/Types/BaseDatabase/AggregateBy.ts +31 -2
  160. package/Types/BaseDatabase/AggregatedResult.ts +22 -0
  161. package/Types/BaseDatabase/AggregationInterval.ts +11 -0
  162. package/Types/BaseDatabase/AggregationIntervalUtil.ts +30 -5
  163. package/Types/Dashboard/DashboardComponents/DashboardTraceChartComponent.ts +16 -0
  164. package/Types/Email/EmailTemplateType.ts +3 -0
  165. package/Types/Log/LogSeverity.ts +61 -0
  166. package/Types/Marketing/MarketingConversion.ts +11 -0
  167. package/Types/Metrics/MetricQueryConfigData.ts +21 -0
  168. package/Types/Metrics/MetricQueryData.ts +8 -0
  169. package/Types/Metrics/MetricViewData.ts +8 -0
  170. package/Types/Monitor/MonitorMetricType.ts +8 -0
  171. package/Types/Monitor/MonitorStep.ts +9 -0
  172. package/Types/Monitor/MonitorStepSqlMonitor.ts +12 -0
  173. package/Types/Monitor/MonitorType.ts +2 -1
  174. package/Types/Monitor/SSLMonitor/SslMonitorResponse.ts +17 -12
  175. package/Types/Monitor/SnmpMonitor/CdpNeighbor.ts +13 -0
  176. package/Types/Monitor/SnmpMonitor/NetworkTopology.ts +37 -3
  177. package/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.ts +46 -0
  178. package/Types/Monitor/SnmpMonitor/SnmpEntityInfo.ts +15 -0
  179. package/Types/Monitor/SnmpMonitor/SnmpInterface.ts +8 -0
  180. package/Types/Monitor/SnmpMonitor/SnmpMonitorResponse.ts +17 -8
  181. package/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.ts +53 -0
  182. package/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.ts +43 -0
  183. package/Types/Monitor/SnmpMonitor/SnmpSystemInfo.ts +16 -0
  184. package/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.ts +119 -3
  185. package/Types/Monitor/SnmpMonitor/SnmpVersion.ts +40 -0
  186. package/Types/NetFlow/NetworkFlowRecord.ts +25 -0
  187. package/Types/Syslog/SyslogMessage.ts +18 -0
  188. package/Types/Telemetry/TelemetrySavedViewState.ts +9 -0
  189. package/Types/Telemetry/TelemetrySavedViewType.ts +12 -0
  190. package/UI/Components/Charts/Area/AreaChart.tsx +51 -0
  191. package/UI/Components/Charts/Bar/BarChart.tsx +51 -1
  192. package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +97 -26
  193. package/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.tsx +336 -3
  194. package/UI/Components/Charts/ChartLibrary/BarChart/BarChart.tsx +118 -1
  195. package/UI/Components/Charts/ChartLibrary/LineChart/LineChart.tsx +336 -3
  196. package/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.ts +7 -0
  197. package/UI/Components/Charts/ChartLibrary/Types/FormattedReferenceRegion.ts +15 -0
  198. package/UI/Components/Charts/ChartLibrary/Types/FormattedTimeReferenceLine.ts +13 -0
  199. package/UI/Components/Charts/Line/LineChart.tsx +51 -0
  200. package/UI/Components/Charts/Types/ReferenceRegionProps.ts +12 -0
  201. package/UI/Components/Charts/Types/TimeReferenceLineProps.ts +12 -0
  202. package/UI/Components/Charts/Types/XAxis/XAxisPrecision.ts +1 -0
  203. package/UI/Components/Charts/Utils/DataPoint.ts +0 -0
  204. package/UI/Components/Charts/Utils/TimeAnnotation.ts +169 -0
  205. package/UI/Components/Charts/Utils/XAxis.ts +28 -4
  206. package/UI/Components/Forms/BasicForm.tsx +26 -8
  207. package/UI/Components/Icon/Icon.tsx +33 -13
  208. package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +9 -0
  209. package/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.ts +67 -0
  210. package/UI/Components/Page/ModelPage.tsx +6 -1
  211. package/UI/Components/TelemetryViewer/components/SavedViewsDropdown.tsx +33 -4
  212. package/UI/Styles/Theme.css +1324 -0
  213. package/UI/Utils/AIChatExport/ChatWidgetData.ts +316 -0
  214. package/UI/Utils/AIChatExport/ChatWidgetMarkdown.ts +349 -0
  215. package/UI/Utils/AIChatExport/ConversationMarkdown.ts +177 -0
  216. package/UI/Utils/AIChatExport/MarkdownBlocks.ts +327 -0
  217. package/UI/Utils/AIChatExport/MarkdownSafety.ts +215 -0
  218. package/UI/Utils/DownloadFile.ts +54 -0
  219. package/UI/Utils/User.ts +41 -2
  220. package/Utils/Analytics.ts +8 -6
  221. package/Utils/EnterpriseLicense/EnterpriseLicenseUsage.ts +74 -0
  222. package/Utils/Metrics/MetricExplorerUrl.ts +771 -0
  223. package/Utils/Metrics/MetricFormulaEvaluator.ts +410 -46
  224. package/Utils/Monitor/NetworkTopologyUtil.ts +261 -49
  225. package/Utils/ValueFormatter.ts +22 -1
  226. package/build/dist/Models/AnalyticsModels/Index.js +13 -0
  227. package/build/dist/Models/AnalyticsModels/Index.js.map +1 -1
  228. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByContainer.js +159 -0
  229. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByContainer.js.map +1 -0
  230. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByK8sCluster.js +158 -0
  231. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByK8sCluster.js.map +1 -0
  232. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByService.js +160 -0
  233. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByService.js.map +1 -0
  234. package/build/dist/Models/AnalyticsModels/NetworkFlow.js +351 -0
  235. package/build/dist/Models/AnalyticsModels/NetworkFlow.js.map +1 -0
  236. package/build/dist/Models/DatabaseModels/AIAgentTaskPullRequest.js +15 -7
  237. package/build/dist/Models/DatabaseModels/AIAgentTaskPullRequest.js.map +1 -1
  238. package/build/dist/Models/DatabaseModels/AIRun.js +38 -0
  239. package/build/dist/Models/DatabaseModels/AIRun.js.map +1 -1
  240. package/build/dist/Models/DatabaseModels/AIRunEvent.js +31 -0
  241. package/build/dist/Models/DatabaseModels/AIRunEvent.js.map +1 -1
  242. package/build/dist/Models/DatabaseModels/EnterpriseLicenseInstance.js +19 -0
  243. package/build/dist/Models/DatabaseModels/EnterpriseLicenseInstance.js.map +1 -1
  244. package/build/dist/Models/DatabaseModels/GlobalConfig.js +38 -0
  245. package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
  246. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  247. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  248. package/build/dist/Models/DatabaseModels/MarketingConversion.js +219 -0
  249. package/build/dist/Models/DatabaseModels/MarketingConversion.js.map +1 -0
  250. package/build/dist/Models/DatabaseModels/MetricSavedView.js +35 -0
  251. package/build/dist/Models/DatabaseModels/MetricSavedView.js.map +1 -1
  252. package/build/dist/Models/DatabaseModels/MetricType.js +76 -0
  253. package/build/dist/Models/DatabaseModels/MetricType.js.map +1 -1
  254. package/build/dist/Models/DatabaseModels/NetworkDevice.js +341 -0
  255. package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
  256. package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js +341 -0
  257. package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js.map +1 -1
  258. package/build/dist/Models/DatabaseModels/NetworkInterface.js +60 -0
  259. package/build/dist/Models/DatabaseModels/NetworkInterface.js.map +1 -1
  260. package/build/dist/Models/DatabaseModels/Project.js +65 -0
  261. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  262. package/build/dist/Models/DatabaseModels/StatusPage.js +43 -0
  263. package/build/dist/Models/DatabaseModels/StatusPage.js.map +1 -1
  264. package/build/dist/Models/DatabaseModels/User.js +38 -0
  265. package/build/dist/Models/DatabaseModels/User.js.map +1 -1
  266. package/build/dist/Server/API/AIAgentTaskAPI.js +37 -11
  267. package/build/dist/Server/API/AIAgentTaskAPI.js.map +1 -1
  268. package/build/dist/Server/API/AIAgentTaskLogAPI.js +32 -7
  269. package/build/dist/Server/API/AIAgentTaskLogAPI.js.map +1 -1
  270. package/build/dist/Server/API/AIChatAPI.js +9 -0
  271. package/build/dist/Server/API/AIChatAPI.js.map +1 -1
  272. package/build/dist/Server/API/AIReadinessAPI.js +57 -0
  273. package/build/dist/Server/API/AIReadinessAPI.js.map +1 -0
  274. package/build/dist/Server/API/BaseAnalyticsAPI.js +19 -0
  275. package/build/dist/Server/API/BaseAnalyticsAPI.js.map +1 -1
  276. package/build/dist/Server/API/CodeFixRunAPI.js +142 -0
  277. package/build/dist/Server/API/CodeFixRunAPI.js.map +1 -1
  278. package/build/dist/Server/API/EnterpriseLicenseAPI.js +8 -0
  279. package/build/dist/Server/API/EnterpriseLicenseAPI.js.map +1 -1
  280. package/build/dist/Server/API/TelemetryExceptionAPI.js +4 -0
  281. package/build/dist/Server/API/TelemetryExceptionAPI.js.map +1 -1
  282. package/build/dist/Server/EnvironmentConfig.js +51 -0
  283. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  284. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784124919694-AddAITaskNumberAndRunTranscript.js +80 -0
  285. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784124919694-AddAITaskNumberAndRunTranscript.js.map +1 -0
  286. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784135099754-AllowNullAiAgentOnPullRequest.js +37 -0
  287. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784135099754-AllowNullAiAgentOnPullRequest.js.map +1 -0
  288. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784137457184-AddEnableMcpServerToStatusPage.js +23 -0
  289. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784137457184-AddEnableMcpServerToStatusPage.js.map +1 -0
  290. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784191414522-AddCounterSemanticsToMetricType.js +27 -0
  291. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784191414522-AddCounterSemanticsToMetricType.js.map +1 -0
  292. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784191414600-AddViewTypeToMetricSavedView.js +21 -0
  293. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784191414600-AddViewTypeToMetricSavedView.js.map +1 -0
  294. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784200000000-AddSnmpV3ColumnsToNetworkDeviceDiscoveryScan.js +22 -0
  295. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784200000000-AddSnmpV3ColumnsToNetworkDeviceDiscoveryScan.js.map +1 -0
  296. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784211212164-AddNetworkDeviceInventoryAndDiscoverySchedule.js +47 -0
  297. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784211212164-AddNetworkDeviceInventoryAndDiscoverySchedule.js.map +1 -0
  298. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784218257664-AddEnterpriseLicenseNotificationColumns.js +16 -0
  299. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784218257664-AddEnterpriseLicenseNotificationColumns.js.map +1 -0
  300. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784293516000-AddAttributionColumnsToUserAndProject.js +18 -0
  301. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784293516000-AddAttributionColumnsToUserAndProject.js.map +1 -0
  302. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784298000000-AddMarketingConversionTable.js +20 -0
  303. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784298000000-AddMarketingConversionTable.js.map +1 -0
  304. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +20 -0
  305. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  306. package/build/dist/Server/Services/AIRunEventService.js +8 -0
  307. package/build/dist/Server/Services/AIRunEventService.js.map +1 -1
  308. package/build/dist/Server/Services/AIRunService.js +29 -0
  309. package/build/dist/Server/Services/AIRunService.js.map +1 -1
  310. package/build/dist/Server/Services/AnalyticsDatabaseService.js +58 -4
  311. package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
  312. package/build/dist/Server/Services/IncidentService.js +12 -0
  313. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  314. package/build/dist/Server/Services/Index.js +10 -0
  315. package/build/dist/Server/Services/Index.js.map +1 -1
  316. package/build/dist/Server/Services/LlmProviderService.js +2 -0
  317. package/build/dist/Server/Services/LlmProviderService.js.map +1 -1
  318. package/build/dist/Server/Services/MarketingConversionService.js +9 -0
  319. package/build/dist/Server/Services/MarketingConversionService.js.map +1 -0
  320. package/build/dist/Server/Services/MetricItemAggMV1mByContainerService.js +29 -0
  321. package/build/dist/Server/Services/MetricItemAggMV1mByContainerService.js.map +1 -0
  322. package/build/dist/Server/Services/MetricItemAggMV1mByK8sClusterService.js +29 -0
  323. package/build/dist/Server/Services/MetricItemAggMV1mByK8sClusterService.js.map +1 -0
  324. package/build/dist/Server/Services/MetricItemAggMV1mByServiceService.js +29 -0
  325. package/build/dist/Server/Services/MetricItemAggMV1mByServiceService.js.map +1 -0
  326. package/build/dist/Server/Services/MetricService.js +761 -125
  327. package/build/dist/Server/Services/MetricService.js.map +1 -1
  328. package/build/dist/Server/Services/MonitorService.js +18 -5
  329. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  330. package/build/dist/Server/Services/NetworkDeviceOwnerTeamService.js +44 -0
  331. package/build/dist/Server/Services/NetworkDeviceOwnerTeamService.js.map +1 -1
  332. package/build/dist/Server/Services/NetworkDeviceOwnerUserService.js +88 -0
  333. package/build/dist/Server/Services/NetworkDeviceOwnerUserService.js.map +1 -1
  334. package/build/dist/Server/Services/NetworkFlowService.js +9 -0
  335. package/build/dist/Server/Services/NetworkFlowService.js.map +1 -0
  336. package/build/dist/Server/Services/OnCallDutyPolicyService.js +15 -6
  337. package/build/dist/Server/Services/OnCallDutyPolicyService.js.map +1 -1
  338. package/build/dist/Server/Services/ProjectService.js +146 -6
  339. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  340. package/build/dist/Server/Services/SpanService.js +8 -6
  341. package/build/dist/Server/Services/SpanService.js.map +1 -1
  342. package/build/dist/Server/Services/StatusPageService.js +91 -0
  343. package/build/dist/Server/Services/StatusPageService.js.map +1 -1
  344. package/build/dist/Server/Services/TeamMemberService.js +11 -0
  345. package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
  346. package/build/dist/Server/Services/TelemetryExceptionService.js +14 -61
  347. package/build/dist/Server/Services/TelemetryExceptionService.js.map +1 -1
  348. package/build/dist/Server/Services/UserService.js +52 -0
  349. package/build/dist/Server/Services/UserService.js.map +1 -1
  350. package/build/dist/Server/Types/AnalyticsDatabase/AggregateBy.js +33 -7
  351. package/build/dist/Server/Types/AnalyticsDatabase/AggregateBy.js.map +1 -1
  352. package/build/dist/Server/Types/Markdown.js +8 -8
  353. package/build/dist/Server/Types/Markdown.js.map +1 -1
  354. package/build/dist/Server/Types/MarkdownSlugify.js +47 -0
  355. package/build/dist/Server/Types/MarkdownSlugify.js.map +1 -0
  356. package/build/dist/Server/Utils/AI/AIRunTranscript.js +180 -0
  357. package/build/dist/Server/Utils/AI/AIRunTranscript.js.map +1 -0
  358. package/build/dist/Server/Utils/AI/Chat/ChatAgentRunner.js +1 -0
  359. package/build/dist/Server/Utils/AI/Chat/ChatAgentRunner.js.map +1 -1
  360. package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js +103 -5
  361. package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js.map +1 -1
  362. package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js +55 -0
  363. package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js.map +1 -1
  364. package/build/dist/Server/Utils/AI/CodeFix/CodeFixReadiness.js +211 -0
  365. package/build/dist/Server/Utils/AI/CodeFix/CodeFixReadiness.js.map +1 -0
  366. package/build/dist/Server/Utils/AI/SRE/Insights/FixRouting.js.map +1 -1
  367. package/build/dist/Server/Utils/AI/Toolbox/CodeTools.js +654 -0
  368. package/build/dist/Server/Utils/AI/Toolbox/CodeTools.js.map +1 -0
  369. package/build/dist/Server/Utils/AI/Toolbox/CodeWriteTools.js +389 -0
  370. package/build/dist/Server/Utils/AI/Toolbox/CodeWriteTools.js.map +1 -0
  371. package/build/dist/Server/Utils/AI/Toolbox/Index.js +19 -0
  372. package/build/dist/Server/Utils/AI/Toolbox/Index.js.map +1 -1
  373. package/build/dist/Server/Utils/AI/Toolbox/ScheduledMaintenanceTools.js +239 -0
  374. package/build/dist/Server/Utils/AI/Toolbox/ScheduledMaintenanceTools.js.map +1 -0
  375. package/build/dist/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.js +19 -1
  376. package/build/dist/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.js.map +1 -1
  377. package/build/dist/Server/Utils/Attribution.js +74 -0
  378. package/build/dist/Server/Utils/Attribution.js.map +1 -0
  379. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js +439 -0
  380. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js.map +1 -1
  381. package/build/dist/Server/Utils/CodeRepository/StackTraceRepoResolver.js +1 -1
  382. package/build/dist/Server/Utils/CodeRepository/StackTraceRepoResolver.js.map +1 -1
  383. package/build/dist/Server/Utils/LLM/LLMService.js +275 -19
  384. package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
  385. package/build/dist/Server/Utils/Marketing/ConversionUploadProvider.js +40 -0
  386. package/build/dist/Server/Utils/Marketing/ConversionUploadProvider.js.map +1 -0
  387. package/build/dist/Server/Utils/Marketing/ConversionUploadProviders.js +20 -0
  388. package/build/dist/Server/Utils/Marketing/ConversionUploadProviders.js.map +1 -0
  389. package/build/dist/Server/Utils/Marketing/Providers/GoogleAds.js +177 -0
  390. package/build/dist/Server/Utils/Marketing/Providers/GoogleAds.js.map +1 -0
  391. package/build/dist/Server/Utils/Marketing/Providers/LinkedIn.js +113 -0
  392. package/build/dist/Server/Utils/Marketing/Providers/LinkedIn.js.map +1 -0
  393. package/build/dist/Server/Utils/Marketing/Providers/Meta.js +109 -0
  394. package/build/dist/Server/Utils/Marketing/Providers/Meta.js.map +1 -0
  395. package/build/dist/Server/Utils/Marketing/Providers/MicrosoftAds.js +130 -0
  396. package/build/dist/Server/Utils/Marketing/Providers/MicrosoftAds.js.map +1 -0
  397. package/build/dist/Server/Utils/Marketing/Providers/Reddit.js +126 -0
  398. package/build/dist/Server/Utils/Marketing/Providers/Reddit.js.map +1 -0
  399. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +53 -9
  400. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  401. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +21 -10
  402. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  403. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +54 -11
  404. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  405. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js +43 -3
  406. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js.map +1 -1
  407. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +68 -0
  408. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
  409. package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js +17 -11
  410. package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js.map +1 -1
  411. package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js +100 -15
  412. package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js.map +1 -1
  413. package/build/dist/Server/Utils/ProductAnalytics.js +111 -0
  414. package/build/dist/Server/Utils/ProductAnalytics.js.map +1 -0
  415. package/build/dist/Server/Utils/Telemetry/Telemetry.js +32 -5
  416. package/build/dist/Server/Utils/Telemetry/Telemetry.js.map +1 -1
  417. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +17 -0
  418. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -1
  419. package/build/dist/Types/AI/AIAgentTaskStatus.js +12 -0
  420. package/build/dist/Types/AI/AIAgentTaskStatus.js.map +1 -1
  421. package/build/dist/Types/AI/AIChatPageContext.js +101 -0
  422. package/build/dist/Types/AI/AIChatPageContext.js.map +1 -0
  423. package/build/dist/Types/AI/AIChatTypes.js +2 -0
  424. package/build/dist/Types/AI/AIChatTypes.js.map +1 -1
  425. package/build/dist/Types/AI/AIFixReadiness.js +9 -0
  426. package/build/dist/Types/AI/AIFixReadiness.js.map +1 -0
  427. package/build/dist/Types/AI/AIRunStatus.js +11 -0
  428. package/build/dist/Types/AI/AIRunStatus.js.map +1 -1
  429. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js +11 -0
  430. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js.map +1 -1
  431. package/build/dist/Types/BaseDatabase/AggregationInterval.js +11 -0
  432. package/build/dist/Types/BaseDatabase/AggregationInterval.js.map +1 -1
  433. package/build/dist/Types/BaseDatabase/AggregationIntervalUtil.js +33 -5
  434. package/build/dist/Types/BaseDatabase/AggregationIntervalUtil.js.map +1 -1
  435. package/build/dist/Types/Email/EmailTemplateType.js +2 -0
  436. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  437. package/build/dist/Types/Log/LogSeverity.js +56 -0
  438. package/build/dist/Types/Log/LogSeverity.js.map +1 -1
  439. package/build/dist/Types/Marketing/MarketingConversion.js +13 -0
  440. package/build/dist/Types/Marketing/MarketingConversion.js.map +1 -0
  441. package/build/dist/Types/Monitor/MonitorMetricType.js +7 -0
  442. package/build/dist/Types/Monitor/MonitorMetricType.js.map +1 -1
  443. package/build/dist/Types/Monitor/MonitorStep.js +6 -0
  444. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  445. package/build/dist/Types/Monitor/MonitorStepSqlMonitor.js +3 -0
  446. package/build/dist/Types/Monitor/MonitorStepSqlMonitor.js.map +1 -1
  447. package/build/dist/Types/Monitor/MonitorType.js +2 -1
  448. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  449. package/build/dist/Types/Monitor/SnmpMonitor/CdpNeighbor.js +2 -0
  450. package/build/dist/Types/Monitor/SnmpMonitor/CdpNeighbor.js.map +1 -0
  451. package/build/dist/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.js +41 -0
  452. package/build/dist/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.js.map +1 -1
  453. package/build/dist/Types/Monitor/SnmpMonitor/SnmpEntityInfo.js +2 -0
  454. package/build/dist/Types/Monitor/SnmpMonitor/SnmpEntityInfo.js.map +1 -0
  455. package/build/dist/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.js +48 -0
  456. package/build/dist/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.js.map +1 -1
  457. package/build/dist/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.js +38 -0
  458. package/build/dist/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.js.map +1 -1
  459. package/build/dist/Types/Monitor/SnmpMonitor/SnmpSystemInfo.js +2 -0
  460. package/build/dist/Types/Monitor/SnmpMonitor/SnmpSystemInfo.js.map +1 -0
  461. package/build/dist/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.js +96 -3
  462. package/build/dist/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.js.map +1 -1
  463. package/build/dist/Types/Monitor/SnmpMonitor/SnmpVersion.js +38 -0
  464. package/build/dist/Types/Monitor/SnmpMonitor/SnmpVersion.js.map +1 -1
  465. package/build/dist/Types/NetFlow/NetworkFlowRecord.js +2 -0
  466. package/build/dist/Types/NetFlow/NetworkFlowRecord.js.map +1 -0
  467. package/build/dist/Types/Syslog/SyslogMessage.js +2 -0
  468. package/build/dist/Types/Syslog/SyslogMessage.js.map +1 -0
  469. package/build/dist/Types/Telemetry/TelemetrySavedViewState.js +0 -7
  470. package/build/dist/Types/Telemetry/TelemetrySavedViewState.js.map +1 -1
  471. package/build/dist/Types/Telemetry/TelemetrySavedViewType.js +13 -0
  472. package/build/dist/Types/Telemetry/TelemetrySavedViewType.js.map +1 -0
  473. package/build/dist/UI/Components/Charts/Area/AreaChart.js +25 -1
  474. package/build/dist/UI/Components/Charts/Area/AreaChart.js.map +1 -1
  475. package/build/dist/UI/Components/Charts/Bar/BarChart.js +26 -2
  476. package/build/dist/UI/Components/Charts/Bar/BarChart.js.map +1 -1
  477. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +36 -12
  478. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js.map +1 -1
  479. package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js +217 -8
  480. package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js.map +1 -1
  481. package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js +55 -4
  482. package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js.map +1 -1
  483. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js +217 -8
  484. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js.map +1 -1
  485. package/build/dist/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.js +6 -1
  486. package/build/dist/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.js.map +1 -1
  487. package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedReferenceRegion.js +2 -0
  488. package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedReferenceRegion.js.map +1 -0
  489. package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedTimeReferenceLine.js +2 -0
  490. package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedTimeReferenceLine.js.map +1 -0
  491. package/build/dist/UI/Components/Charts/Line/LineChart.js +25 -1
  492. package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
  493. package/build/dist/UI/Components/Charts/Types/ReferenceRegionProps.js +2 -0
  494. package/build/dist/UI/Components/Charts/Types/ReferenceRegionProps.js.map +1 -0
  495. package/build/dist/UI/Components/Charts/Types/TimeReferenceLineProps.js +2 -0
  496. package/build/dist/UI/Components/Charts/Types/TimeReferenceLineProps.js.map +1 -0
  497. package/build/dist/UI/Components/Charts/Types/XAxis/XAxisPrecision.js +1 -0
  498. package/build/dist/UI/Components/Charts/Types/XAxis/XAxisPrecision.js.map +1 -1
  499. package/build/dist/UI/Components/Charts/Utils/DataPoint.js +0 -0
  500. package/build/dist/UI/Components/Charts/Utils/DataPoint.js.map +1 -1
  501. package/build/dist/UI/Components/Charts/Utils/TimeAnnotation.js +121 -0
  502. package/build/dist/UI/Components/Charts/Utils/TimeAnnotation.js.map +1 -0
  503. package/build/dist/UI/Components/Charts/Utils/XAxis.js +27 -4
  504. package/build/dist/UI/Components/Charts/Utils/XAxis.js.map +1 -1
  505. package/build/dist/UI/Components/Forms/BasicForm.js +24 -6
  506. package/build/dist/UI/Components/Forms/BasicForm.js.map +1 -1
  507. package/build/dist/UI/Components/Icon/Icon.js +15 -8
  508. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  509. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
  510. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js +58 -0
  511. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js.map +1 -1
  512. package/build/dist/UI/Components/Page/ModelPage.js +7 -1
  513. package/build/dist/UI/Components/Page/ModelPage.js.map +1 -1
  514. package/build/dist/UI/Components/TelemetryViewer/components/SavedViewsDropdown.js +10 -4
  515. package/build/dist/UI/Components/TelemetryViewer/components/SavedViewsDropdown.js.map +1 -1
  516. package/build/dist/UI/Utils/AIChatExport/ChatWidgetData.js +217 -0
  517. package/build/dist/UI/Utils/AIChatExport/ChatWidgetData.js.map +1 -0
  518. package/build/dist/UI/Utils/AIChatExport/ChatWidgetMarkdown.js +234 -0
  519. package/build/dist/UI/Utils/AIChatExport/ChatWidgetMarkdown.js.map +1 -0
  520. package/build/dist/UI/Utils/AIChatExport/ConversationMarkdown.js +111 -0
  521. package/build/dist/UI/Utils/AIChatExport/ConversationMarkdown.js.map +1 -0
  522. package/build/dist/UI/Utils/AIChatExport/MarkdownBlocks.js +233 -0
  523. package/build/dist/UI/Utils/AIChatExport/MarkdownBlocks.js.map +1 -0
  524. package/build/dist/UI/Utils/AIChatExport/MarkdownSafety.js +134 -0
  525. package/build/dist/UI/Utils/AIChatExport/MarkdownSafety.js.map +1 -0
  526. package/build/dist/UI/Utils/DownloadFile.js +41 -0
  527. package/build/dist/UI/Utils/DownloadFile.js.map +1 -0
  528. package/build/dist/UI/Utils/User.js +35 -2
  529. package/build/dist/UI/Utils/User.js.map +1 -1
  530. package/build/dist/Utils/Analytics.js +8 -5
  531. package/build/dist/Utils/Analytics.js.map +1 -1
  532. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js +57 -0
  533. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js.map +1 -1
  534. package/build/dist/Utils/Metrics/MetricExplorerUrl.js +418 -0
  535. package/build/dist/Utils/Metrics/MetricExplorerUrl.js.map +1 -0
  536. package/build/dist/Utils/Metrics/MetricFormulaEvaluator.js +296 -37
  537. package/build/dist/Utils/Metrics/MetricFormulaEvaluator.js.map +1 -1
  538. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +176 -40
  539. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js.map +1 -1
  540. package/build/dist/Utils/ValueFormatter.js +20 -1
  541. package/build/dist/Utils/ValueFormatter.js.map +1 -1
  542. package/package.json +6 -2
@@ -0,0 +1,1324 @@
1
+ /*
2
+ * Shared dashboard theme tokens (Dashboard + Admin Dashboard). Light is
3
+ * intentionally the default; the dark values are activated only by the
4
+ * explicit class applied to <html>.
5
+ */
6
+ :root {
7
+ color-scheme: light;
8
+ --ou-background-primary: #f8f9fb;
9
+ --ou-surface-primary: #ffffff;
10
+ --ou-surface-secondary: #f9fafb;
11
+ --ou-surface-tertiary: #f3f4f6;
12
+ --ou-surface-quaternary: #e5e7eb;
13
+ --ou-border-subtle: #f3f4f6;
14
+ --ou-border-default: #e5e7eb;
15
+ --ou-border-strong: #d1d5db;
16
+ --ou-text-primary: #111827;
17
+ --ou-text-secondary: #4b5563;
18
+ --ou-text-muted: #6b7280;
19
+ --ou-text-subtle: #9ca3af;
20
+ --ou-chart-grid: #f1f5f9;
21
+ /* Axis ticks are 10px, so they need >= 4.5:1 against the light surface. */
22
+ --ou-chart-tick: #6b7280;
23
+ --ou-chart-series-neutral: #64748b;
24
+ --ou-chart-cursor: #d1d5db;
25
+ --ou-chart-track: #eef2f7;
26
+ --ou-chart-marker-ring: #ffffff;
27
+ --ou-flow-mask: rgb(241 245 249 / 70%);
28
+ --ou-accent-soft: #eef2ff;
29
+ --ou-accent-muted: #e0e7ff;
30
+ --ou-accent-text: #312e81;
31
+ --ou-link: #4f46e5;
32
+ --ou-danger-text: #b91c1c;
33
+ --ou-success-text: #166534;
34
+ --ou-tool-text: #0e7490;
35
+ --ou-warning-text: #b45309;
36
+ --ou-card-shadow: 0 1px 4px 0 rgb(0 0 0 / 4%),
37
+ 0 1px 2px -1px rgb(0 0 0 / 3%);
38
+ --ou-card-shadow-hover: 0 8px 25px -5px rgb(0 0 0 / 10%),
39
+ 0 4px 10px -6px rgb(0 0 0 / 5%);
40
+ --ou-card-shadow-selected: 0 4px 12px -2px rgb(59 130 246 / 12%),
41
+ 0 2px 4px -1px rgb(0 0 0 / 4%);
42
+ --ou-card-shadow-dragging: 0 20px 40px -8px rgb(59 130 246 / 15%),
43
+ 0 8px 16px -4px rgb(0 0 0 / 8%);
44
+ --ou-shadow-sm: 0 1px 3px rgb(15 23 42 / 8%);
45
+ --ou-shadow-md: 0 8px 20px -6px rgb(15 23 42 / 18%);
46
+ --ou-shadow-lg: 0 18px 40px -12px rgb(15 23 42 / 24%);
47
+ }
48
+
49
+ html.dark {
50
+ color-scheme: dark;
51
+ --ou-background-primary: #0f172a;
52
+ --ou-surface-primary: #172033;
53
+ --ou-surface-secondary: #1e293b;
54
+ --ou-surface-tertiary: #273449;
55
+ --ou-surface-quaternary: #334155;
56
+ --ou-border-subtle: #334155;
57
+ --ou-border-default: #475569;
58
+ --ou-border-strong: #64748b;
59
+ --ou-text-primary: #f8fafc;
60
+ --ou-text-secondary: #e2e8f0;
61
+ --ou-text-muted: #cbd5e1;
62
+ --ou-text-subtle: #94a3b8;
63
+ --ou-chart-grid: #334155;
64
+ --ou-chart-tick: #94a3b8;
65
+ --ou-chart-series-neutral: #cbd5e1;
66
+ --ou-chart-cursor: #64748b;
67
+ --ou-chart-track: #334155;
68
+ --ou-chart-marker-ring: #172033;
69
+ --ou-flow-mask: rgb(15 23 42 / 72%);
70
+ --ou-accent-soft: #1e1b4b;
71
+ --ou-accent-muted: #312e81;
72
+ --ou-accent-text: #e0e7ff;
73
+ --ou-link: #a5b4fc;
74
+ --ou-danger-text: #fca5a5;
75
+ --ou-success-text: #86efac;
76
+ --ou-tool-text: #67e8f9;
77
+ --ou-warning-text: #fcd34d;
78
+ --ou-card-shadow: 0 10px 28px rgb(0 0 0 / 42%),
79
+ 0 0 0 1px rgb(148 163 184 / 10%);
80
+ --ou-card-shadow-hover: 0 16px 36px -8px rgb(0 0 0 / 58%),
81
+ 0 0 0 1px rgb(148 163 184 / 16%);
82
+ --ou-card-shadow-selected: 0 10px 30px -8px rgb(59 130 246 / 38%),
83
+ 0 0 0 1px rgb(96 165 250 / 36%);
84
+ --ou-card-shadow-dragging: 0 24px 48px -10px rgb(0 0 0 / 68%),
85
+ 0 0 0 2px rgb(96 165 250 / 48%);
86
+ --ou-shadow-sm: 0 2px 6px rgb(0 0 0 / 36%),
87
+ 0 0 0 1px rgb(148 163 184 / 8%);
88
+ --ou-shadow-md: 0 12px 28px -8px rgb(0 0 0 / 52%),
89
+ 0 0 0 1px rgb(148 163 184 / 10%);
90
+ --ou-shadow-lg: 0 24px 52px -14px rgb(0 0 0 / 64%),
91
+ 0 0 0 1px rgb(148 163 184 / 12%);
92
+ }
93
+
94
+ html.dark,
95
+ html.dark body,
96
+ html.dark #root {
97
+ background-color: var(--ou-background-primary);
98
+ color: var(--ou-text-primary);
99
+ }
100
+
101
+ html.dark * {
102
+ --tw-ring-offset-color: var(--ou-background-primary);
103
+ }
104
+
105
+ html.dark ::selection {
106
+ background-color: rgb(99 102 241 / 45%);
107
+ color: #ffffff;
108
+ }
109
+
110
+ /* Core neutral surfaces. */
111
+ html.dark .bg-white,
112
+ html.dark [class~="!bg-white"] {
113
+ background-color: var(--ou-surface-primary) !important;
114
+ }
115
+
116
+ html.dark :is(
117
+ [class~="bg-white/60"],
118
+ [class~="bg-white/80"],
119
+ [class~="bg-white/90"],
120
+ [class~="bg-white/95"]
121
+ ) {
122
+ background-color: color-mix(
123
+ in srgb,
124
+ var(--ou-surface-primary) 88%,
125
+ transparent
126
+ );
127
+ }
128
+
129
+ html.dark :is(.bg-gray-50, .bg-slate-50) {
130
+ background-color: var(--ou-surface-secondary);
131
+ }
132
+
133
+ /* The app shell uses bg-gray-50 too; keep only the canvas at the deepest tone. */
134
+ html.dark body.bg-gray-50 {
135
+ background-color: var(--ou-background-primary) !important;
136
+ }
137
+
138
+ html.dark :is(
139
+ [class~="bg-gray-50/30"],
140
+ [class~="bg-gray-50/40"],
141
+ [class~="bg-gray-50/50"],
142
+ [class~="bg-gray-50/60"],
143
+ [class~="bg-gray-50/70"],
144
+ [class~="bg-gray-50/80"]
145
+ ) {
146
+ background-color: color-mix(
147
+ in srgb,
148
+ var(--ou-surface-secondary) 75%,
149
+ transparent
150
+ );
151
+ }
152
+
153
+ html.dark :is(.bg-gray-100, .bg-slate-100, .bg-stone-100),
154
+ html.dark [class~="!bg-gray-100"] {
155
+ background-color: var(--ou-surface-tertiary) !important;
156
+ }
157
+
158
+ html.dark :is(
159
+ [class~="bg-gray-100/50"],
160
+ [class~="bg-gray-100/60"],
161
+ [class~="bg-gray-100/70"]
162
+ ) {
163
+ background-color: color-mix(
164
+ in srgb,
165
+ var(--ou-surface-tertiary) 82%,
166
+ transparent
167
+ );
168
+ }
169
+
170
+ html.dark :is(.bg-gray-200, .bg-slate-200) {
171
+ background-color: var(--ou-surface-quaternary);
172
+ }
173
+
174
+ html.dark [class~="bg-gray-200/70"] {
175
+ background-color: color-mix(
176
+ in srgb,
177
+ var(--ou-surface-quaternary) 82%,
178
+ transparent
179
+ );
180
+ }
181
+
182
+ html.dark :is(.bg-gray-300, .bg-slate-300) {
183
+ background-color: var(--ou-border-strong);
184
+ }
185
+
186
+ /* Light-theme primary controls use gray-900, which otherwise merges into the canvas. */
187
+ html.dark .bg-gray-900.text-white {
188
+ background-color: var(--ou-surface-quaternary);
189
+ }
190
+
191
+ html.dark [class~="bg-gray-900/5"] {
192
+ background-color: rgb(148 163 184 / 12%);
193
+ }
194
+
195
+ /* State variants that otherwise flash back to literal light Tailwind colors. */
196
+ html.dark :is(
197
+ [class~="hover:bg-gray-50"],
198
+ [class*="hover:bg-gray-50/"],
199
+ [class~="hover:bg-slate-50"],
200
+ [class~="hover:bg-white"],
201
+ [class~="hover:bg-white/60"]
202
+ ):hover,
203
+ html.dark :is([class~="focus:bg-gray-50"], [class~="focus:bg-white"]):focus {
204
+ background-color: var(--ou-surface-secondary) !important;
205
+ }
206
+
207
+ html.dark :is(
208
+ [class~="hover:bg-gray-100"],
209
+ [class*="hover:bg-gray-100/"],
210
+ [class~="active:bg-gray-100"]
211
+ ):hover,
212
+ html.dark [class~="active:bg-gray-100"]:active,
213
+ html.dark [class~="disabled:bg-gray-100"]:disabled {
214
+ background-color: var(--ou-surface-tertiary) !important;
215
+ }
216
+
217
+ html.dark :is(
218
+ [class~="hover:bg-gray-200"],
219
+ [class*="hover:bg-gray-200/"],
220
+ [class~="group-hover:bg-gray-200"]
221
+ ):hover,
222
+ html.dark .group:hover :is(
223
+ [class~="group-hover:bg-gray-200"],
224
+ [class*="group-hover:bg-gray-50/"]
225
+ ) {
226
+ background-color: var(--ou-surface-quaternary) !important;
227
+ }
228
+
229
+ html.dark :is(
230
+ [class~="hover:bg-gray-300"],
231
+ [class~="group-hover:bg-gray-300"]
232
+ ):hover,
233
+ html.dark .group:hover [class~="group-hover:bg-gray-300"] {
234
+ background-color: var(--ou-border-default) !important;
235
+ }
236
+
237
+ html.dark [class~="hover:bg-gray-800"]:hover,
238
+ html.dark .group:hover [class~="group-hover:bg-gray-900"] {
239
+ background-color: var(--ou-border-default) !important;
240
+ }
241
+
242
+ /* Neutral text and placeholders. */
243
+ html.dark :is(.text-gray-900, .text-slate-900),
244
+ html.dark [class~="!text-gray-900"] {
245
+ color: var(--ou-text-primary) !important;
246
+ }
247
+
248
+ html.dark :is(.text-gray-800, .text-slate-800) {
249
+ color: var(--ou-text-primary);
250
+ }
251
+
252
+ html.dark :is(.text-gray-700, .text-slate-700, .text-stone-600) {
253
+ color: var(--ou-text-secondary);
254
+ }
255
+
256
+ html.dark :is(.text-gray-600, .text-slate-600) {
257
+ color: var(--ou-text-muted);
258
+ }
259
+
260
+ html.dark :is(.text-gray-500, .text-slate-500) {
261
+ color: var(--ou-text-subtle);
262
+ }
263
+
264
+ html.dark :is(.text-gray-400, .text-slate-400),
265
+ html.dark [class~="!text-gray-400"] {
266
+ color: #94a3b8 !important;
267
+ }
268
+
269
+ html.dark :is(.text-gray-300, .text-slate-300) {
270
+ color: #cbd5e1;
271
+ }
272
+
273
+ html.dark :is(
274
+ [class~="hover:text-gray-500"],
275
+ [class~="hover:text-gray-600"],
276
+ [class~="hover:text-gray-700"],
277
+ [class~="hover:text-gray-800"],
278
+ [class~="hover:text-gray-900"]
279
+ ):hover,
280
+ html.dark [class~="focus:text-gray-900"]:focus,
281
+ html.dark .group:hover [class*="group-hover"][class*="text-gray-"] {
282
+ color: var(--ou-text-primary) !important;
283
+ }
284
+
285
+ html.dark :is(.placeholder-gray-400, .placeholder-gray-500)::placeholder {
286
+ color: var(--ou-text-subtle);
287
+ }
288
+
289
+ /*
290
+ * Neutral borders, dividers, rings and SVG utility colors.
291
+ *
292
+ * Tailwind emits one class token per variant, and a class selector matches
293
+ * only the exact token: `.border-gray-200` never matches `sm:border-gray-200`,
294
+ * so an uncovered variant keeps its literal light Tailwind color and paints
295
+ * near-white on a dark surface. Two kinds of variant, handled differently:
296
+ *
297
+ * Responsive (sm:/md:/lg:/xl:) -- the same static color at a different
298
+ * breakpoint. Listed alongside the bare token, one color per step below.
299
+ *
300
+ * State (hover:/group-hover:/focus-within:) -- a DIFFERENT color, and only
301
+ * while the state holds. These need their own state-qualified rules; folding
302
+ * them in here would paint the state color permanently. For the same reason
303
+ * never widen these to [class*="border-gray-200"] -- that substring also
304
+ * matches `hover:border-gray-200`, which would give a permanent border to
305
+ * every `border-transparent hover:border-gray-200` element.
306
+ *
307
+ * When adding a variant to a component, add its token to the matching step.
308
+ */
309
+ html.dark :is(
310
+ .border-gray-50,
311
+ .border-gray-100,
312
+ .border-slate-200,
313
+ [class~="sm:border-gray-100"],
314
+ [class~="md:border-gray-100"],
315
+ [class~="lg:border-gray-100"],
316
+ [class~="xl:border-gray-100"]
317
+ ),
318
+ html.dark [class~="border-gray-100/80"],
319
+ html.dark [class~="!border-gray-100"] {
320
+ border-color: var(--ou-border-subtle) !important;
321
+ }
322
+
323
+ html.dark :is(
324
+ .border-gray-200,
325
+ .border-slate-300,
326
+ [class~="sm:border-gray-200"],
327
+ [class~="md:border-gray-200"],
328
+ [class~="lg:border-gray-200"],
329
+ [class~="xl:border-gray-200"]
330
+ ),
331
+ html.dark :is(
332
+ [class~="border-gray-200/60"],
333
+ [class~="border-gray-200/70"],
334
+ [class~="border-gray-200/80"]
335
+ ) {
336
+ border-color: var(--ou-border-default);
337
+ }
338
+
339
+ html.dark :is(
340
+ .border-gray-300,
341
+ [class~="sm:border-gray-300"],
342
+ [class~="md:border-gray-300"],
343
+ [class~="lg:border-gray-300"],
344
+ [class~="xl:border-gray-300"]
345
+ ),
346
+ html.dark [class~="!border-gray-300"] {
347
+ border-color: var(--ou-border-strong) !important;
348
+ }
349
+
350
+ html.dark :is(
351
+ [class~="hover:border-gray-200"],
352
+ [class~="hover:border-gray-300"],
353
+ [class~="hover:border-gray-400"],
354
+ [class~="hover:border-slate-300"]
355
+ ):hover,
356
+ html.dark [class~="focus-within:border-gray-300"]:focus-within {
357
+ border-color: #64748b !important;
358
+ }
359
+
360
+ /*
361
+ * A group-hover border rides alongside a hover background change, so it stays
362
+ * subtle -- the background is what carries the hover affordance.
363
+ */
364
+ html.dark .group:hover [class~="group-hover:border-gray-200"] {
365
+ border-color: var(--ou-border-subtle);
366
+ }
367
+
368
+ /* Divider scale: bare + responsive variants share one color per step. */
369
+ html.dark :is(
370
+ .divide-gray-50,
371
+ .divide-gray-100,
372
+ [class~="divide-gray-100/80"],
373
+ [class~="sm:divide-gray-100"],
374
+ [class~="md:divide-gray-100"],
375
+ [class~="lg:divide-gray-100"],
376
+ [class~="xl:divide-gray-100"]
377
+ ) > :not([hidden]) ~ :not([hidden]) {
378
+ border-color: var(--ou-border-subtle);
379
+ }
380
+
381
+ html.dark :is(
382
+ .divide-gray-200,
383
+ .divide-gray-300,
384
+ [class~="sm:divide-gray-200"],
385
+ [class~="md:divide-gray-200"],
386
+ [class~="lg:divide-gray-200"],
387
+ [class~="xl:divide-gray-200"]
388
+ ) > :not([hidden]) ~ :not([hidden]) {
389
+ border-color: var(--ou-border-default);
390
+ }
391
+
392
+ /*
393
+ * Exception, and the only one in the scale: the TopSection rule spans the full
394
+ * header width, so it reads subtle in dark even though gray-200 dividers map to
395
+ * --ou-border-default above. Light mode keeps gray-200, where a subtler step
396
+ * would all but vanish against the white header -- which is why this is a theme
397
+ * exception and not a different token on the component.
398
+ * Must stay after the scale: equal specificity, so source order decides.
399
+ */
400
+ html.dark [class~="lg:divide-gray-200"] > :not([hidden]) ~ :not([hidden]) {
401
+ border-color: var(--ou-border-subtle);
402
+ }
403
+
404
+ html.dark :is(
405
+ .ring-gray-100,
406
+ .ring-gray-200,
407
+ .ring-slate-200,
408
+ [class~="ring-gray-200/80"]
409
+ ) {
410
+ --tw-ring-color: var(--ou-border-default);
411
+ }
412
+
413
+ html.dark :is(.ring-gray-300, .ring-slate-300, .ring-stone-300) {
414
+ --tw-ring-color: var(--ou-border-strong);
415
+ }
416
+
417
+ html.dark :is([class~="ring-black/5"], [class~="ring-black/10"]) {
418
+ --tw-ring-color: rgb(148 163 184 / 18%);
419
+ }
420
+
421
+ html.dark [class~="ring-gray-900/5"] {
422
+ --tw-ring-color: rgb(148 163 184 / 20%);
423
+ }
424
+
425
+ html.dark .ring-white {
426
+ --tw-ring-color: var(--ou-surface-primary);
427
+ }
428
+
429
+ html.dark :is(
430
+ [class~="focus-visible:ring-gray-200"],
431
+ [class~="focus-visible:ring-gray-300"]
432
+ ):focus-visible {
433
+ --tw-ring-color: #64748b;
434
+ }
435
+
436
+ html.dark [class~="focus:ring-gray-900"]:focus,
437
+ html.dark [class~="focus-within:ring-gray-900"]:focus-within {
438
+ --tw-ring-color: #818cf8;
439
+ }
440
+
441
+ html.dark [class~="focus-visible:outline-gray-900"]:focus-visible {
442
+ outline-color: #818cf8 !important;
443
+ }
444
+
445
+ html.dark :is(.fill-gray-500, .fill-gray-800) {
446
+ fill: var(--ou-chart-tick);
447
+ }
448
+
449
+ html.dark .stroke-gray-100 {
450
+ stroke: var(--ou-chart-grid);
451
+ }
452
+
453
+ html.dark .stroke-gray-500 {
454
+ stroke: var(--ou-chart-series-neutral);
455
+ }
456
+
457
+ /* Tailwind's light shadows disappear against dark surfaces. */
458
+ html.dark .shadow-sm {
459
+ --tw-shadow: var(--ou-shadow-sm);
460
+ }
461
+
462
+ html.dark :is(.shadow, .shadow-md) {
463
+ --tw-shadow: var(--ou-shadow-md);
464
+ }
465
+
466
+ html.dark :is(.shadow-lg, .shadow-xl, .shadow-2xl) {
467
+ --tw-shadow: var(--ou-shadow-lg);
468
+ }
469
+
470
+ /* Light gradients become layered dark surfaces. */
471
+ html.dark :is(
472
+ .from-white,
473
+ .from-gray-50,
474
+ [class~="from-gray-50/50"],
475
+ [class~="from-gray-50/60"]
476
+ ) {
477
+ --tw-gradient-from: var(--ou-surface-primary) var(--tw-gradient-from-position);
478
+ --tw-gradient-to: rgb(17 24 39 / 0%) var(--tw-gradient-to-position);
479
+ }
480
+
481
+ /*
482
+ * Tailwind's via-* classes bake the middle color into --tw-gradient-stops
483
+ * directly (there is no --tw-gradient-via variable), so the stops list must be
484
+ * rebuilt to recolor the middle stop.
485
+ */
486
+ html.dark :is(.via-white, .via-gray-200) {
487
+ --tw-gradient-stops: var(--tw-gradient-from),
488
+ var(--ou-surface-secondary) var(--tw-gradient-via-position),
489
+ var(--tw-gradient-to);
490
+ }
491
+
492
+ html.dark :is(
493
+ .to-white,
494
+ .to-gray-50,
495
+ .to-gray-100,
496
+ .to-slate-50,
497
+ [class~="to-gray-50/50"]
498
+ ) {
499
+ --tw-gradient-to: var(--ou-surface-secondary)
500
+ var(--tw-gradient-to-position);
501
+ }
502
+
503
+ html.dark :is(.from-red-50, .from-rose-50, .from-orange-50) {
504
+ --tw-gradient-from: rgb(127 29 29 / 38%) var(--tw-gradient-from-position);
505
+ --tw-gradient-to: rgb(127 29 29 / 0%) var(--tw-gradient-to-position);
506
+ }
507
+
508
+ html.dark .from-amber-50 {
509
+ --tw-gradient-from: rgb(120 53 15 / 38%) var(--tw-gradient-from-position);
510
+ --tw-gradient-to: rgb(120 53 15 / 0%) var(--tw-gradient-to-position);
511
+ }
512
+
513
+ html.dark .from-emerald-50 {
514
+ --tw-gradient-from: rgb(6 78 59 / 38%) var(--tw-gradient-from-position);
515
+ --tw-gradient-to: rgb(6 78 59 / 0%) var(--tw-gradient-to-position);
516
+ }
517
+
518
+ html.dark :is(.from-blue-50, .from-sky-50, .from-cyan-50) {
519
+ --tw-gradient-from: rgb(30 64 175 / 35%) var(--tw-gradient-from-position);
520
+ --tw-gradient-to: rgb(30 64 175 / 0%) var(--tw-gradient-to-position);
521
+ }
522
+
523
+ html.dark :is(
524
+ .from-indigo-50,
525
+ .from-violet-50,
526
+ [class~="from-indigo-50/40"]
527
+ ) {
528
+ --tw-gradient-from: rgb(49 46 129 / 42%) var(--tw-gradient-from-position);
529
+ --tw-gradient-to: rgb(49 46 129 / 0%) var(--tw-gradient-to-position);
530
+ }
531
+
532
+ html.dark .via-indigo-50 {
533
+ --tw-gradient-stops: var(--tw-gradient-from),
534
+ rgb(49 46 129 / 34%) var(--tw-gradient-via-position),
535
+ var(--tw-gradient-to);
536
+ }
537
+
538
+ html.dark :is(.to-red-100, .to-rose-50) {
539
+ --tw-gradient-to: rgb(127 29 29 / 42%) var(--tw-gradient-to-position);
540
+ }
541
+
542
+ html.dark .to-amber-100 {
543
+ --tw-gradient-to: rgb(120 53 15 / 42%) var(--tw-gradient-to-position);
544
+ }
545
+
546
+ html.dark .to-emerald-100 {
547
+ --tw-gradient-to: rgb(6 78 59 / 42%) var(--tw-gradient-to-position);
548
+ }
549
+
550
+ html.dark :is(.to-blue-100, .to-sky-100) {
551
+ --tw-gradient-to: rgb(30 64 175 / 40%) var(--tw-gradient-to-position);
552
+ }
553
+
554
+ html.dark :is(
555
+ .to-indigo-50,
556
+ [class~="to-indigo-50/50"]
557
+ ) {
558
+ --tw-gradient-to: rgb(49 46 129 / 42%) var(--tw-gradient-to-position);
559
+ }
560
+
561
+ /* Semantic light surfaces retain hue without becoming luminous cards. */
562
+ html.dark :is(
563
+ .bg-red-50,
564
+ .bg-red-100,
565
+ [class~="bg-red-50/30"],
566
+ [class~="bg-red-50/40"],
567
+ [class~="bg-red-50/50"],
568
+ [class~="bg-red-50/60"]
569
+ ) {
570
+ background-color: rgb(127 29 29 / 32%);
571
+ }
572
+
573
+ html.dark :is(.bg-orange-50, .bg-orange-100) {
574
+ background-color: rgb(124 45 18 / 32%);
575
+ }
576
+
577
+ html.dark :is(
578
+ .bg-amber-50,
579
+ .bg-amber-100,
580
+ [class~="bg-amber-50/30"],
581
+ [class~="bg-amber-50/50"],
582
+ [class~="bg-amber-50/60"],
583
+ [class~="bg-amber-50/70"]
584
+ ) {
585
+ background-color: rgb(120 53 15 / 32%);
586
+ }
587
+
588
+ html.dark :is(.bg-yellow-50, .bg-yellow-100, [class~="bg-yellow-50/50"]) {
589
+ background-color: rgb(113 63 18 / 32%);
590
+ }
591
+
592
+ html.dark :is(.bg-green-50, .bg-green-100, [class~="bg-green-50/50"]) {
593
+ background-color: rgb(20 83 45 / 32%);
594
+ }
595
+
596
+ html.dark :is(
597
+ .bg-emerald-50,
598
+ .bg-emerald-100,
599
+ [class~="bg-emerald-50/60"],
600
+ [class~="bg-emerald-50/70"]
601
+ ) {
602
+ background-color: rgb(6 78 59 / 32%);
603
+ }
604
+
605
+ html.dark :is(.bg-teal-50, .bg-teal-100) {
606
+ background-color: rgb(19 78 74 / 32%);
607
+ }
608
+
609
+ html.dark :is(.bg-cyan-50, .bg-cyan-100) {
610
+ background-color: rgb(22 78 99 / 32%);
611
+ }
612
+
613
+ html.dark :is(.bg-sky-50, .bg-sky-100, [class~="bg-sky-50/60"]) {
614
+ background-color: rgb(12 74 110 / 32%);
615
+ }
616
+
617
+ html.dark :is(
618
+ .bg-blue-50,
619
+ .bg-blue-100,
620
+ [class~="bg-blue-50/40"],
621
+ [class~="bg-blue-50/50"]
622
+ ) {
623
+ background-color: rgb(30 64 175 / 28%);
624
+ }
625
+
626
+ html.dark :is(
627
+ .bg-indigo-50,
628
+ .bg-indigo-100,
629
+ .bg-indigo-200,
630
+ [class~="bg-indigo-50/30"],
631
+ [class~="bg-indigo-50/40"],
632
+ [class~="bg-indigo-50/50"],
633
+ [class~="bg-indigo-50/60"],
634
+ [class~="bg-indigo-50/70"],
635
+ [class~="bg-indigo-100/50"],
636
+ [class~="bg-indigo-500/5"]
637
+ ) {
638
+ background-color: rgb(49 46 129 / 35%);
639
+ }
640
+
641
+ html.dark :is(.bg-violet-50, .bg-violet-100, [class~="bg-violet-50/40"]) {
642
+ background-color: rgb(76 29 149 / 32%);
643
+ }
644
+
645
+ html.dark :is(.bg-purple-50, .bg-purple-100, [class~="bg-purple-50/50"]) {
646
+ background-color: rgb(88 28 135 / 32%);
647
+ }
648
+
649
+ html.dark :is(.bg-fuchsia-50, .bg-fuchsia-100) {
650
+ background-color: rgb(112 26 117 / 32%);
651
+ }
652
+
653
+ html.dark :is(.bg-pink-50, .bg-pink-100) {
654
+ background-color: rgb(131 24 67 / 32%);
655
+ }
656
+
657
+ html.dark :is(.bg-rose-50, .bg-rose-100, [class~="bg-rose-50/60"]) {
658
+ background-color: rgb(136 19 55 / 32%);
659
+ }
660
+
661
+ html.dark :is(
662
+ .text-red-500,
663
+ .text-red-600,
664
+ .text-red-700,
665
+ .text-red-800,
666
+ .text-red-900,
667
+ [class~="text-red-600/70"]
668
+ ) {
669
+ color: #fca5a5;
670
+ }
671
+
672
+ html.dark :is(
673
+ .text-orange-600,
674
+ .text-orange-700,
675
+ .text-orange-800,
676
+ .text-orange-900
677
+ ) {
678
+ color: #fdba74;
679
+ }
680
+
681
+ html.dark :is(
682
+ .text-amber-600,
683
+ .text-amber-700,
684
+ .text-amber-800,
685
+ .text-amber-900,
686
+ [class~="text-amber-700/80"]
687
+ ) {
688
+ color: #fcd34d;
689
+ }
690
+
691
+ /* Hint-chip icons (metric viewer) use the lighter amber accent. */
692
+ html.dark .text-amber-500 {
693
+ color: #fbbf24;
694
+ }
695
+
696
+ html.dark :is(
697
+ .text-yellow-600,
698
+ .text-yellow-700,
699
+ .text-yellow-800,
700
+ .text-yellow-900
701
+ ) {
702
+ color: #fde047;
703
+ }
704
+
705
+ html.dark :is(
706
+ .text-green-600,
707
+ .text-green-700,
708
+ .text-green-800,
709
+ .text-green-900
710
+ ) {
711
+ color: #86efac;
712
+ }
713
+
714
+ html.dark :is(
715
+ .text-emerald-600,
716
+ .text-emerald-700,
717
+ .text-emerald-800,
718
+ .text-emerald-900,
719
+ [class~="text-emerald-700/80"]
720
+ ) {
721
+ color: #6ee7b7;
722
+ }
723
+
724
+ html.dark :is(.text-teal-600, .text-teal-700, .text-teal-800) {
725
+ color: #5eead4;
726
+ }
727
+
728
+ html.dark :is(.text-cyan-600, .text-cyan-700, .text-cyan-800) {
729
+ color: #67e8f9;
730
+ }
731
+
732
+ html.dark :is(
733
+ .text-sky-600,
734
+ .text-sky-700,
735
+ .text-sky-800,
736
+ .text-sky-900,
737
+ [class~="text-sky-700/80"]
738
+ ) {
739
+ color: #7dd3fc;
740
+ }
741
+
742
+ html.dark :is(
743
+ .text-blue-500,
744
+ .text-blue-600,
745
+ .text-blue-700,
746
+ .text-blue-800,
747
+ .text-blue-900
748
+ ) {
749
+ color: #93c5fd;
750
+ }
751
+
752
+ html.dark :is(
753
+ .text-indigo-500,
754
+ .text-indigo-600,
755
+ .text-indigo-700,
756
+ .text-indigo-800,
757
+ .text-indigo-900,
758
+ [class~="text-indigo-500/80"]
759
+ ) {
760
+ color: #a5b4fc;
761
+ }
762
+
763
+ html.dark :is(
764
+ .text-violet-500,
765
+ .text-violet-600,
766
+ .text-violet-700,
767
+ .text-violet-800,
768
+ .text-violet-900
769
+ ) {
770
+ color: #c4b5fd;
771
+ }
772
+
773
+ html.dark :is(
774
+ .text-purple-600,
775
+ .text-purple-700,
776
+ .text-purple-800,
777
+ .text-purple-900
778
+ ) {
779
+ color: #d8b4fe;
780
+ }
781
+
782
+ html.dark :is(.text-fuchsia-600, .text-fuchsia-700) {
783
+ color: #e879f9;
784
+ }
785
+
786
+ html.dark :is(.text-pink-600, .text-pink-700) {
787
+ color: #f9a8d4;
788
+ }
789
+
790
+ html.dark :is(
791
+ .text-rose-500,
792
+ .text-rose-600,
793
+ .text-rose-700,
794
+ .text-rose-800,
795
+ .text-rose-900,
796
+ [class~="text-rose-700/80"]
797
+ ) {
798
+ color: #fda4af;
799
+ }
800
+
801
+ html.dark :is(
802
+ .border-red-100,
803
+ .border-red-200,
804
+ .border-red-300,
805
+ [class~="border-red-200/60"],
806
+ .ring-red-100,
807
+ .ring-red-200
808
+ ) {
809
+ border-color: rgb(248 113 113 / 45%);
810
+ --tw-ring-color: rgb(248 113 113 / 35%);
811
+ }
812
+
813
+ html.dark :is(
814
+ .border-amber-100,
815
+ .border-amber-200,
816
+ .border-amber-300,
817
+ [class~="border-amber-200/70"],
818
+ .ring-amber-100,
819
+ .ring-amber-200
820
+ ) {
821
+ border-color: rgb(251 191 36 / 42%);
822
+ --tw-ring-color: rgb(251 191 36 / 32%);
823
+ }
824
+
825
+ html.dark :is(
826
+ .border-green-100,
827
+ .border-green-200,
828
+ .border-emerald-100,
829
+ .border-emerald-200,
830
+ .border-emerald-300,
831
+ .ring-green-200,
832
+ .ring-emerald-200
833
+ ) {
834
+ border-color: rgb(52 211 153 / 42%);
835
+ --tw-ring-color: rgb(52 211 153 / 32%);
836
+ }
837
+
838
+ html.dark :is(
839
+ .border-fuchsia-100,
840
+ .border-pink-100,
841
+ .ring-fuchsia-200,
842
+ .ring-pink-200
843
+ ) {
844
+ border-color: rgb(232 121 249 / 42%);
845
+ --tw-ring-color: rgb(244 114 182 / 35%);
846
+ }
847
+
848
+ html.dark :is(
849
+ .border-blue-100,
850
+ .border-blue-200,
851
+ .border-blue-300,
852
+ .ring-blue-100,
853
+ .ring-blue-200,
854
+ .border-sky-100,
855
+ .border-sky-200,
856
+ .ring-sky-200
857
+ ) {
858
+ border-color: rgb(96 165 250 / 42%);
859
+ --tw-ring-color: rgb(96 165 250 / 32%);
860
+ }
861
+
862
+ html.dark :is(
863
+ .border-indigo-100,
864
+ .border-indigo-200,
865
+ .border-indigo-300,
866
+ .ring-indigo-100,
867
+ .ring-indigo-200,
868
+ .ring-indigo-300,
869
+ .border-violet-100,
870
+ .ring-violet-200,
871
+ .border-purple-100,
872
+ .ring-purple-200
873
+ ) {
874
+ border-color: rgb(129 140 248 / 45%);
875
+ --tw-ring-color: rgb(129 140 248 / 35%);
876
+ }
877
+
878
+ /* Formula-card variable badges (metric viewer). */
879
+ html.dark .border-violet-200 {
880
+ border-color: rgb(129 140 248 / 45%);
881
+ }
882
+
883
+ html.dark :is(
884
+ .border-yellow-100,
885
+ .border-yellow-200,
886
+ .border-orange-100,
887
+ .ring-yellow-200,
888
+ .ring-orange-200,
889
+ .border-rose-100,
890
+ .border-rose-200,
891
+ .ring-rose-200
892
+ ) {
893
+ border-color: rgb(251 146 60 / 42%);
894
+ --tw-ring-color: rgb(251 146 60 / 32%);
895
+ }
896
+
897
+ /* Semantic interaction variants use the same dark palette as their base. */
898
+ html.dark :is(
899
+ [class*="hover:bg-indigo-50"],
900
+ [class~="hover:bg-indigo-100"],
901
+ [class~="hover:bg-indigo-200"],
902
+ [class~="group-hover:bg-indigo-50"],
903
+ [class~="group-hover:bg-indigo-100"]
904
+ ):hover,
905
+ html.dark .group:hover :is(
906
+ [class*="group-hover:bg-indigo-50"],
907
+ [class~="group-hover:bg-indigo-100"]
908
+ ) {
909
+ background-color: rgb(49 46 129 / 48%) !important;
910
+ }
911
+
912
+ html.dark :is(
913
+ [class*="hover:bg-red-50"],
914
+ [class~="hover:bg-red-100"],
915
+ [class*="hover:bg-amber-50"],
916
+ [class~="hover:bg-amber-100"],
917
+ [class~="hover:bg-yellow-50"],
918
+ [class~="hover:bg-green-50"],
919
+ [class~="hover:bg-green-100"],
920
+ [class~="hover:bg-emerald-100"],
921
+ [class~="hover:bg-blue-50"],
922
+ [class~="hover:bg-rose-50"],
923
+ [class~="hover:bg-rose-100"]
924
+ ):hover {
925
+ background-color: var(--ou-surface-tertiary) !important;
926
+ }
927
+
928
+ html.dark [class*="hover:text-red-"]:hover,
929
+ html.dark .group:hover [class*="group-hover:text-red-"] {
930
+ color: #fca5a5 !important;
931
+ }
932
+
933
+ html.dark [class*="hover:text-amber-"]:hover,
934
+ html.dark .group:hover [class*="group-hover:text-amber-"] {
935
+ color: #fcd34d !important;
936
+ }
937
+
938
+ html.dark [class*="hover:text-green-"]:hover,
939
+ html.dark .group:hover [class*="group-hover:text-green-"],
940
+ html.dark [class*="hover:text-emerald-"]:hover,
941
+ html.dark .group:hover [class*="group-hover:text-emerald-"] {
942
+ color: #86efac !important;
943
+ }
944
+
945
+ html.dark [class*="hover:text-blue-"]:hover,
946
+ html.dark .group:hover [class*="group-hover:text-blue-"] {
947
+ color: #93c5fd !important;
948
+ }
949
+
950
+ html.dark [class*="hover:text-indigo-"]:hover,
951
+ html.dark .group:hover [class*="group-hover:text-indigo-"] {
952
+ color: #a5b4fc !important;
953
+ }
954
+
955
+ html.dark [class*="hover:text-violet-"]:hover,
956
+ html.dark [class*="hover:text-purple-"]:hover {
957
+ color: #c4b5fd !important;
958
+ }
959
+
960
+ html.dark [class*="hover:text-rose-"]:hover {
961
+ color: #fda4af !important;
962
+ }
963
+
964
+ html.dark [class*="focus:ring-indigo-"]:focus,
965
+ html.dark [class*="focus-visible:ring-indigo-"]:focus-visible {
966
+ --tw-ring-color: rgb(129 140 248 / 55%) !important;
967
+ }
968
+
969
+ html.dark [class*="focus:ring-red-"]:focus,
970
+ html.dark [class*="focus-visible:ring-red-"]:focus-visible {
971
+ --tw-ring-color: rgb(248 113 113 / 50%) !important;
972
+ }
973
+
974
+ html.dark [class*="focus:ring-blue-"]:focus,
975
+ html.dark [class*="focus:ring-emerald-"]:focus,
976
+ html.dark [class*="focus:ring-green-"]:focus {
977
+ --tw-ring-color: rgb(96 165 250 / 50%) !important;
978
+ }
979
+
980
+ html.dark :is(
981
+ [class*="hover:border-indigo-"],
982
+ [class*="focus:border-indigo-"]
983
+ ):hover,
984
+ html.dark [class*="focus:border-indigo-"]:focus {
985
+ border-color: #818cf8 !important;
986
+ }
987
+
988
+ html.dark :is(
989
+ .ring-indigo-50,
990
+ .ring-red-50,
991
+ .ring-blue-50,
992
+ .ring-green-50,
993
+ .ring-emerald-50,
994
+ .ring-amber-50,
995
+ .ring-yellow-50,
996
+ .ring-sky-50,
997
+ .ring-rose-50
998
+ ) {
999
+ --tw-ring-color: rgb(129 140 248 / 35%);
1000
+ }
1001
+
1002
+ /* Native controls and browser-managed states. */
1003
+ html.dark input,
1004
+ html.dark textarea,
1005
+ html.dark select,
1006
+ html.dark option,
1007
+ html.dark optgroup {
1008
+ color-scheme: dark;
1009
+ }
1010
+
1011
+ /* Switch thumbs are an affordance, not a surface, and must stay distinct. */
1012
+ html.dark button[role="switch"] > span.bg-white {
1013
+ background-color: #f8fafc !important;
1014
+ }
1015
+
1016
+ html.dark option,
1017
+ html.dark optgroup {
1018
+ background-color: var(--ou-surface-primary);
1019
+ color: var(--ou-text-primary);
1020
+ }
1021
+
1022
+ html.dark input:-webkit-autofill,
1023
+ html.dark input:-webkit-autofill:hover,
1024
+ html.dark input:-webkit-autofill:focus,
1025
+ html.dark textarea:-webkit-autofill,
1026
+ html.dark select:-webkit-autofill {
1027
+ -webkit-text-fill-color: var(--ou-text-primary);
1028
+ box-shadow: 0 0 0 1000px var(--ou-surface-primary) inset;
1029
+ caret-color: var(--ou-text-primary);
1030
+ }
1031
+
1032
+ html.dark {
1033
+ scrollbar-color: #475569 #0f172a;
1034
+ }
1035
+
1036
+ html.dark ::-webkit-scrollbar {
1037
+ width: 12px;
1038
+ height: 12px;
1039
+ }
1040
+
1041
+ html.dark ::-webkit-scrollbar-track {
1042
+ background: #0f172a;
1043
+ }
1044
+
1045
+ html.dark ::-webkit-scrollbar-thumb {
1046
+ background: #475569;
1047
+ border: 3px solid #0f172a;
1048
+ border-radius: 9999px;
1049
+ }
1050
+
1051
+ html.dark ::-webkit-scrollbar-thumb:hover {
1052
+ background: #64748b;
1053
+ }
1054
+
1055
+ /* Third-party portal and widget surfaces. */
1056
+ html.dark .tippy-box[data-theme~="light-border"] {
1057
+ background-color: var(--ou-surface-primary);
1058
+ color: var(--ou-text-secondary);
1059
+ border-color: var(--ou-border-strong);
1060
+ box-shadow: 0 12px 28px rgb(0 0 0 / 45%);
1061
+ }
1062
+
1063
+ html.dark .tippy-box[data-theme~="light-border"] > .tippy-backdrop {
1064
+ background-color: var(--ou-surface-primary);
1065
+ }
1066
+
1067
+ html.dark
1068
+ .tippy-box[data-theme~="light-border"][data-placement^="top"]
1069
+ > .tippy-arrow::before {
1070
+ border-top-color: var(--ou-surface-primary);
1071
+ }
1072
+
1073
+ html.dark
1074
+ .tippy-box[data-theme~="light-border"][data-placement^="top"]
1075
+ > .tippy-arrow::after {
1076
+ border-top-color: var(--ou-border-strong);
1077
+ }
1078
+
1079
+ html.dark
1080
+ .tippy-box[data-theme~="light-border"][data-placement^="bottom"]
1081
+ > .tippy-arrow::before {
1082
+ border-bottom-color: var(--ou-surface-primary);
1083
+ }
1084
+
1085
+ html.dark
1086
+ .tippy-box[data-theme~="light-border"][data-placement^="bottom"]
1087
+ > .tippy-arrow::after {
1088
+ border-bottom-color: var(--ou-border-strong);
1089
+ }
1090
+
1091
+ html.dark
1092
+ .tippy-box[data-theme~="light-border"][data-placement^="left"]
1093
+ > .tippy-arrow::before {
1094
+ border-left-color: var(--ou-surface-primary);
1095
+ }
1096
+
1097
+ html.dark
1098
+ .tippy-box[data-theme~="light-border"][data-placement^="left"]
1099
+ > .tippy-arrow::after {
1100
+ border-left-color: var(--ou-border-strong);
1101
+ }
1102
+
1103
+ html.dark
1104
+ .tippy-box[data-theme~="light-border"][data-placement^="right"]
1105
+ > .tippy-arrow::before {
1106
+ border-right-color: var(--ou-surface-primary);
1107
+ }
1108
+
1109
+ html.dark
1110
+ .tippy-box[data-theme~="light-border"][data-placement^="right"]
1111
+ > .tippy-arrow::after {
1112
+ border-right-color: var(--ou-border-strong);
1113
+ }
1114
+
1115
+ html.dark .tippy-box[data-theme~="light-border"] > .tippy-svg-arrow {
1116
+ fill: var(--ou-surface-primary);
1117
+ }
1118
+
1119
+ html.dark :is(.ou-select__control, .ou-select__menu) {
1120
+ background-color: var(--ou-surface-primary) !important;
1121
+ border-color: var(--ou-border-default) !important;
1122
+ color: var(--ou-text-primary) !important;
1123
+ }
1124
+
1125
+ html.dark :is(.ou-select__input-container, .ou-select__single-value) {
1126
+ color: var(--ou-text-primary) !important;
1127
+ }
1128
+
1129
+ html.dark .ou-select__placeholder {
1130
+ color: var(--ou-text-subtle) !important;
1131
+ }
1132
+
1133
+ html.dark .ou-select__option {
1134
+ background-color: var(--ou-surface-primary) !important;
1135
+ color: var(--ou-text-secondary) !important;
1136
+ }
1137
+
1138
+ html.dark .ou-select__option--is-focused {
1139
+ background-color: var(--ou-accent-soft) !important;
1140
+ color: #c7d2fe !important;
1141
+ }
1142
+
1143
+ html.dark .ou-select__option--is-selected {
1144
+ background-color: var(--ou-accent-muted) !important;
1145
+ color: #e0e7ff !important;
1146
+ }
1147
+
1148
+ html.dark .ou-select__multi-value {
1149
+ background-color: var(--ou-accent-soft) !important;
1150
+ border-color: rgb(129 140 248 / 45%) !important;
1151
+ }
1152
+
1153
+ html.dark .ou-select__multi-value__label {
1154
+ color: #c7d2fe !important;
1155
+ }
1156
+
1157
+ html.dark .ou-select__indicator {
1158
+ color: var(--ou-text-subtle) !important;
1159
+ }
1160
+
1161
+ html.dark .ou-select__indicator:hover {
1162
+ color: var(--ou-text-primary) !important;
1163
+ }
1164
+
1165
+ html.dark .ou-select__indicator-separator {
1166
+ background-color: var(--ou-border-default) !important;
1167
+ }
1168
+
1169
+ html.dark .ou-select__menu-notice {
1170
+ color: var(--ou-text-subtle) !important;
1171
+ }
1172
+
1173
+ html.dark .ou-select__control--is-focused {
1174
+ border-color: #818cf8 !important;
1175
+ box-shadow: 0 0 0 1px #818cf8 !important;
1176
+ }
1177
+
1178
+ html.dark .ou-select__control--is-disabled {
1179
+ background-color: var(--ou-surface-secondary) !important;
1180
+ color: var(--ou-text-subtle) !important;
1181
+ }
1182
+
1183
+ html.dark :is(.react-flow, .react-flow__renderer) {
1184
+ background-color: var(--ou-background-primary);
1185
+ }
1186
+
1187
+ html.dark :is(.react-flow__node-default, .react-flow__node-input, .react-flow__node-output) {
1188
+ background-color: var(--ou-surface-primary);
1189
+ border-color: var(--ou-border-default);
1190
+ color: var(--ou-text-primary);
1191
+ }
1192
+
1193
+ html.dark :is(.react-flow__controls, .react-flow__minimap) {
1194
+ background: var(--ou-surface-primary) !important;
1195
+ border-color: var(--ou-border-default) !important;
1196
+ }
1197
+
1198
+ html.dark .react-flow__controls-button {
1199
+ background: var(--ou-surface-primary) !important;
1200
+ border-color: var(--ou-border-default) !important;
1201
+ color: var(--ou-text-secondary) !important;
1202
+ fill: var(--ou-text-secondary) !important;
1203
+ }
1204
+
1205
+ html.dark .react-flow__controls-button:hover {
1206
+ background: var(--ou-surface-secondary) !important;
1207
+ }
1208
+
1209
+ html.dark .react-flow__controls-button svg {
1210
+ fill: currentColor;
1211
+ }
1212
+
1213
+ html.dark .chrome-picker {
1214
+ background-color: var(--ou-surface-primary) !important;
1215
+ color: var(--ou-text-primary) !important;
1216
+ box-shadow: 0 8px 24px rgb(0 0 0 / 45%) !important;
1217
+ }
1218
+
1219
+ html.dark .chrome-picker input {
1220
+ background-color: var(--ou-surface-secondary) !important;
1221
+ color: var(--ou-text-primary) !important;
1222
+ box-shadow: inset 0 0 0 1px var(--ou-border-default) !important;
1223
+ }
1224
+
1225
+ html.dark .chrome-picker svg {
1226
+ color: var(--ou-text-secondary) !important;
1227
+ fill: var(--ou-text-secondary) !important;
1228
+ }
1229
+
1230
+ /* React Big Calendar ships a light-only skin; these remain wrapper-scoped. */
1231
+ html.dark .oneuptime-calendar .rbc-calendar,
1232
+ html.dark .oneuptime-calendar .rbc-toolbar-label,
1233
+ html.dark .oneuptime-calendar .rbc-date-cell,
1234
+ html.dark .oneuptime-calendar .rbc-agenda-view table,
1235
+ html.dark .oneuptime-calendar .rbc-agenda-date-cell,
1236
+ html.dark .oneuptime-calendar .rbc-agenda-time-cell {
1237
+ color: var(--ou-text-secondary);
1238
+ }
1239
+
1240
+ html.dark .oneuptime-calendar :is(
1241
+ .rbc-month-view,
1242
+ .rbc-time-view,
1243
+ .rbc-agenda-view,
1244
+ .rbc-toolbar .rbc-btn-group,
1245
+ .rbc-time-content,
1246
+ .rbc-day-bg,
1247
+ .rbc-timeslot-group
1248
+ ) {
1249
+ background-color: var(--ou-surface-primary);
1250
+ border-color: var(--ou-border-default);
1251
+ }
1252
+
1253
+ html.dark .oneuptime-calendar :is(
1254
+ .rbc-header,
1255
+ .rbc-off-range-bg,
1256
+ .rbc-toolbar button:hover,
1257
+ .rbc-toolbar button:focus,
1258
+ .rbc-agenda-view thead > tr > th
1259
+ ) {
1260
+ background-color: var(--ou-surface-secondary);
1261
+ border-color: var(--ou-border-default);
1262
+ color: var(--ou-text-muted);
1263
+ }
1264
+
1265
+ html.dark .oneuptime-calendar .rbc-today {
1266
+ background-color: var(--ou-accent-soft);
1267
+ }
1268
+
1269
+ html.dark .oneuptime-calendar .rbc-toolbar button {
1270
+ background-color: var(--ou-surface-primary);
1271
+ border-color: var(--ou-border-default);
1272
+ color: var(--ou-text-secondary);
1273
+ }
1274
+
1275
+ html.dark .oneuptime-calendar .rbc-toolbar button.rbc-active {
1276
+ background-color: var(--ou-accent-soft);
1277
+ border-color: var(--ou-border-strong);
1278
+ color: var(--ou-accent-text);
1279
+ }
1280
+
1281
+ html.dark .oneuptime-calendar :is(.rbc-off-range, .rbc-label) {
1282
+ color: var(--ou-text-subtle);
1283
+ }
1284
+
1285
+ html.dark .oneuptime-calendar .rbc-show-more {
1286
+ background-color: var(--ou-surface-secondary);
1287
+ color: var(--ou-link);
1288
+ }
1289
+
1290
+ html.dark .oneuptime-calendar .rbc-current-time-indicator {
1291
+ background-color: #818cf8;
1292
+ }
1293
+
1294
+ html.dark .oneuptime-calendar :is(
1295
+ .rbc-month-row,
1296
+ .rbc-day-bg,
1297
+ .rbc-header,
1298
+ .rbc-time-header-content,
1299
+ .rbc-time-slot,
1300
+ .rbc-timeslot-group,
1301
+ td,
1302
+ th
1303
+ ) {
1304
+ border-color: var(--ou-border-default) !important;
1305
+ }
1306
+
1307
+ /* SVG/Recharts literals used by older widgets. */
1308
+ html.dark svg :is(
1309
+ [stroke="#f1f5f9"],
1310
+ [stroke="#e2e8f0"],
1311
+ [stroke="#e5e7eb"],
1312
+ [stroke="#d1d5db"]
1313
+ ) {
1314
+ stroke: var(--ou-chart-grid) !important;
1315
+ }
1316
+
1317
+ html.dark svg :is([fill="#94a3b8"], [fill="#6b7280"]) {
1318
+ fill: var(--ou-chart-tick) !important;
1319
+ }
1320
+
1321
+ html.dark :fullscreen,
1322
+ html.dark ::backdrop {
1323
+ background-color: var(--ou-background-primary);
1324
+ }