@datarecce/ui 0.1.41 → 0.2.1-nightly.20260402

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 (717) hide show
  1. package/README.md +28 -133
  2. package/dist/AuthModal-B38pWD3T.js +7 -0
  3. package/dist/AuthModal-B38pWD3T.js.map +1 -0
  4. package/dist/RouteConfigContext-DWFg6bll.d.ts +171 -0
  5. package/dist/RouteConfigContext-DWFg6bll.d.ts.map +1 -0
  6. package/dist/RunProgress-BCFXvUsE.d.ts +429 -0
  7. package/dist/RunProgress-BCFXvUsE.d.ts.map +1 -0
  8. package/dist/ScreenshotDataGrid-BAsPWcde.d.ts +63 -0
  9. package/dist/ScreenshotDataGrid-BAsPWcde.d.ts.map +1 -0
  10. package/dist/SplitPane-g8w-XF2_.d.ts +1607 -0
  11. package/dist/SplitPane-g8w-XF2_.d.ts.map +1 -0
  12. package/dist/advanced.d.ts +17 -0
  13. package/dist/advanced.d.ts.map +1 -0
  14. package/dist/advanced.js +3 -0
  15. package/dist/advanced.js.map +1 -0
  16. package/dist/api-BwiRz6pD.d.ts +254 -0
  17. package/dist/api-BwiRz6pD.d.ts.map +1 -0
  18. package/dist/api-CbzeUNef.js +3 -0
  19. package/dist/api-CbzeUNef.js.map +1 -0
  20. package/dist/api.d.ts +3 -2
  21. package/dist/api.js +2 -100
  22. package/dist/colors-BbPSDR1X.js +3 -0
  23. package/dist/colors-BbPSDR1X.js.map +1 -0
  24. package/dist/components-run.d.ts +5 -0
  25. package/dist/components-run.js +2 -0
  26. package/dist/components.d.ts +9 -2
  27. package/dist/components.js +2 -86
  28. package/dist/constants-D-hOGDbU.js +3 -0
  29. package/dist/constants-D-hOGDbU.js.map +1 -0
  30. package/dist/constants.d.ts +3 -0
  31. package/dist/constants.js +2 -0
  32. package/dist/contexts.d.ts +6 -0
  33. package/dist/contexts.js +2 -0
  34. package/dist/fetchClient-Bqjx8inP.js +3 -0
  35. package/dist/fetchClient-Bqjx8inP.js.map +1 -0
  36. package/dist/fetchClient-CTnJ39EA.d.ts +19 -0
  37. package/dist/fetchClient-CTnJ39EA.d.ts.map +1 -0
  38. package/dist/hooks.d.ts +3 -2
  39. package/dist/hooks.js +2 -43
  40. package/dist/index-B1IyNkDA.d.ts +472 -0
  41. package/dist/index-B1IyNkDA.d.ts.map +1 -0
  42. package/dist/index-BJOCIgE1.d.ts +148 -0
  43. package/dist/index-BJOCIgE1.d.ts.map +1 -0
  44. package/dist/index-C9nBECPv.d.ts +212 -0
  45. package/dist/index-C9nBECPv.d.ts.map +1 -0
  46. package/dist/index-CHJ0PCEg.d.ts +380 -0
  47. package/dist/index-CHJ0PCEg.d.ts.map +1 -0
  48. package/dist/index-CZ7gueQV.d.ts +13 -0
  49. package/dist/index-CZ7gueQV.d.ts.map +1 -0
  50. package/dist/index-CaKcjGJC.d.ts +1536 -0
  51. package/dist/index-CaKcjGJC.d.ts.map +1 -0
  52. package/dist/index-D-H3NTdf.d.ts +744 -0
  53. package/dist/index-D-H3NTdf.d.ts.map +1 -0
  54. package/dist/index-Dh6gw0NG.d.ts +351 -0
  55. package/dist/index-Dh6gw0NG.d.ts.map +1 -0
  56. package/dist/index-Dp-BUtpt.d.ts +704 -0
  57. package/dist/index-Dp-BUtpt.d.ts.map +1 -0
  58. package/dist/index.d.ts +17 -2
  59. package/dist/index.js +2 -198
  60. package/dist/instanceInfo-DNLFhkK8.d.ts +909 -0
  61. package/dist/instanceInfo-DNLFhkK8.d.ts.map +1 -0
  62. package/dist/keepAlive-Dj0q3fC9.js +3 -0
  63. package/dist/keepAlive-Dj0q3fC9.js.map +1 -0
  64. package/dist/lib/api/queryClient.d.ts +8 -0
  65. package/dist/lib/api/queryClient.d.ts.map +1 -0
  66. package/dist/lib/api/queryClient.js +3 -0
  67. package/dist/lib/api/queryClient.js.map +1 -0
  68. package/dist/lib/api/track.d.ts +137 -0
  69. package/dist/lib/api/track.d.ts.map +1 -0
  70. package/dist/lib/api/track.js +3 -0
  71. package/dist/lib/api/track.js.map +1 -0
  72. package/dist/lib/api/user.d.ts +16 -0
  73. package/dist/lib/api/user.d.ts.map +1 -0
  74. package/dist/lib/api/user.js +3 -0
  75. package/dist/lib/api/user.js.map +1 -0
  76. package/dist/lib/const.d.ts +8 -0
  77. package/dist/lib/const.d.ts.map +1 -0
  78. package/dist/lib/const.js +3 -0
  79. package/dist/lib/const.js.map +1 -0
  80. package/dist/lib/result/ResultErrorFallback.d.ts +8 -0
  81. package/dist/lib/result/ResultErrorFallback.d.ts.map +1 -0
  82. package/dist/lib/result/ResultErrorFallback.js +3 -0
  83. package/dist/lib/result/ResultErrorFallback.js.map +1 -0
  84. package/dist/lineage-DsKqx9yh.d.ts +1299 -0
  85. package/dist/lineage-DsKqx9yh.d.ts.map +1 -0
  86. package/dist/primitives-D8s_Rs5T.d.ts +1089 -0
  87. package/dist/primitives-D8s_Rs5T.d.ts.map +1 -0
  88. package/dist/primitives.d.ts +8 -0
  89. package/dist/primitives.js +2 -0
  90. package/dist/result.d.ts +3 -0
  91. package/dist/result.js +2 -0
  92. package/dist/src-BH-TT0Mt.js +12 -0
  93. package/dist/src-BH-TT0Mt.js.map +1 -0
  94. package/dist/style.css +290 -0
  95. package/dist/styles.css +478 -4
  96. package/dist/theme-B_XT39eO.js +3 -0
  97. package/dist/theme-B_XT39eO.js.map +1 -0
  98. package/dist/theme.d.ts +2 -2
  99. package/dist/theme.js +2 -9
  100. package/dist/types-DLRfpcrV.d.ts +234 -0
  101. package/dist/types-DLRfpcrV.d.ts.map +1 -0
  102. package/dist/types-qpgIe7MT.d.ts +171 -0
  103. package/dist/types-qpgIe7MT.d.ts.map +1 -0
  104. package/dist/types.d.ts +10 -2
  105. package/dist/types.js +3 -9
  106. package/dist/types.js.map +1 -0
  107. package/dist/useThemeColors-OwCMwSrx.d.ts +79 -0
  108. package/dist/useThemeColors-OwCMwSrx.d.ts.map +1 -0
  109. package/dist/utils-BwEuAiEd.js +3 -0
  110. package/dist/utils-BwEuAiEd.js.map +1 -0
  111. package/dist/utils-Crcz1Rb5.js +6 -0
  112. package/dist/utils-Crcz1Rb5.js.map +1 -0
  113. package/dist/utils.d.ts +3 -0
  114. package/dist/utils.js +2 -0
  115. package/package.json +142 -108
  116. package/LICENSE +0 -201
  117. package/dist/RecceCheckContext-BJprb2xR.js +0 -7968
  118. package/dist/RecceCheckContext-BJprb2xR.js.map +0 -1
  119. package/dist/RecceCheckContext-DPnWB_aU.css +0 -215
  120. package/dist/RecceCheckContext-DPnWB_aU.css.map +0 -1
  121. package/dist/RecceCheckContext-DbZ7BdRy.mjs +0 -7426
  122. package/dist/RecceCheckContext-DbZ7BdRy.mjs.map +0 -1
  123. package/dist/RecceCheckContext-DyxOeUsX.css +0 -215
  124. package/dist/RecceCheckContext-DyxOeUsX.css.map +0 -1
  125. package/dist/api.d.mts +0 -3
  126. package/dist/api.js.map +0 -1
  127. package/dist/api.mjs +0 -46
  128. package/dist/api.mjs.map +0 -1
  129. package/dist/components-BeAjVBV3.css +0 -70
  130. package/dist/components-BeAjVBV3.css.map +0 -1
  131. package/dist/components-DfXnN1Hx.js +0 -14689
  132. package/dist/components-DfXnN1Hx.js.map +0 -1
  133. package/dist/components-iUxcqtUB.css +0 -70
  134. package/dist/components-iUxcqtUB.css.map +0 -1
  135. package/dist/components-jh6r4tQn.mjs +0 -12348
  136. package/dist/components-jh6r4tQn.mjs.map +0 -1
  137. package/dist/components.d.mts +0 -3
  138. package/dist/components.mjs +0 -9
  139. package/dist/const-CaIm1Z8g.mjs +0 -12
  140. package/dist/const-CaIm1Z8g.mjs.map +0 -1
  141. package/dist/const-CvdZO0FN.js +0 -24
  142. package/dist/const-CvdZO0FN.js.map +0 -1
  143. package/dist/hooks-cQsBXBd1.js +0 -40
  144. package/dist/hooks-cQsBXBd1.js.map +0 -1
  145. package/dist/hooks-eaHm_yEp.mjs +0 -33
  146. package/dist/hooks-eaHm_yEp.mjs.map +0 -1
  147. package/dist/hooks.d.mts +0 -3
  148. package/dist/hooks.mjs +0 -8
  149. package/dist/html2canvas-pro.esm-CsuSOHXp.js +0 -7250
  150. package/dist/html2canvas-pro.esm-CsuSOHXp.js.map +0 -1
  151. package/dist/html2canvas-pro.esm-E7kpobrC.mjs +0 -7249
  152. package/dist/html2canvas-pro.esm-E7kpobrC.mjs.map +0 -1
  153. package/dist/index-B5bpmv0i.d.mts +0 -2172
  154. package/dist/index-B5bpmv0i.d.mts.map +0 -1
  155. package/dist/index-B9lSPJTi.d.ts +0 -2170
  156. package/dist/index-B9lSPJTi.d.ts.map +0 -1
  157. package/dist/index.d.mts +0 -3
  158. package/dist/index.js.map +0 -1
  159. package/dist/index.mjs +0 -20
  160. package/dist/index.mjs.map +0 -1
  161. package/dist/mui-theme-CUhybmBq.mjs +0 -696
  162. package/dist/mui-theme-CUhybmBq.mjs.map +0 -1
  163. package/dist/mui-theme-iBHkjXJq.js +0 -732
  164. package/dist/mui-theme-iBHkjXJq.js.map +0 -1
  165. package/dist/state-CTITyT0R.js +0 -795
  166. package/dist/state-CTITyT0R.js.map +0 -1
  167. package/dist/state-Sc2b4jri.mjs +0 -382
  168. package/dist/state-Sc2b4jri.mjs.map +0 -1
  169. package/dist/theme.d.mts +0 -3
  170. package/dist/theme.mjs +0 -4
  171. package/dist/tooltipMessage-BC5W7H3X.js +0 -13
  172. package/dist/tooltipMessage-BC5W7H3X.js.map +0 -1
  173. package/dist/tooltipMessage-B_xMIKWL.mjs +0 -7
  174. package/dist/tooltipMessage-B_xMIKWL.mjs.map +0 -1
  175. package/dist/types.d.mts +0 -3
  176. package/dist/types.mjs +0 -6
  177. package/dist/urls-BQW5wjg-.js +0 -13
  178. package/dist/urls-BQW5wjg-.js.map +0 -1
  179. package/dist/urls-DT7FVEcS.mjs +0 -7
  180. package/dist/urls-DT7FVEcS.mjs.map +0 -1
  181. package/dist/version-B9s8yne-.js +0 -300
  182. package/dist/version-B9s8yne-.js.map +0 -1
  183. package/dist/version-DP1kU_7v.mjs +0 -162
  184. package/dist/version-DP1kU_7v.mjs.map +0 -1
  185. package/recce-source/.editorconfig +0 -26
  186. package/recce-source/.flake8 +0 -37
  187. package/recce-source/.github/ISSUE_TEMPLATE/bug_report.yml +0 -67
  188. package/recce-source/.github/ISSUE_TEMPLATE/custom.md +0 -10
  189. package/recce-source/.github/ISSUE_TEMPLATE/feature_request.yml +0 -42
  190. package/recce-source/.github/PULL_REQUEST_TEMPLATE.md +0 -21
  191. package/recce-source/.github/copilot-instructions.md +0 -331
  192. package/recce-source/.github/instructions/backend-instructions.md +0 -541
  193. package/recce-source/.github/instructions/frontend-instructions.md +0 -317
  194. package/recce-source/.github/workflows/build-statics.yaml +0 -72
  195. package/recce-source/.github/workflows/bump.yaml +0 -48
  196. package/recce-source/.github/workflows/integration-tests-cloud.yaml +0 -92
  197. package/recce-source/.github/workflows/integration-tests-sqlmesh.yaml +0 -33
  198. package/recce-source/.github/workflows/integration-tests.yaml +0 -52
  199. package/recce-source/.github/workflows/nightly.yaml +0 -246
  200. package/recce-source/.github/workflows/release.yaml +0 -196
  201. package/recce-source/.github/workflows/tests-js.yaml +0 -58
  202. package/recce-source/.github/workflows/tests-python.yaml +0 -128
  203. package/recce-source/.pre-commit-config.yaml +0 -26
  204. package/recce-source/CLAUDE.md +0 -483
  205. package/recce-source/CODE_OF_CONDUCT.md +0 -128
  206. package/recce-source/CONTRIBUTING.md +0 -107
  207. package/recce-source/LICENSE +0 -201
  208. package/recce-source/Makefile +0 -126
  209. package/recce-source/README.md +0 -182
  210. package/recce-source/RECCE_CLOUD.md +0 -81
  211. package/recce-source/SECURITY.md +0 -25
  212. package/recce-source/docs/PACKAGING.md +0 -340
  213. package/recce-source/docs/README.md +0 -1
  214. package/recce-source/docs/plans/2024-12-31-csv-download-design.md +0 -121
  215. package/recce-source/docs/plans/2024-12-31-csv-download-implementation.md +0 -930
  216. package/recce-source/integration_tests/dbt/dbt_project.yml +0 -26
  217. package/recce-source/integration_tests/dbt/models/customers.sql +0 -69
  218. package/recce-source/integration_tests/dbt/models/docs.md +0 -14
  219. package/recce-source/integration_tests/dbt/models/orders.sql +0 -56
  220. package/recce-source/integration_tests/dbt/models/schema.yml +0 -82
  221. package/recce-source/integration_tests/dbt/models/staging/schema.yml +0 -31
  222. package/recce-source/integration_tests/dbt/models/staging/stg_customers.sql +0 -22
  223. package/recce-source/integration_tests/dbt/models/staging/stg_orders.sql +0 -23
  224. package/recce-source/integration_tests/dbt/models/staging/stg_payments.sql +0 -25
  225. package/recce-source/integration_tests/dbt/packages.yml +0 -7
  226. package/recce-source/integration_tests/dbt/profiles.yml +0 -8
  227. package/recce-source/integration_tests/dbt/seeds/raw_customers.csv +0 -101
  228. package/recce-source/integration_tests/dbt/seeds/raw_orders.csv +0 -100
  229. package/recce-source/integration_tests/dbt/seeds/raw_payments.csv +0 -114
  230. package/recce-source/integration_tests/dbt/seeds/raw_statuses.csv +0 -5
  231. package/recce-source/integration_tests/dbt/smoke_test.sh +0 -72
  232. package/recce-source/integration_tests/dbt/smoke_test_cloud.sh +0 -71
  233. package/recce-source/integration_tests/sqlmesh/__init__.py +0 -0
  234. package/recce-source/integration_tests/sqlmesh/audits/assert_item_price_above_zero.sql +0 -9
  235. package/recce-source/integration_tests/sqlmesh/audits/items.sql +0 -7
  236. package/recce-source/integration_tests/sqlmesh/audits/order_items.sql +0 -7
  237. package/recce-source/integration_tests/sqlmesh/config.py +0 -171
  238. package/recce-source/integration_tests/sqlmesh/helper.py +0 -20
  239. package/recce-source/integration_tests/sqlmesh/hooks/__init__.py +0 -0
  240. package/recce-source/integration_tests/sqlmesh/macros/__init__.py +0 -0
  241. package/recce-source/integration_tests/sqlmesh/macros/macros.py +0 -8
  242. package/recce-source/integration_tests/sqlmesh/macros/macros.sql +0 -8
  243. package/recce-source/integration_tests/sqlmesh/macros/utils.py +0 -11
  244. package/recce-source/integration_tests/sqlmesh/metrics/metrics.sql +0 -25
  245. package/recce-source/integration_tests/sqlmesh/models/customer_revenue_by_day.sql +0 -41
  246. package/recce-source/integration_tests/sqlmesh/models/customer_revenue_lifetime.sql +0 -60
  247. package/recce-source/integration_tests/sqlmesh/models/customers.sql +0 -32
  248. package/recce-source/integration_tests/sqlmesh/models/items.py +0 -95
  249. package/recce-source/integration_tests/sqlmesh/models/marketing.sql +0 -15
  250. package/recce-source/integration_tests/sqlmesh/models/order_items.py +0 -95
  251. package/recce-source/integration_tests/sqlmesh/models/orders.py +0 -70
  252. package/recce-source/integration_tests/sqlmesh/models/raw_marketing.py +0 -62
  253. package/recce-source/integration_tests/sqlmesh/models/top_waiters.sql +0 -23
  254. package/recce-source/integration_tests/sqlmesh/models/waiter_as_customer_by_day.sql +0 -29
  255. package/recce-source/integration_tests/sqlmesh/models/waiter_names.sql +0 -10
  256. package/recce-source/integration_tests/sqlmesh/models/waiter_revenue_by_day.sql +0 -29
  257. package/recce-source/integration_tests/sqlmesh/models/waiters.py +0 -62
  258. package/recce-source/integration_tests/sqlmesh/prep_env.sh +0 -16
  259. package/recce-source/integration_tests/sqlmesh/schema.yaml +0 -5
  260. package/recce-source/integration_tests/sqlmesh/seeds/waiter_names.csv +0 -11
  261. package/recce-source/integration_tests/sqlmesh/test_server.sh +0 -29
  262. package/recce-source/integration_tests/sqlmesh/tests/test_customer_revenue_by_day.yaml +0 -63
  263. package/recce-source/integration_tests/sqlmesh/tests/test_order_items.yaml +0 -72
  264. package/recce-source/js/.editorconfig +0 -27
  265. package/recce-source/js/.env.development +0 -5
  266. package/recce-source/js/.husky/pre-commit +0 -29
  267. package/recce-source/js/.nvmrc +0 -1
  268. package/recce-source/js/README.md +0 -39
  269. package/recce-source/js/app/(mainComponents)/DisplayModeToggle.tsx +0 -65
  270. package/recce-source/js/app/(mainComponents)/NavBar.tsx +0 -228
  271. package/recce-source/js/app/(mainComponents)/RecceVersionBadge.tsx +0 -107
  272. package/recce-source/js/app/(mainComponents)/TopBar.tsx +0 -252
  273. package/recce-source/js/app/@lineage/default.tsx +0 -20
  274. package/recce-source/js/app/@lineage/page.tsx +0 -14
  275. package/recce-source/js/app/MainLayout.tsx +0 -170
  276. package/recce-source/js/app/Providers.tsx +0 -49
  277. package/recce-source/js/app/checks/page.tsx +0 -296
  278. package/recce-source/js/app/error.tsx +0 -93
  279. package/recce-source/js/app/favicon.ico +0 -0
  280. package/recce-source/js/app/global-error.tsx +0 -115
  281. package/recce-source/js/app/global.css +0 -82
  282. package/recce-source/js/app/layout.tsx +0 -48
  283. package/recce-source/js/app/lineage/page.tsx +0 -15
  284. package/recce-source/js/app/page.tsx +0 -12
  285. package/recce-source/js/app/query/page.tsx +0 -8
  286. package/recce-source/js/biome.json +0 -313
  287. package/recce-source/js/jest.config.js +0 -34
  288. package/recce-source/js/jest.globals.d.ts +0 -32
  289. package/recce-source/js/jest.setup.js +0 -91
  290. package/recce-source/js/next.config.js +0 -16
  291. package/recce-source/js/package-lock.json +0 -13843
  292. package/recce-source/js/package.json +0 -123
  293. package/recce-source/js/pnpm-lock.yaml +0 -9235
  294. package/recce-source/js/pnpm-workspace.yaml +0 -6
  295. package/recce-source/js/postcss.config.js +0 -5
  296. package/recce-source/js/public/auth_callback.html +0 -68
  297. package/recce-source/js/public/imgs/feedback/thumbs-down.png +0 -0
  298. package/recce-source/js/public/imgs/feedback/thumbs-up.png +0 -0
  299. package/recce-source/js/public/imgs/reload-image.svg +0 -4
  300. package/recce-source/js/public/logo/recce-logo-white.png +0 -0
  301. package/recce-source/js/src/components/AuthModal/AuthModal.tsx +0 -202
  302. package/recce-source/js/src/components/app/AvatarDropdown.tsx +0 -159
  303. package/recce-source/js/src/components/app/EnvInfo.tsx +0 -357
  304. package/recce-source/js/src/components/app/Filename.tsx +0 -388
  305. package/recce-source/js/src/components/app/SetupConnectionPopover.tsx +0 -91
  306. package/recce-source/js/src/components/app/StateExporter.tsx +0 -57
  307. package/recce-source/js/src/components/app/StateImporter.tsx +0 -198
  308. package/recce-source/js/src/components/app/StateSharing.tsx +0 -145
  309. package/recce-source/js/src/components/app/StateSynchronizer.tsx +0 -205
  310. package/recce-source/js/src/components/charts/HistogramChart.tsx +0 -291
  311. package/recce-source/js/src/components/charts/SquareIcon.tsx +0 -51
  312. package/recce-source/js/src/components/charts/TopKSummaryList.tsx +0 -457
  313. package/recce-source/js/src/components/charts/chartTheme.ts +0 -74
  314. package/recce-source/js/src/components/check/CheckBreadcrumb.tsx +0 -97
  315. package/recce-source/js/src/components/check/CheckDescription.tsx +0 -134
  316. package/recce-source/js/src/components/check/CheckDetail.tsx +0 -797
  317. package/recce-source/js/src/components/check/CheckEmptyState.tsx +0 -84
  318. package/recce-source/js/src/components/check/CheckList.tsx +0 -320
  319. package/recce-source/js/src/components/check/LineageDiffView.tsx +0 -32
  320. package/recce-source/js/src/components/check/PresetCheckTemplateView.tsx +0 -48
  321. package/recce-source/js/src/components/check/SchemaDiffView.tsx +0 -290
  322. package/recce-source/js/src/components/check/check.ts +0 -25
  323. package/recce-source/js/src/components/check/timeline/CheckTimeline.tsx +0 -163
  324. package/recce-source/js/src/components/check/timeline/CommentInput.tsx +0 -84
  325. package/recce-source/js/src/components/check/timeline/TimelineEvent.tsx +0 -468
  326. package/recce-source/js/src/components/check/timeline/index.ts +0 -12
  327. package/recce-source/js/src/components/check/utils.ts +0 -12
  328. package/recce-source/js/src/components/data-grid/ScreenshotDataGrid.tsx +0 -333
  329. package/recce-source/js/src/components/data-grid/agGridStyles.css +0 -55
  330. package/recce-source/js/src/components/data-grid/agGridTheme.ts +0 -43
  331. package/recce-source/js/src/components/editor/CodeEditor.tsx +0 -107
  332. package/recce-source/js/src/components/editor/DiffEditor.tsx +0 -162
  333. package/recce-source/js/src/components/editor/index.ts +0 -12
  334. package/recce-source/js/src/components/errorboundary/ErrorBoundary.tsx +0 -87
  335. package/recce-source/js/src/components/histogram/HistogramDiffForm.tsx +0 -147
  336. package/recce-source/js/src/components/histogram/HistogramDiffResultView.tsx +0 -63
  337. package/recce-source/js/src/components/icons/index.tsx +0 -142
  338. package/recce-source/js/src/components/lineage/ActionControl.tsx +0 -63
  339. package/recce-source/js/src/components/lineage/ActionTag.tsx +0 -141
  340. package/recce-source/js/src/components/lineage/ChangeStatusLegend.tsx +0 -46
  341. package/recce-source/js/src/components/lineage/ColumnLevelLineageControl.tsx +0 -327
  342. package/recce-source/js/src/components/lineage/ColumnLevelLineageLegend.tsx +0 -57
  343. package/recce-source/js/src/components/lineage/GraphColumnNode.tsx +0 -199
  344. package/recce-source/js/src/components/lineage/GraphEdge.tsx +0 -59
  345. package/recce-source/js/src/components/lineage/GraphNode.tsx +0 -555
  346. package/recce-source/js/src/components/lineage/LineagePage.tsx +0 -10
  347. package/recce-source/js/src/components/lineage/LineageView.tsx +0 -1384
  348. package/recce-source/js/src/components/lineage/LineageViewContext.tsx +0 -86
  349. package/recce-source/js/src/components/lineage/LineageViewContextMenu.tsx +0 -637
  350. package/recce-source/js/src/components/lineage/LineageViewNotification.tsx +0 -64
  351. package/recce-source/js/src/components/lineage/LineageViewTopBar.tsx +0 -596
  352. package/recce-source/js/src/components/lineage/NodeSqlView.tsx +0 -136
  353. package/recce-source/js/src/components/lineage/NodeTag.tsx +0 -278
  354. package/recce-source/js/src/components/lineage/NodeView.tsx +0 -642
  355. package/recce-source/js/src/components/lineage/SandboxView.tsx +0 -436
  356. package/recce-source/js/src/components/lineage/ServerDisconnectedModalContent.tsx +0 -105
  357. package/recce-source/js/src/components/lineage/SetupConnectionBanner.tsx +0 -52
  358. package/recce-source/js/src/components/lineage/SingleEnvironmentQueryView.tsx +0 -152
  359. package/recce-source/js/src/components/lineage/graph.test.ts +0 -31
  360. package/recce-source/js/src/components/lineage/graph.ts +0 -58
  361. package/recce-source/js/src/components/lineage/lineage.test.ts +0 -169
  362. package/recce-source/js/src/components/lineage/lineage.ts +0 -521
  363. package/recce-source/js/src/components/lineage/styles.css +0 -42
  364. package/recce-source/js/src/components/lineage/styles.tsx +0 -165
  365. package/recce-source/js/src/components/lineage/useMultiNodesAction.ts +0 -352
  366. package/recce-source/js/src/components/lineage/useValueDiffAlertDialog.tsx +0 -108
  367. package/recce-source/js/src/components/onboarding-guide/Notification.tsx +0 -62
  368. package/recce-source/js/src/components/profile/ProfileDiffForm.tsx +0 -134
  369. package/recce-source/js/src/components/profile/ProfileDiffResultView.tsx +0 -243
  370. package/recce-source/js/src/components/query/ChangedOnlyCheckbox.tsx +0 -29
  371. package/recce-source/js/src/components/query/DiffText.tsx +0 -120
  372. package/recce-source/js/src/components/query/QueryDiffResultView.tsx +0 -468
  373. package/recce-source/js/src/components/query/QueryForm.tsx +0 -80
  374. package/recce-source/js/src/components/query/QueryPage.tsx +0 -282
  375. package/recce-source/js/src/components/query/QueryResultView.tsx +0 -180
  376. package/recce-source/js/src/components/query/SetupConnectionGuide.tsx +0 -57
  377. package/recce-source/js/src/components/query/SqlEditor.tsx +0 -245
  378. package/recce-source/js/src/components/query/ToggleSwitch.tsx +0 -84
  379. package/recce-source/js/src/components/query/styles.css +0 -21
  380. package/recce-source/js/src/components/routing/DirectUrlAccess.test.tsx +0 -428
  381. package/recce-source/js/src/components/routing/LineageStatePreservation.test.tsx +0 -311
  382. package/recce-source/js/src/components/routing/Navigation.test.tsx +0 -256
  383. package/recce-source/js/src/components/rowcount/RowCountDiffResultView.tsx +0 -108
  384. package/recce-source/js/src/components/rowcount/delta.test.ts +0 -51
  385. package/recce-source/js/src/components/rowcount/delta.ts +0 -16
  386. package/recce-source/js/src/components/run/RunList.tsx +0 -303
  387. package/recce-source/js/src/components/run/RunModal.tsx +0 -191
  388. package/recce-source/js/src/components/run/RunPage.tsx +0 -26
  389. package/recce-source/js/src/components/run/RunResultPane.tsx +0 -578
  390. package/recce-source/js/src/components/run/RunStatusAndDate.tsx +0 -106
  391. package/recce-source/js/src/components/run/RunToolbar.tsx +0 -70
  392. package/recce-source/js/src/components/run/RunView.tsx +0 -196
  393. package/recce-source/js/src/components/run/registry.ts +0 -214
  394. package/recce-source/js/src/components/run/types.ts +0 -14
  395. package/recce-source/js/src/components/schema/ColumnNameCell.test.tsx +0 -169
  396. package/recce-source/js/src/components/schema/ColumnNameCell.tsx +0 -198
  397. package/recce-source/js/src/components/schema/SchemaView.tsx +0 -336
  398. package/recce-source/js/src/components/schema/schemaDiff.ts +0 -32
  399. package/recce-source/js/src/components/schema/style.css +0 -134
  400. package/recce-source/js/src/components/screenshot/ScreenshotBox.tsx +0 -39
  401. package/recce-source/js/src/components/shared/HistoryToggle.tsx +0 -35
  402. package/recce-source/js/src/components/split/Split.tsx +0 -40
  403. package/recce-source/js/src/components/split/styles.css +0 -24
  404. package/recce-source/js/src/components/summary/ChangeSummary.tsx +0 -264
  405. package/recce-source/js/src/components/summary/SchemaSummary.tsx +0 -123
  406. package/recce-source/js/src/components/summary/SummaryView.tsx +0 -29
  407. package/recce-source/js/src/components/timeout/IdleTimeoutBadge.tsx +0 -48
  408. package/recce-source/js/src/components/top-k/TopKDiffForm.tsx +0 -58
  409. package/recce-source/js/src/components/top-k/TopKDiffResultView.tsx +0 -73
  410. package/recce-source/js/src/components/ui/dataGrid/DataFrameColumnGroupHeader.tsx +0 -228
  411. package/recce-source/js/src/components/ui/dataGrid/DataFrameColumnHeader.tsx +0 -113
  412. package/recce-source/js/src/components/ui/dataGrid/defaultRenderCell.tsx +0 -72
  413. package/recce-source/js/src/components/ui/dataGrid/index.ts +0 -23
  414. package/recce-source/js/src/components/ui/dataGrid/inlineRenderCell.test.tsx +0 -607
  415. package/recce-source/js/src/components/ui/dataGrid/inlineRenderCell.tsx +0 -211
  416. package/recce-source/js/src/components/ui/dataGrid/schemaCells.test.tsx +0 -452
  417. package/recce-source/js/src/components/ui/dataGrid/schemaCells.tsx +0 -142
  418. package/recce-source/js/src/components/ui/dataGrid/valueDiffCells.test.tsx +0 -178
  419. package/recce-source/js/src/components/ui/dataGrid/valueDiffCells.tsx +0 -275
  420. package/recce-source/js/src/components/ui/markdown/ExternalLinkConfirmDialog.tsx +0 -134
  421. package/recce-source/js/src/components/ui/markdown/MarkdownContent.tsx +0 -364
  422. package/recce-source/js/src/components/ui/mui/index.ts +0 -13
  423. package/recce-source/js/src/components/ui/mui-provider.tsx +0 -67
  424. package/recce-source/js/src/components/ui/mui-theme.ts +0 -1039
  425. package/recce-source/js/src/components/ui/mui-utils.ts +0 -113
  426. package/recce-source/js/src/components/ui/toaster.tsx +0 -288
  427. package/recce-source/js/src/components/valuediff/ValueDiffDetailResultView.tsx +0 -216
  428. package/recce-source/js/src/components/valuediff/ValueDiffForm.tsx +0 -246
  429. package/recce-source/js/src/components/valuediff/ValueDiffResultView.tsx +0 -81
  430. package/recce-source/js/src/components/valuediff/shared.ts +0 -33
  431. package/recce-source/js/src/constants/tooltipMessage.ts +0 -3
  432. package/recce-source/js/src/constants/urls.ts +0 -1
  433. package/recce-source/js/src/lib/UrlHash.ts +0 -12
  434. package/recce-source/js/src/lib/api/adhocQuery.ts +0 -70
  435. package/recce-source/js/src/lib/api/axiosClient.ts +0 -9
  436. package/recce-source/js/src/lib/api/cacheKeys.ts +0 -13
  437. package/recce-source/js/src/lib/api/checkEvents.ts +0 -252
  438. package/recce-source/js/src/lib/api/checks.ts +0 -129
  439. package/recce-source/js/src/lib/api/cll.ts +0 -53
  440. package/recce-source/js/src/lib/api/connectToCloud.ts +0 -13
  441. package/recce-source/js/src/lib/api/flag.ts +0 -37
  442. package/recce-source/js/src/lib/api/info.ts +0 -198
  443. package/recce-source/js/src/lib/api/instanceInfo.ts +0 -25
  444. package/recce-source/js/src/lib/api/keepAlive.ts +0 -108
  445. package/recce-source/js/src/lib/api/lineagecheck.ts +0 -35
  446. package/recce-source/js/src/lib/api/localStorageKeys.ts +0 -7
  447. package/recce-source/js/src/lib/api/models.ts +0 -59
  448. package/recce-source/js/src/lib/api/profile.ts +0 -65
  449. package/recce-source/js/src/lib/api/rowcount.ts +0 -19
  450. package/recce-source/js/src/lib/api/runs.ts +0 -174
  451. package/recce-source/js/src/lib/api/schemacheck.ts +0 -31
  452. package/recce-source/js/src/lib/api/select.ts +0 -25
  453. package/recce-source/js/src/lib/api/sessionStorageKeys.ts +0 -8
  454. package/recce-source/js/src/lib/api/state.ts +0 -117
  455. package/recce-source/js/src/lib/api/track.ts +0 -281
  456. package/recce-source/js/src/lib/api/types.ts +0 -284
  457. package/recce-source/js/src/lib/api/user.ts +0 -42
  458. package/recce-source/js/src/lib/api/valuediff.ts +0 -46
  459. package/recce-source/js/src/lib/api/version.ts +0 -40
  460. package/recce-source/js/src/lib/const.ts +0 -9
  461. package/recce-source/js/src/lib/csv/extractors.test.ts +0 -456
  462. package/recce-source/js/src/lib/csv/extractors.ts +0 -468
  463. package/recce-source/js/src/lib/csv/format.test.ts +0 -211
  464. package/recce-source/js/src/lib/csv/format.ts +0 -44
  465. package/recce-source/js/src/lib/csv/index.test.ts +0 -155
  466. package/recce-source/js/src/lib/csv/index.ts +0 -109
  467. package/recce-source/js/src/lib/dataGrid/crossFunctionConsistency.test.ts +0 -626
  468. package/recce-source/js/src/lib/dataGrid/dataGridFactory.test.ts +0 -2140
  469. package/recce-source/js/src/lib/dataGrid/dataGridFactory.ts +0 -397
  470. package/recce-source/js/src/lib/dataGrid/generators/rowCountUtils.test.ts +0 -132
  471. package/recce-source/js/src/lib/dataGrid/generators/rowCountUtils.ts +0 -126
  472. package/recce-source/js/src/lib/dataGrid/generators/toDataDiffGrid.test.ts +0 -1627
  473. package/recce-source/js/src/lib/dataGrid/generators/toDataDiffGrid.ts +0 -140
  474. package/recce-source/js/src/lib/dataGrid/generators/toDataGrid.ts +0 -67
  475. package/recce-source/js/src/lib/dataGrid/generators/toRowCountDataGrid.test.ts +0 -142
  476. package/recce-source/js/src/lib/dataGrid/generators/toRowCountDataGrid.ts +0 -71
  477. package/recce-source/js/src/lib/dataGrid/generators/toRowCountDiffDataGrid.test.ts +0 -258
  478. package/recce-source/js/src/lib/dataGrid/generators/toRowCountDiffDataGrid.ts +0 -153
  479. package/recce-source/js/src/lib/dataGrid/generators/toSchemaDataGrid.test.ts +0 -951
  480. package/recce-source/js/src/lib/dataGrid/generators/toSchemaDataGrid.ts +0 -221
  481. package/recce-source/js/src/lib/dataGrid/generators/toValueDataGrid.test.ts +0 -395
  482. package/recce-source/js/src/lib/dataGrid/generators/toValueDataGrid.ts +0 -184
  483. package/recce-source/js/src/lib/dataGrid/generators/toValueDiffGrid.test.ts +0 -884
  484. package/recce-source/js/src/lib/dataGrid/generators/toValueDiffGrid.ts +0 -113
  485. package/recce-source/js/src/lib/dataGrid/index.ts +0 -51
  486. package/recce-source/js/src/lib/dataGrid/propertyBased.test.ts +0 -858
  487. package/recce-source/js/src/lib/dataGrid/shared/columnBuilders.test.ts +0 -482
  488. package/recce-source/js/src/lib/dataGrid/shared/columnBuilders.ts +0 -345
  489. package/recce-source/js/src/lib/dataGrid/shared/dataTypeEdgeCases.test.ts +0 -698
  490. package/recce-source/js/src/lib/dataGrid/shared/diffColumnBuilder.test.tsx +0 -820
  491. package/recce-source/js/src/lib/dataGrid/shared/diffColumnBuilder.tsx +0 -277
  492. package/recce-source/js/src/lib/dataGrid/shared/gridUtils.test.ts +0 -785
  493. package/recce-source/js/src/lib/dataGrid/shared/gridUtils.ts +0 -370
  494. package/recce-source/js/src/lib/dataGrid/shared/index.ts +0 -81
  495. package/recce-source/js/src/lib/dataGrid/shared/rowBuilders.test.ts +0 -909
  496. package/recce-source/js/src/lib/dataGrid/shared/rowBuilders.ts +0 -325
  497. package/recce-source/js/src/lib/dataGrid/shared/simpleColumnBuilder.tsx +0 -240
  498. package/recce-source/js/src/lib/dataGrid/shared/toDiffColumn.test.tsx +0 -719
  499. package/recce-source/js/src/lib/dataGrid/shared/toDiffColumn.tsx +0 -231
  500. package/recce-source/js/src/lib/dataGrid/shared/validation.test.ts +0 -559
  501. package/recce-source/js/src/lib/dataGrid/shared/validation.ts +0 -367
  502. package/recce-source/js/src/lib/dataGrid/warehouseNamingConventions.test.ts +0 -1117
  503. package/recce-source/js/src/lib/formatSelect.ts +0 -50
  504. package/recce-source/js/src/lib/hooks/ApiConfigContext.tsx +0 -181
  505. package/recce-source/js/src/lib/hooks/IdleTimeoutContext.tsx +0 -177
  506. package/recce-source/js/src/lib/hooks/LineageGraphContext.tsx +0 -512
  507. package/recce-source/js/src/lib/hooks/RecceActionContext.tsx +0 -269
  508. package/recce-source/js/src/lib/hooks/RecceCheckContext.tsx +0 -33
  509. package/recce-source/js/src/lib/hooks/RecceContextProvider.tsx +0 -54
  510. package/recce-source/js/src/lib/hooks/RecceInstanceContext.tsx +0 -129
  511. package/recce-source/js/src/lib/hooks/RecceQueryContext.tsx +0 -98
  512. package/recce-source/js/src/lib/hooks/RecceShareStateContext.tsx +0 -59
  513. package/recce-source/js/src/lib/hooks/ScreenShot.tsx +0 -399
  514. package/recce-source/js/src/lib/hooks/useAppRouter.test.ts +0 -211
  515. package/recce-source/js/src/lib/hooks/useAppRouter.ts +0 -200
  516. package/recce-source/js/src/lib/hooks/useCSVExport.ts +0 -136
  517. package/recce-source/js/src/lib/hooks/useCheckEvents.ts +0 -99
  518. package/recce-source/js/src/lib/hooks/useCheckToast.tsx +0 -14
  519. package/recce-source/js/src/lib/hooks/useClipBoardToast.tsx +0 -27
  520. package/recce-source/js/src/lib/hooks/useCountdownToast.tsx +0 -102
  521. package/recce-source/js/src/lib/hooks/useFeedbackCollectionToast.tsx +0 -130
  522. package/recce-source/js/src/lib/hooks/useGuideToast.tsx +0 -45
  523. package/recce-source/js/src/lib/hooks/useIdleDetection.tsx +0 -185
  524. package/recce-source/js/src/lib/hooks/useModelColumns.tsx +0 -113
  525. package/recce-source/js/src/lib/hooks/useRecceInstanceInfo.tsx +0 -13
  526. package/recce-source/js/src/lib/hooks/useRecceServerFlag.tsx +0 -13
  527. package/recce-source/js/src/lib/hooks/useRun.tsx +0 -89
  528. package/recce-source/js/src/lib/hooks/useThemeColors.ts +0 -115
  529. package/recce-source/js/src/lib/mergeKeys.test.ts +0 -89
  530. package/recce-source/js/src/lib/mergeKeys.ts +0 -86
  531. package/recce-source/js/src/lib/result/ResultErrorFallback.tsx +0 -9
  532. package/recce-source/js/src/lib/utils/formatTime.ts +0 -84
  533. package/recce-source/js/src/lib/utils/urls.ts +0 -16
  534. package/recce-source/js/src/utils/DropdownValuesInput.tsx +0 -297
  535. package/recce-source/js/src/utils/formatters.tsx +0 -237
  536. package/recce-source/js/src/utils/transforms.ts +0 -81
  537. package/recce-source/js/tsconfig.json +0 -47
  538. package/recce-source/macros/README.md +0 -8
  539. package/recce-source/macros/recce_athena.sql +0 -73
  540. package/recce-source/pyproject.toml +0 -109
  541. package/recce-source/recce/VERSION +0 -1
  542. package/recce-source/recce/__init__.py +0 -84
  543. package/recce-source/recce/adapter/__init__.py +0 -0
  544. package/recce-source/recce/adapter/base.py +0 -109
  545. package/recce-source/recce/adapter/dbt_adapter/__init__.py +0 -1699
  546. package/recce-source/recce/adapter/dbt_adapter/dbt_version.py +0 -42
  547. package/recce-source/recce/adapter/sqlmesh_adapter.py +0 -141
  548. package/recce-source/recce/apis/__init__.py +0 -0
  549. package/recce-source/recce/apis/check_api.py +0 -203
  550. package/recce-source/recce/apis/check_events_api.py +0 -353
  551. package/recce-source/recce/apis/check_func.py +0 -130
  552. package/recce-source/recce/apis/run_api.py +0 -130
  553. package/recce-source/recce/apis/run_func.py +0 -258
  554. package/recce-source/recce/artifact.py +0 -266
  555. package/recce-source/recce/cli.py +0 -1846
  556. package/recce-source/recce/config.py +0 -127
  557. package/recce-source/recce/connect_to_cloud.py +0 -138
  558. package/recce-source/recce/core.py +0 -334
  559. package/recce-source/recce/diff.py +0 -26
  560. package/recce-source/recce/event/CONFIG +0 -1
  561. package/recce-source/recce/event/SENTRY_DNS +0 -1
  562. package/recce-source/recce/event/__init__.py +0 -304
  563. package/recce-source/recce/event/collector.py +0 -184
  564. package/recce-source/recce/event/track.py +0 -158
  565. package/recce-source/recce/exceptions.py +0 -21
  566. package/recce-source/recce/git.py +0 -77
  567. package/recce-source/recce/github.py +0 -222
  568. package/recce-source/recce/mcp_server.py +0 -885
  569. package/recce-source/recce/models/__init__.py +0 -6
  570. package/recce-source/recce/models/check.py +0 -481
  571. package/recce-source/recce/models/run.py +0 -46
  572. package/recce-source/recce/models/types.py +0 -218
  573. package/recce-source/recce/pull_request.py +0 -124
  574. package/recce-source/recce/run.py +0 -390
  575. package/recce-source/recce/server.py +0 -877
  576. package/recce-source/recce/state/__init__.py +0 -31
  577. package/recce-source/recce/state/cloud.py +0 -644
  578. package/recce-source/recce/state/const.py +0 -26
  579. package/recce-source/recce/state/local.py +0 -56
  580. package/recce-source/recce/state/state.py +0 -119
  581. package/recce-source/recce/state/state_loader.py +0 -174
  582. package/recce-source/recce/summary.py +0 -575
  583. package/recce-source/recce/tasks/__init__.py +0 -23
  584. package/recce-source/recce/tasks/core.py +0 -134
  585. package/recce-source/recce/tasks/dataframe.py +0 -170
  586. package/recce-source/recce/tasks/histogram.py +0 -433
  587. package/recce-source/recce/tasks/lineage.py +0 -19
  588. package/recce-source/recce/tasks/profile.py +0 -298
  589. package/recce-source/recce/tasks/query.py +0 -450
  590. package/recce-source/recce/tasks/rowcount.py +0 -277
  591. package/recce-source/recce/tasks/schema.py +0 -65
  592. package/recce-source/recce/tasks/top_k.py +0 -172
  593. package/recce-source/recce/tasks/utils.py +0 -147
  594. package/recce-source/recce/tasks/valuediff.py +0 -497
  595. package/recce-source/recce/util/__init__.py +0 -4
  596. package/recce-source/recce/util/api_token.py +0 -80
  597. package/recce-source/recce/util/breaking.py +0 -330
  598. package/recce-source/recce/util/cache.py +0 -25
  599. package/recce-source/recce/util/cll.py +0 -355
  600. package/recce-source/recce/util/cloud/__init__.py +0 -15
  601. package/recce-source/recce/util/cloud/base.py +0 -115
  602. package/recce-source/recce/util/cloud/check_events.py +0 -190
  603. package/recce-source/recce/util/cloud/checks.py +0 -242
  604. package/recce-source/recce/util/io.py +0 -120
  605. package/recce-source/recce/util/lineage.py +0 -83
  606. package/recce-source/recce/util/logger.py +0 -25
  607. package/recce-source/recce/util/onboarding_state.py +0 -45
  608. package/recce-source/recce/util/perf_tracking.py +0 -85
  609. package/recce-source/recce/util/pydantic_model.py +0 -22
  610. package/recce-source/recce/util/recce_cloud.py +0 -454
  611. package/recce-source/recce/util/singleton.py +0 -18
  612. package/recce-source/recce/util/startup_perf.py +0 -121
  613. package/recce-source/recce/yaml/__init__.py +0 -58
  614. package/recce-source/recce_cloud/README.md +0 -780
  615. package/recce-source/recce_cloud/VERSION +0 -1
  616. package/recce-source/recce_cloud/__init__.py +0 -24
  617. package/recce-source/recce_cloud/api/__init__.py +0 -17
  618. package/recce-source/recce_cloud/api/base.py +0 -132
  619. package/recce-source/recce_cloud/api/client.py +0 -186
  620. package/recce-source/recce_cloud/api/exceptions.py +0 -26
  621. package/recce-source/recce_cloud/api/factory.py +0 -63
  622. package/recce-source/recce_cloud/api/github.py +0 -106
  623. package/recce-source/recce_cloud/api/gitlab.py +0 -111
  624. package/recce-source/recce_cloud/artifact.py +0 -57
  625. package/recce-source/recce_cloud/ci_providers/__init__.py +0 -9
  626. package/recce-source/recce_cloud/ci_providers/base.py +0 -82
  627. package/recce-source/recce_cloud/ci_providers/detector.py +0 -147
  628. package/recce-source/recce_cloud/ci_providers/github_actions.py +0 -136
  629. package/recce-source/recce_cloud/ci_providers/gitlab_ci.py +0 -130
  630. package/recce-source/recce_cloud/cli.py +0 -434
  631. package/recce-source/recce_cloud/download.py +0 -230
  632. package/recce-source/recce_cloud/hatch_build.py +0 -20
  633. package/recce-source/recce_cloud/pyproject.toml +0 -49
  634. package/recce-source/recce_cloud/upload.py +0 -214
  635. package/recce-source/test.py +0 -0
  636. package/recce-source/tests/__init__.py +0 -0
  637. package/recce-source/tests/adapter/__init__.py +0 -0
  638. package/recce-source/tests/adapter/dbt_adapter/__init__.py +0 -0
  639. package/recce-source/tests/adapter/dbt_adapter/conftest.py +0 -17
  640. package/recce-source/tests/adapter/dbt_adapter/dbt_test_helper.py +0 -298
  641. package/recce-source/tests/adapter/dbt_adapter/test_dbt_adapter.py +0 -25
  642. package/recce-source/tests/adapter/dbt_adapter/test_dbt_cll.py +0 -717
  643. package/recce-source/tests/adapter/dbt_adapter/test_proj/dbt_project.yml +0 -4
  644. package/recce-source/tests/adapter/dbt_adapter/test_proj/manifest.json +0 -1
  645. package/recce-source/tests/adapter/dbt_adapter/test_proj/package-lock.yml +0 -8
  646. package/recce-source/tests/adapter/dbt_adapter/test_proj/packages.yml +0 -7
  647. package/recce-source/tests/adapter/dbt_adapter/test_proj/profiles.yml +0 -6
  648. package/recce-source/tests/adapter/dbt_adapter/test_selector.py +0 -205
  649. package/recce-source/tests/apis/__init__.py +0 -0
  650. package/recce-source/tests/apis/row_count_diff.json +0 -59
  651. package/recce-source/tests/apis/test_check_events_api.py +0 -615
  652. package/recce-source/tests/apis/test_run_func.py +0 -433
  653. package/recce-source/tests/catalog.json +0 -527
  654. package/recce-source/tests/data/manifest/base/catalog.json +0 -1
  655. package/recce-source/tests/data/manifest/base/manifest.json +0 -1
  656. package/recce-source/tests/data/manifest/pr2/catalog.json +0 -1
  657. package/recce-source/tests/data/manifest/pr2/manifest.json +0 -1
  658. package/recce-source/tests/manifest.json +0 -10655
  659. package/recce-source/tests/models/__init__.py +0 -0
  660. package/recce-source/tests/models/test_check.py +0 -731
  661. package/recce-source/tests/models/test_run_models.py +0 -295
  662. package/recce-source/tests/recce_cloud/__init__.py +0 -0
  663. package/recce-source/tests/recce_cloud/test_ci_providers.py +0 -351
  664. package/recce-source/tests/recce_cloud/test_cli.py +0 -735
  665. package/recce-source/tests/recce_cloud/test_client.py +0 -379
  666. package/recce-source/tests/recce_cloud/test_platform_clients.py +0 -483
  667. package/recce-source/tests/recce_state.json +0 -1
  668. package/recce-source/tests/state/test_cloud.py +0 -719
  669. package/recce-source/tests/state/test_local.py +0 -164
  670. package/recce-source/tests/state/test_state_loader.py +0 -211
  671. package/recce-source/tests/tasks/__init__.py +0 -0
  672. package/recce-source/tests/tasks/conftest.py +0 -4
  673. package/recce-source/tests/tasks/test_histogram.py +0 -129
  674. package/recce-source/tests/tasks/test_lineage.py +0 -55
  675. package/recce-source/tests/tasks/test_preset_checks.py +0 -64
  676. package/recce-source/tests/tasks/test_profile.py +0 -397
  677. package/recce-source/tests/tasks/test_query.py +0 -528
  678. package/recce-source/tests/tasks/test_row_count.py +0 -133
  679. package/recce-source/tests/tasks/test_schema.py +0 -122
  680. package/recce-source/tests/tasks/test_top_k.py +0 -77
  681. package/recce-source/tests/tasks/test_utils.py +0 -439
  682. package/recce-source/tests/tasks/test_valuediff.py +0 -361
  683. package/recce-source/tests/test_cli.py +0 -236
  684. package/recce-source/tests/test_cli_mcp_optional.py +0 -45
  685. package/recce-source/tests/test_cloud_listing_cli.py +0 -324
  686. package/recce-source/tests/test_config.py +0 -43
  687. package/recce-source/tests/test_connect_to_cloud.py +0 -82
  688. package/recce-source/tests/test_core.py +0 -174
  689. package/recce-source/tests/test_dbt.py +0 -36
  690. package/recce-source/tests/test_mcp_server.py +0 -505
  691. package/recce-source/tests/test_pull_request.py +0 -130
  692. package/recce-source/tests/test_server.py +0 -202
  693. package/recce-source/tests/test_server_lifespan.py +0 -138
  694. package/recce-source/tests/test_summary.py +0 -73
  695. package/recce-source/tests/util/__init__.py +0 -0
  696. package/recce-source/tests/util/cloud/__init__.py +0 -0
  697. package/recce-source/tests/util/cloud/test_check_events.py +0 -255
  698. package/recce-source/tests/util/cloud/test_checks.py +0 -204
  699. package/recce-source/tests/util/test_api_token.py +0 -119
  700. package/recce-source/tests/util/test_breaking.py +0 -1427
  701. package/recce-source/tests/util/test_cll.py +0 -706
  702. package/recce-source/tests/util/test_lineage.py +0 -122
  703. package/recce-source/tests/util/test_onboarding_state.py +0 -84
  704. package/recce-source/tests/util/test_recce_cloud.py +0 -231
  705. package/recce-source/tox.ini +0 -40
  706. package/recce-source/uv.lock +0 -3928
  707. package/src/api/index.ts +0 -32
  708. package/src/components/index.ts +0 -154
  709. package/src/global.d.ts +0 -14
  710. package/src/hooks/index.ts +0 -56
  711. package/src/index.ts +0 -17
  712. package/src/lib/hooks/RouteConfigContext.ts +0 -139
  713. package/src/lib/hooks/useAppRouter.ts +0 -240
  714. package/src/mui-augmentation.d.ts +0 -139
  715. package/src/theme/index.ts +0 -13
  716. package/src/theme.ts +0 -23
  717. package/src/types/index.ts +0 -23
package/dist/styles.css CHANGED
@@ -1,4 +1,478 @@
1
- @import './RecceCheckContext-DPnWB_aU.css';
2
- @import './RecceCheckContext-DyxOeUsX.css';
3
- @import './components-BeAjVBV3.css';
4
- @import './components-iUxcqtUB.css';
1
+ /**
2
+ * @datarecce/ui - Bundled Styles
3
+ *
4
+ * This file contains all CSS for @datarecce/ui components including:
5
+ * - Tailwind CSS utilities
6
+ * - CSS custom properties for theming
7
+ * - React Flow styles
8
+ * - Third-party component overrides (ag-Grid, CodeMirror, etc.)
9
+ *
10
+ * Usage: import '@datarecce/ui/styles';
11
+ *
12
+ * @license MIT
13
+ */
14
+ /*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */
15
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-100:#fee2e2;--color-red-300:#fca5a5;--color-red-400:#f87171;--color-red-500:#ef4444;--color-red-700:#b91c1c;--color-red-900:#7f1d1d;--color-amber-100:#fef3c7;--color-amber-300:#fcd34d;--color-amber-400:#fbbf24;--color-amber-500:#f59e0b;--color-amber-600:#d97706;--color-amber-700:#b45309;--color-amber-800:#92400e;--color-amber-900:#78350f;--color-green-100:#dcfce7;--color-green-300:#86efac;--color-green-400:#4ade80;--color-green-500:#22c55e;--color-green-700:#15803d;--color-green-900:#14532d;--color-cyan-200:#a5f3fc;--color-cyan-300:#67e8f9;--color-cyan-400:#22d3ee;--color-blue-50:oklch(97% .014 254.604);--color-fuchsia-300:#f0abfc;--color-fuchsia-400:#e879f9;--color-neutral-50:#fafafa;--color-neutral-100:#f5f5f5;--color-neutral-200:#e5e5e5;--color-neutral-400:#a3a3a3;--color-neutral-600:#525252;--color-neutral-700:#404040;--color-neutral-800:#262626;--color-neutral-900:#171717;--color-neutral-950:#0a0a0a;--spacing:.25rem;--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--font-weight-light:300;--radius-lg:.5rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-brand-50:#ffded5;--color-brand-200:#ffa58c;--color-brand-400:#ff6e42;--color-brand-500:#fd541e;--color-brand-600:#f04104;--color-brand-700:#c93a06;--color-brand-800:#a23206;--color-brand-900:#7c2906;--color-brand-950:#571e05;--color-iochmara-100:#c4ddf3;--color-iochmara-300:#79b0e2;--color-iochmara-400:#5599d8;--color-iochmara-500:#3182ce;--color-iochmara-600:#2a6ca7;--color-iochmara-700:#225581;--color-iochmara-900:#102638}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-10{top:calc(var(--spacing) * 10)}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-2{margin:calc(var(--spacing) * 2)}.ml-1{margin-left:calc(var(--spacing) * 1)}.box-content{box-sizing:content-box}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.list-item{display:list-item}.table{display:table}.\!size-4{width:calc(var(--spacing) * 4)!important;height:calc(var(--spacing) * 4)!important}.size-6\!{width:calc(var(--spacing) * 6)!important;height:calc(var(--spacing) * 6)!important}.h-full{height:100%}.max-h-dvh{max-height:100dvh}.min-h-0{min-height:calc(var(--spacing) * 0)}.w-4\/5{width:80%}.max-w-72{max-width:calc(var(--spacing) * 72)}.\!min-w-4{min-width:calc(var(--spacing) * 4)!important}.flex-1{flex:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.flex-col{flex-direction:column}.justify-center{justify-content:center}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}.self-center{align-self:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.bg-blue-50{background-color:var(--color-blue-50)}.p-4{padding:calc(var(--spacing) * 4)}.px-8{padding-inline:calc(var(--spacing) * 8)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.break-all{word-break:break-all}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}}.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#777;--xy-background-pattern-lines-color-default:#777;--xy-background-pattern-cross-color-default:#777;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}:root{--recce-bg-default:var(--color-neutral-50);--recce-bg-paper:#fff;--recce-bg-elevated:#fff;--recce-bg-subtle:var(--color-neutral-100);--recce-text-primary:var(--color-neutral-900);--recce-text-secondary:var(--color-neutral-600);--recce-text-muted:var(--color-neutral-400);--recce-border:var(--color-neutral-200);--recce-border-subtle:var(--color-neutral-100);--recce-brand:var(--color-brand-500);--recce-brand-hover:var(--color-brand-600);--recce-brand-active:var(--color-brand-700);--recce-secondary:var(--color-iochmara-500);--recce-secondary-hover:var(--color-iochmara-600);--recce-secondary-active:var(--color-iochmara-700);--recce-success:var(--color-green-500);--recce-warning:var(--color-amber-500);--recce-error:var(--color-red-500);--recce-info:var(--color-iochmara-500);--recce-shadow-sm:0 1px 2px 0 #0000000d;--recce-shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--recce-shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--recce-shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a}.dark{--recce-bg-default:var(--color-neutral-950);--recce-bg-paper:var(--color-neutral-900);--recce-bg-elevated:var(--color-neutral-800);--recce-bg-subtle:var(--color-neutral-800);--recce-text-primary:var(--color-neutral-50);--recce-text-secondary:var(--color-neutral-400);--recce-text-muted:var(--color-neutral-600);--recce-border:var(--color-neutral-800);--recce-border-subtle:var(--color-neutral-700);--recce-brand:var(--color-brand-400);--recce-brand-hover:var(--color-brand-500);--recce-brand-active:var(--color-brand-600);--recce-secondary:var(--color-iochmara-400);--recce-secondary-hover:var(--color-iochmara-500);--recce-secondary-active:var(--color-iochmara-600);--recce-success:var(--color-green-400);--recce-warning:var(--color-amber-400);--recce-error:var(--color-red-400);--recce-info:var(--color-iochmara-400);--recce-shadow-sm:0 1px 2px 0 #0000004d;--recce-shadow:0 1px 3px 0 #0006, 0 1px 2px -1px #0000004d;--recce-shadow-md:0 4px 6px -1px #0006, 0 2px 4px -2px #0000004d;--recce-shadow-lg:0 10px 15px -3px #0006, 0 4px 6px -4px #0000004d}.dark .react-flow__controls{background-color:var(--recce-bg-paper);border-color:var(--recce-border)}.dark .react-flow__controls button{background-color:var(--recce-bg-paper);border-color:var(--recce-border);color:var(--recce-text-primary);fill:var(--recce-text-primary)}.dark .react-flow__controls button:hover{background-color:var(--recce-bg-elevated)}.dark .react-flow__controls button svg{fill:var(--recce-text-primary)}.dark .react-flow__minimap{background-color:var(--recce-bg-paper)}.dark .react-flow__minimap-mask{fill:var(--recce-bg-default);opacity:.6}.dark .react-flow__minimap-node{fill:var(--recce-text-muted)}.dark .react-flow__background{background-color:var(--recce-bg-default)}.dark .react-flow__background pattern circle,.dark .react-flow__background pattern line{stroke:var(--recce-border)}.dark .react-flow__attribution{background-color:var(--recce-bg-paper)}.dark .react-flow__attribution a{color:var(--recce-text-secondary)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--recce-bg-subtle);border-radius:4px}::-webkit-scrollbar-thumb{background:var(--recce-text-muted);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--recce-text-secondary)}*{scrollbar-width:thin;scrollbar-color:var(--recce-text-muted) var(--recce-bg-subtle)}.dark ::-webkit-scrollbar-track{background:var(--recce-bg-paper)}.dark ::-webkit-scrollbar-thumb{background:var(--recce-border)}.dark ::-webkit-scrollbar-thumb:hover{background:var(--recce-text-muted)}::selection{background-color:var(--color-brand-200);color:var(--color-brand-950)}.dark ::selection{background-color:var(--color-brand-700);color:var(--color-brand-50)}:focus-visible{outline:2px solid var(--recce-brand);outline-offset:2px}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
16
+ /* Third-party component overrides */
17
+ /**
18
+ * @datarecce/ui - Third-party component style overrides
19
+ *
20
+ * This file contains style overrides for third-party libraries
21
+ * to ensure they respect the Recce theme and dark mode.
22
+ *
23
+ * Included:
24
+ * - ag-Grid dark mode
25
+ * - CodeMirror dark mode
26
+ * - Split pane styling
27
+ */
28
+
29
+ /* ========================================
30
+ * ag-Grid Dark Mode Overrides
31
+ * Styles for ag-Grid data tables in dark mode
32
+ * ======================================== */
33
+ .dark .ag-theme-alpine,
34
+ .dark .ag-theme-quartz {
35
+ --ag-background-color: var(--recce-bg-paper);
36
+ --ag-foreground-color: var(--recce-text-primary);
37
+ --ag-secondary-foreground-color: var(--recce-text-secondary);
38
+ --ag-header-background-color: var(--recce-bg-elevated);
39
+ --ag-header-foreground-color: var(--recce-text-primary);
40
+ --ag-odd-row-background-color: var(--recce-bg-paper);
41
+ --ag-row-hover-color: var(--recce-bg-subtle);
42
+ --ag-border-color: var(--recce-border);
43
+ --ag-selected-row-background-color: var(--color-brand-900);
44
+ --ag-range-selection-border-color: var(--recce-brand);
45
+ --ag-input-focus-border-color: var(--recce-brand);
46
+ }
47
+
48
+ .dark .ag-theme-alpine .ag-row-selected,
49
+ .dark .ag-theme-quartz .ag-row-selected {
50
+ background-color: var(--color-brand-900);
51
+ }
52
+
53
+ .dark .ag-theme-alpine .ag-row-hover:not(.ag-row-selected),
54
+ .dark .ag-theme-quartz .ag-row-hover:not(.ag-row-selected) {
55
+ background-color: var(--recce-bg-elevated);
56
+ }
57
+
58
+ .dark .ag-theme-alpine .ag-cell-focus,
59
+ .dark .ag-theme-quartz .ag-cell-focus {
60
+ border-color: var(--recce-brand);
61
+ }
62
+
63
+ .dark .ag-theme-alpine .ag-header-cell,
64
+ .dark .ag-theme-quartz .ag-header-cell {
65
+ border-bottom-color: var(--recce-border);
66
+ }
67
+
68
+ .dark .ag-theme-alpine .ag-cell,
69
+ .dark .ag-theme-quartz .ag-cell {
70
+ border-right-color: var(--recce-border-subtle);
71
+ }
72
+
73
+ .dark .ag-theme-alpine .ag-paging-panel,
74
+ .dark .ag-theme-quartz .ag-paging-panel {
75
+ border-top-color: var(--recce-border);
76
+ color: var(--recce-text-secondary);
77
+ }
78
+
79
+ /* ========================================
80
+ * CodeMirror Dark Mode Overrides
81
+ * Styles for CodeMirror editors in dark mode
82
+ * ======================================== */
83
+ .dark .cm-editor {
84
+ background-color: var(--recce-bg-paper);
85
+ color: var(--recce-text-primary);
86
+ }
87
+
88
+ .dark .cm-editor .cm-gutters {
89
+ background-color: var(--recce-bg-elevated);
90
+ color: var(--recce-text-muted);
91
+ border-right-color: var(--recce-border);
92
+ }
93
+
94
+ .dark .cm-editor .cm-activeLineGutter {
95
+ background-color: var(--recce-bg-subtle);
96
+ }
97
+
98
+ .dark .cm-editor .cm-activeLine {
99
+ background-color: var(--recce-bg-subtle);
100
+ }
101
+
102
+ .dark .cm-editor .cm-selectionBackground,
103
+ .dark .cm-editor .cm-content ::selection {
104
+ background-color: var(--color-brand-900) !important;
105
+ }
106
+
107
+ .dark .cm-editor .cm-cursor {
108
+ border-left-color: var(--recce-text-primary);
109
+ }
110
+
111
+ .dark .cm-editor .cm-matchingBracket {
112
+ background-color: var(--color-brand-800);
113
+ color: var(--recce-text-primary);
114
+ }
115
+
116
+ .dark .cm-editor .cm-searchMatch {
117
+ background-color: var(--color-amber-800);
118
+ color: var(--color-amber-100);
119
+ }
120
+
121
+ .dark .cm-editor .cm-searchMatch.cm-searchMatch-selected {
122
+ background-color: var(--color-amber-600);
123
+ }
124
+
125
+ .dark .cm-editor .cm-tooltip {
126
+ background-color: var(--recce-bg-elevated);
127
+ border-color: var(--recce-border);
128
+ color: var(--recce-text-primary);
129
+ }
130
+
131
+ .dark .cm-editor .cm-tooltip-autocomplete {
132
+ background-color: var(--recce-bg-elevated);
133
+ }
134
+
135
+ .dark .cm-editor .cm-tooltip-autocomplete > ul > li {
136
+ color: var(--recce-text-primary);
137
+ }
138
+
139
+ .dark .cm-editor .cm-tooltip-autocomplete > ul > li[aria-selected] {
140
+ background-color: var(--color-brand-800);
141
+ color: var(--recce-text-primary);
142
+ }
143
+
144
+ /* CodeMirror syntax highlighting for dark mode */
145
+ .dark .cm-editor .cm-keyword {
146
+ color: var(--color-fuchsia-400);
147
+ }
148
+ .dark .cm-editor .cm-operator {
149
+ color: var(--recce-text-primary);
150
+ }
151
+ .dark .cm-editor .cm-variable {
152
+ color: var(--color-cyan-400);
153
+ }
154
+ .dark .cm-editor .cm-variable-2 {
155
+ color: var(--color-cyan-300);
156
+ }
157
+ .dark .cm-editor .cm-variable-3 {
158
+ color: var(--color-cyan-200);
159
+ }
160
+ .dark .cm-editor .cm-builtin {
161
+ color: var(--color-fuchsia-300);
162
+ }
163
+ .dark .cm-editor .cm-atom {
164
+ color: var(--color-amber-400);
165
+ }
166
+ .dark .cm-editor .cm-number {
167
+ color: var(--color-amber-400);
168
+ }
169
+ .dark .cm-editor .cm-def {
170
+ color: var(--color-iochmara-400);
171
+ }
172
+ .dark .cm-editor .cm-string {
173
+ color: var(--color-green-400);
174
+ }
175
+ .dark .cm-editor .cm-string-2 {
176
+ color: var(--color-green-300);
177
+ }
178
+ .dark .cm-editor .cm-comment {
179
+ color: var(--recce-text-muted);
180
+ }
181
+ .dark .cm-editor .cm-tag {
182
+ color: var(--color-red-400);
183
+ }
184
+ .dark .cm-editor .cm-meta {
185
+ color: var(--recce-text-secondary);
186
+ }
187
+ .dark .cm-editor .cm-attribute {
188
+ color: var(--color-cyan-400);
189
+ }
190
+ .dark .cm-editor .cm-property {
191
+ color: var(--color-cyan-400);
192
+ }
193
+ .dark .cm-editor .cm-qualifier {
194
+ color: var(--color-iochmara-400);
195
+ }
196
+ .dark .cm-editor .cm-type {
197
+ color: var(--color-amber-300);
198
+ }
199
+ .dark .cm-editor .cm-error {
200
+ color: var(--color-red-400);
201
+ }
202
+ .dark .cm-editor .cm-link {
203
+ color: var(--color-iochmara-400);
204
+ }
205
+
206
+ /* ========================================
207
+ * Split Pane Styling
208
+ * Styles for resizable split pane components
209
+ * ======================================== */
210
+ .recce-split-pane {
211
+ display: flex;
212
+ height: 100%;
213
+ width: 100%;
214
+ }
215
+
216
+ .recce-split-pane-horizontal {
217
+ flex-direction: row;
218
+ }
219
+
220
+ .recce-split-pane-vertical {
221
+ flex-direction: column;
222
+ }
223
+
224
+ .recce-split-pane-resizer {
225
+ background-color: var(--recce-border);
226
+ flex-shrink: 0;
227
+ transition: background-color 0.15s ease;
228
+ }
229
+
230
+ .recce-split-pane-resizer:hover {
231
+ background-color: var(--recce-brand);
232
+ }
233
+
234
+ .recce-split-pane-resizer-horizontal {
235
+ width: 4px;
236
+ cursor: col-resize;
237
+ }
238
+
239
+ .recce-split-pane-resizer-vertical {
240
+ height: 4px;
241
+ cursor: row-resize;
242
+ }
243
+
244
+ .dark .recce-split-pane-resizer {
245
+ background-color: var(--recce-border);
246
+ }
247
+
248
+ .dark .recce-split-pane-resizer:hover {
249
+ background-color: var(--recce-brand);
250
+ }
251
+
252
+ /* ========================================
253
+ * Panel and Card Styling
254
+ * Common panel and card component styles
255
+ * ======================================== */
256
+ .recce-panel {
257
+ background-color: var(--recce-bg-paper);
258
+ border: 1px solid var(--recce-border);
259
+ border-radius: 8px;
260
+ }
261
+
262
+ .recce-panel-elevated {
263
+ background-color: var(--recce-bg-elevated);
264
+ box-shadow: var(--recce-shadow);
265
+ }
266
+
267
+ .recce-card {
268
+ background-color: var(--recce-bg-paper);
269
+ border: 1px solid var(--recce-border);
270
+ border-radius: 8px;
271
+ padding: 16px;
272
+ }
273
+
274
+ .recce-card:hover {
275
+ border-color: var(--recce-brand);
276
+ }
277
+
278
+ /* ========================================
279
+ * Button Base Styling
280
+ * Base button styles that work with MUI
281
+ * ======================================== */
282
+ .recce-btn {
283
+ display: inline-flex;
284
+ align-items: center;
285
+ justify-content: center;
286
+ gap: 8px;
287
+ padding: 8px 16px;
288
+ font-weight: 500;
289
+ border-radius: 6px;
290
+ transition: all 0.15s ease;
291
+ }
292
+
293
+ .recce-btn-primary {
294
+ background-color: var(--recce-brand);
295
+ color: white;
296
+ }
297
+
298
+ .recce-btn-primary:hover {
299
+ background-color: var(--recce-brand-hover);
300
+ }
301
+
302
+ .recce-btn-primary:active {
303
+ background-color: var(--recce-brand-active);
304
+ }
305
+
306
+ .recce-btn-secondary {
307
+ background-color: transparent;
308
+ color: var(--recce-text-primary);
309
+ border: 1px solid var(--recce-border);
310
+ }
311
+
312
+ .recce-btn-secondary:hover {
313
+ background-color: var(--recce-bg-subtle);
314
+ border-color: var(--recce-text-muted);
315
+ }
316
+
317
+ /* ========================================
318
+ * Loading States
319
+ * Styles for loading indicators
320
+ * ======================================== */
321
+ .recce-skeleton {
322
+ background: linear-gradient(
323
+ 90deg,
324
+ var(--recce-bg-subtle) 25%,
325
+ var(--recce-bg-elevated) 50%,
326
+ var(--recce-bg-subtle) 75%
327
+ );
328
+ background-size: 200% 100%;
329
+ animation: recce-skeleton-shimmer 1.5s infinite;
330
+ border-radius: 4px;
331
+ }
332
+
333
+ @keyframes recce-skeleton-shimmer {
334
+ 0% {
335
+ background-position: 200% 0;
336
+ }
337
+ 100% {
338
+ background-position: -200% 0;
339
+ }
340
+ }
341
+
342
+ /* ========================================
343
+ * Tooltip Styling
344
+ * Consistent tooltip appearance
345
+ * ======================================== */
346
+ .recce-tooltip {
347
+ background-color: var(--color-neutral-800);
348
+ color: var(--color-neutral-50);
349
+ padding: 6px 12px;
350
+ border-radius: 4px;
351
+ font-size: 12px;
352
+ box-shadow: var(--recce-shadow-md);
353
+ }
354
+
355
+ .dark .recce-tooltip {
356
+ background-color: var(--color-neutral-200);
357
+ color: var(--color-neutral-900);
358
+ }
359
+
360
+ /* ========================================
361
+ * Badge Styling
362
+ * Status badges and labels
363
+ * ======================================== */
364
+ .recce-badge {
365
+ display: inline-flex;
366
+ align-items: center;
367
+ padding: 2px 8px;
368
+ font-size: 12px;
369
+ font-weight: 500;
370
+ border-radius: 9999px;
371
+ }
372
+
373
+ .recce-badge-success {
374
+ background-color: var(--color-green-100);
375
+ color: var(--color-green-700);
376
+ }
377
+
378
+ .dark .recce-badge-success {
379
+ background-color: var(--color-green-900);
380
+ color: var(--color-green-300);
381
+ }
382
+
383
+ .recce-badge-warning {
384
+ background-color: var(--color-amber-100);
385
+ color: var(--color-amber-700);
386
+ }
387
+
388
+ .dark .recce-badge-warning {
389
+ background-color: var(--color-amber-900);
390
+ color: var(--color-amber-300);
391
+ }
392
+
393
+ .recce-badge-error {
394
+ background-color: var(--color-red-100);
395
+ color: var(--color-red-700);
396
+ }
397
+
398
+ .dark .recce-badge-error {
399
+ background-color: var(--color-red-900);
400
+ color: var(--color-red-300);
401
+ }
402
+
403
+ .recce-badge-info {
404
+ background-color: var(--color-iochmara-100);
405
+ color: var(--color-iochmara-700);
406
+ }
407
+
408
+ .dark .recce-badge-info {
409
+ background-color: var(--color-iochmara-900);
410
+ color: var(--color-iochmara-300);
411
+ }
412
+
413
+ /* ========================================
414
+ * Transition Utilities
415
+ * Common transition classes
416
+ * ======================================== */
417
+ .recce-transition-colors {
418
+ transition:
419
+ color 0.15s ease,
420
+ background-color 0.15s ease,
421
+ border-color 0.15s ease;
422
+ }
423
+
424
+ .recce-transition-all {
425
+ transition: all 0.15s ease;
426
+ }
427
+
428
+ .recce-transition-opacity {
429
+ transition: opacity 0.15s ease;
430
+ }
431
+
432
+ .recce-transition-transform {
433
+ transition: transform 0.15s ease;
434
+ }
435
+
436
+ /* ========================================
437
+ * React Flow Controls
438
+ * Theme-aware colors for React Flow controls
439
+ * Uses CSS custom properties that map to the Recce theme
440
+ * ======================================== */
441
+
442
+ /* Light mode (default) */
443
+ :root,
444
+ .light {
445
+ --rf-controls-bg: #fafafa; /* neutral[50] */
446
+ --rf-controls-border: #e5e5e5; /* neutral[200] */
447
+ --rf-controls-text: #404040; /* neutral[700] */
448
+ --rf-controls-hover-bg: #e5e5e5; /* neutral[200] */
449
+ }
450
+
451
+ /* Dark mode */
452
+ .dark {
453
+ --rf-controls-bg: #404040; /* neutral[700] */
454
+ --rf-controls-border: #525252; /* neutral[600] */
455
+ --rf-controls-text: #e5e5e5; /* neutral[200] */
456
+ --rf-controls-hover-bg: #525252; /* neutral[600] */
457
+ }
458
+
459
+ /* React Flow Controls container */
460
+ .react-flow__controls {
461
+ background-color: var(--rf-controls-bg);
462
+ border-color: var(--rf-controls-border);
463
+ }
464
+
465
+ /* React Flow Controls buttons */
466
+ .react-flow__controls-button {
467
+ background-color: var(--rf-controls-bg);
468
+ color: var(--rf-controls-text);
469
+ border-bottom-color: var(--rf-controls-border);
470
+ }
471
+
472
+ .react-flow__controls-button:hover {
473
+ background-color: var(--rf-controls-hover-bg);
474
+ }
475
+
476
+ .react-flow__controls-button svg {
477
+ fill: var(--rf-controls-text);
478
+ }
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import{n as e}from"./colors-BbPSDR1X.js";import{createTheme as t}from"@mui/material/styles";import{themeQuartz as n}from"ag-grid-community";const r=`system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif`,i=n.withParams({backgroundColor:`#ffffff`,headerBackgroundColor:`#f5f5f5`,rowHoverColor:`#ffffff`,borderColor:`#e0e0e0`,foregroundColor:`#1e1e1e`,fontFamily:`monospace`,fontSize:13,headerFontFamily:r,headerFontSize:13,headerFontWeight:700,cellHorizontalPadding:8,wrapperBorderRadius:0}),a=n.withParams({backgroundColor:`#1e1e1e`,headerBackgroundColor:`#383838`,rowHoverColor:`#1e1e1e`,borderColor:`#4a4a4a`,foregroundColor:`#e0e0e0`,fontFamily:`monospace`,fontSize:13,headerFontFamily:r,headerFontSize:13,headerFontWeight:700,cellHorizontalPadding:8,wrapperBorderRadius:0});function o(e){return{gridColor:e?`#4b5563`:`#d1d5db`,textColor:e?`#e5e7eb`:`#374151`,borderColor:e?`#6b7280`:`#9ca3af`,tooltipBackgroundColor:e?`#1f2937`:`#ffffff`,tooltipTextColor:e?`#e5e7eb`:`#111827`}}function s(e,t=!0){let n=o(e);return{grid:{color:t?n.gridColor:void 0,display:t},ticks:{color:n.textColor},border:{color:n.borderColor}}}function c(e){let t=o(e);return{legend:{labels:{color:t.textColor}},title:{color:t.textColor},tooltip:{backgroundColor:t.tooltipBackgroundColor,titleColor:t.tooltipTextColor,bodyColor:t.tooltipTextColor,borderColor:t.borderColor,borderWidth:1}}}const l=`#63B3ED`,u=`#F6AD55`,d=`${l}A5`,f=`${u}A5`,p=`#90CDF4`,m=`#FBD38D`,h=`${p}A5`,g=`${m}A5`,_=`#63B3ED`,v=`#90CDF4`;function y(e){return{current:e?p:l,base:e?m:u,currentWithAlpha:e?h:d,baseWithAlpha:e?g:f,info:e?v:_}}function b(e,t){return[{props:{color:e,variant:`contained`},style:{backgroundColor:`var(--mui-palette-${e}-main, ${t[500]})`,color:`var(--mui-palette-${e}-contrastText, #ffffff)`,"&:hover":{backgroundColor:`var(--mui-palette-${e}-dark, ${t[600]})`}}},{props:{color:e,variant:`outlined`},style:{"&&":{borderColor:`var(--mui-palette-${e}-main, ${t[500]})`,color:`var(--mui-palette-${e}-dark, ${t[600]})`},"&:hover":{borderColor:`var(--mui-palette-${e}-dark, ${t[600]})`,backgroundColor:`color-mix(in srgb, var(--mui-palette-${e}-light, ${t[50]}) 30%, transparent)`}}},{props:{color:e,variant:`text`},style:{"&&":{color:`var(--mui-palette-${e}-dark, ${t[600]})`},"&:hover":{backgroundColor:`color-mix(in srgb, var(--mui-palette-${e}-light, ${t[50]}) 30%, transparent)`}}}]}function x(e,t){return[{props:{color:e,variant:`filled`},style:{backgroundColor:`var(--mui-palette-${e}-main, ${t[500]})`,color:`var(--mui-palette-${e}-contrastText, #ffffff)`,"&:hover":{backgroundColor:`var(--mui-palette-${e}-dark, ${t[600]})`},"&.MuiChip-clickable:hover":{backgroundColor:`var(--mui-palette-${e}-dark, ${t[600]})`}}},{props:{color:e,variant:`outlined`},style:{"&&":{borderColor:`var(--mui-palette-${e}-main, ${t[500]})`,color:`var(--mui-palette-${e}-dark, ${t[600]})`},"&:hover":{backgroundColor:`color-mix(in srgb, var(--mui-palette-${e}-light, ${t[50]}) 25%, transparent)`}}}]}function S(e,t){return[{props:{color:e},style:{"& .MuiBadge-badge":{backgroundColor:`var(--mui-palette-${e}-main, ${t[500]})`,color:`var(--mui-palette-${e}-contrastText, #ffffff)`}}}]}function C(e,t){return[{props:{color:e},style:{color:`var(--mui-palette-${e}-main, ${t[500]})`}}]}const w=[...b(`brand`,e.brand),...b(`iochmara`,e.iochmara),...b(`cyan`,e.cyan),...b(`amber`,e.amber),...b(`green`,e.green),...b(`red`,e.red),...b(`rose`,e.rose),...b(`fuchsia`,e.fuchsia),...b(`neutral`,e.neutral)],T=[...x(`brand`,e.brand),...x(`iochmara`,e.iochmara),...x(`cyan`,e.cyan),...x(`amber`,e.amber),...x(`green`,e.green),...x(`red`,e.red),...x(`rose`,e.rose),...x(`fuchsia`,e.fuchsia),...x(`neutral`,e.neutral)],E=[...S(`brand`,e.brand),...S(`iochmara`,e.iochmara)],D=[...C(`brand`,e.brand),...C(`iochmara`,e.iochmara)],O={typography:{fontFamily:[`-apple-system`,`BlinkMacSystemFont`,`"Segoe UI"`,`Roboto`,`"Helvetica Neue"`,`Arial`,`sans-serif`,`"Apple Color Emoji"`,`"Segoe UI Emoji"`,`"Segoe UI Symbol"`].join(`,`),fontSize:14,h1:{fontWeight:600},h2:{fontWeight:600},h3:{fontWeight:600},h4:{fontWeight:600},h5:{fontWeight:600},h6:{fontWeight:600},button:{textTransform:`none`,fontWeight:500}},shape:{borderRadius:8},components:{MuiButton:{defaultProps:{disableElevation:!0},styleOverrides:{root:{borderRadius:6,boxShadow:`none`,textTransform:`none`,fontWeight:500,"&:hover":{boxShadow:`none`}},sizeSmall:{fontSize:`0.8125rem`,padding:`4px 10px`},sizeMedium:{padding:`0.5rem 1rem`,fontSize:`1rem`},sizeLarge:{padding:`0.75rem 1.5rem`,fontSize:`1.125rem`},contained:{"&:hover":{boxShadow:`none`}},outlined:{borderWidth:`1px`,"&:hover":{borderWidth:`1px`}}},variants:[{props:{size:`xsmall`},style:{fontSize:`0.75rem`,padding:`2px 8px`,minHeight:24}},...w]},MuiChip:{styleOverrides:{root:{borderRadius:6,fontWeight:500},sizeSmall:{fontSize:`0.75rem`,height:24},sizeMedium:{height:32,fontSize:`0.875rem`}},variants:[{props:{size:`xsmall`},style:{fontSize:`0.6875rem`,height:20,"& .MuiChip-label":{padding:`0 6px`}}},...T]},MuiBadge:{variants:[...E],styleOverrides:{badge:{fontWeight:500,fontSize:`0.75rem`}}},MuiAlert:{styleOverrides:{root:{borderRadius:6},standardSuccess:{backgroundColor:`var(--mui-palette-success-light)`,color:`var(--mui-palette-success-dark)`,"& .MuiAlert-icon":{color:`var(--mui-palette-success-dark)`}},standardWarning:{backgroundColor:`var(--mui-palette-warning-light)`,color:`var(--mui-palette-warning-dark)`,"& .MuiAlert-icon":{color:`var(--mui-palette-warning-dark)`}},standardError:{backgroundColor:`var(--mui-palette-error-light)`,color:`var(--mui-palette-error-dark)`,"& .MuiAlert-icon":{color:`var(--mui-palette-error-dark)`}},standardInfo:{backgroundColor:`var(--mui-palette-info-light)`,color:`var(--mui-palette-info-dark)`,"& .MuiAlert-icon":{color:`var(--mui-palette-info-dark)`}}}},MuiTabs:{styleOverrides:{indicator:{height:2}}},MuiTab:{styleOverrides:{root:{textTransform:`none`,fontWeight:500,minHeight:48}}},MuiAvatar:{styleOverrides:{root:{fontWeight:500}}},MuiCircularProgress:{defaultProps:{color:`primary`},variants:[...D]},MuiLink:{defaultProps:{underline:`hover`},styleOverrides:{root:{fontWeight:500,color:`var(--mui-palette-secondary-main)`,textDecorationColor:`var(--mui-palette-secondary-light)`,"&:hover":{color:`var(--mui-palette-secondary-dark)`}}}},MuiPopover:{styleOverrides:{paper:{borderRadius:8,boxShadow:`0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)`}}},MuiDivider:{styleOverrides:{root:{borderColor:`var(--mui-palette-divider)`}}},MuiBreadcrumbs:{styleOverrides:{separator:{color:`var(--mui-palette-text-secondary)`}}},MuiCard:{styleOverrides:{root:{borderRadius:8,boxShadow:`0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1)`}}},MuiPaper:{styleOverrides:{root:{backgroundImage:`none`}}},MuiTooltip:{styleOverrides:{tooltip:{fontSize:`0.75rem`}}},MuiIconButton:{styleOverrides:{root:{borderRadius:6},sizeSmall:{padding:4},sizeMedium:{padding:8},sizeLarge:{padding:12}}},MuiTextField:{defaultProps:{variant:`outlined`,size:`small`},styleOverrides:{root:{"& .MuiOutlinedInput-root":{borderRadius:6}}}},MuiOutlinedInput:{styleOverrides:{root:{borderRadius:6,"&:hover .MuiOutlinedInput-notchedOutline":{borderColor:`var(--mui-palette-secondary-light)`},"&.Mui-focused .MuiOutlinedInput-notchedOutline":{borderColor:`var(--mui-palette-secondary-main)`,borderWidth:2}},notchedOutline:{borderColor:`var(--mui-palette-divider)`}}},MuiCheckbox:{defaultProps:{color:`primary`},styleOverrides:{root:{borderRadius:4}}},MuiSwitch:{defaultProps:{color:`primary`}},MuiDialog:{styleOverrides:{paper:{borderRadius:8}}},MuiDialogTitle:{styleOverrides:{root:{fontWeight:600,fontSize:`1.125rem`}}},MuiMenu:{styleOverrides:{paper:{borderRadius:8,boxShadow:`0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)`}}},MuiMenuItem:{styleOverrides:{root:{fontSize:`0.875rem`,padding:`0.5rem 0.75rem`,"&:hover":{backgroundColor:`var(--mui-palette-action-hover)`},"&.Mui-selected":{backgroundColor:`var(--mui-palette-action-selected)`,"&:hover":{backgroundColor:`var(--mui-palette-action-selected)`}}}}},MuiAutocomplete:{styleOverrides:{paper:{borderRadius:6,boxShadow:`0 4px 6px -1px rgba(0, 0, 0, 0.15), 0 2px 4px -2px rgba(0, 0, 0, 0.1)`,backgroundColor:e.neutral[200],".dark &":{backgroundColor:e.neutral[700]}},listbox:{padding:`4px 0`},option:{fontSize:`0.875rem`,padding:`0.5rem 0.75rem`,'&[aria-selected="true"]':{backgroundColor:`var(--mui-palette-action-selected)`},"&.Mui-focused":{backgroundColor:`var(--mui-palette-action-hover)`}}}}}},k=t({cssVariables:{colorSchemeSelector:`class`},colorSchemes:{light:{palette:{mode:`light`,primary:{main:e.iochmara[500],light:e.iochmara[300],dark:e.iochmara[600],contrastText:`#ffffff`},secondary:{main:e.cyan[500],light:e.cyan[400],dark:e.cyan[600],contrastText:`#ffffff`},brand:{light:e.brand[400],main:e.brand[500],dark:e.brand[600],contrastText:`#ffffff`},iochmara:{light:e.iochmara[400],main:e.iochmara[500],dark:e.iochmara[600],contrastText:`#ffffff`},cyan:{main:e.cyan[500],light:e.cyan[300],dark:e.cyan[600],contrastText:`#ffffff`},amber:{main:e.amber[500],light:e.amber[300],dark:e.amber[600],contrastText:`#ffffff`},green:{main:e.green[500],light:e.green[300],dark:e.green[600],contrastText:`#ffffff`},red:{main:e.red[500],light:e.red[300],dark:e.red[600],contrastText:`#ffffff`},rose:{main:e.rose[500],light:e.rose[300],dark:e.rose[600],contrastText:`#ffffff`},fuchsia:{main:e.fuchsia[500],light:e.fuchsia[300],dark:e.fuchsia[600],contrastText:`#ffffff`},neutral:{main:e.neutral[600],light:e.neutral[300],dark:e.neutral[700],contrastText:`#ffffff`},grey:e.neutral,success:e.success,warning:e.warning,error:e.error,info:e.info,background:{default:`#ffffff`,paper:e.neutral[50]},text:{primary:e.neutral[900],secondary:e.neutral[600],disabled:e.neutral[400]},divider:e.neutral[200]}},dark:{palette:{mode:`dark`,primary:{main:e.iochmara[500],light:e.iochmara[300],dark:e.iochmara[600],contrastText:`#ffffff`},secondary:{main:e.cyan[500],light:e.cyan[400],dark:e.cyan[600],contrastText:`#ffffff`},brand:{light:e.brand[300],main:e.brand[400],dark:e.brand[600],contrastText:`#ffffff`},iochmara:{light:e.iochmara[300],main:e.iochmara[400],dark:e.iochmara[600],contrastText:`#ffffff`},cyan:{main:e.cyan[400],light:e.cyan[300],dark:e.cyan[600],contrastText:`#ffffff`},amber:{main:e.amber[400],light:e.amber[300],dark:e.amber[600],contrastText:`#000000`},green:{main:e.green[400],light:e.green[300],dark:e.green[600],contrastText:`#ffffff`},red:{main:e.red[400],light:e.red[300],dark:e.red[600],contrastText:`#ffffff`},rose:{main:e.rose[400],light:e.rose[300],dark:e.rose[600],contrastText:`#ffffff`},fuchsia:{main:e.fuchsia[400],light:e.fuchsia[300],dark:e.fuchsia[600],contrastText:`#ffffff`},neutral:{main:e.neutral[400],light:e.neutral[300],dark:e.neutral[200],contrastText:e.neutral[900]},grey:e.neutral,success:{light:e.success.light,main:e.success.main,dark:e.success.dark,contrastText:`#000000`},warning:{light:e.warning.light,main:e.warning.main,dark:e.warning.dark,contrastText:`#000000`},error:{light:e.error.light,main:e.error.main,dark:e.error.dark,contrastText:`#ffffff`},info:{light:e.info.light,main:e.info.main,dark:e.info.dark,contrastText:`#ffffff`},background:{default:e.neutral[900],paper:e.neutral[800]},text:{primary:e.neutral[50],secondary:e.neutral[400],disabled:e.neutral[600]},divider:e.neutral[700]}}},...O});export{i as _,f as a,h as c,v as d,y as f,a as g,s as h,g as i,d as l,c as m,u as n,l as o,o as p,m as r,p as s,k as t,_ as u};
3
+ //# sourceMappingURL=theme-B_XT39eO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-B_XT39eO.js","names":[],"sources":["../src/components/data/agGridTheme.ts","../src/theme/chartTheme.ts","../src/theme/theme.ts"],"sourcesContent":["\"use client\";\n\n/**\n * @file agGridTheme.ts\n * @description AG Grid theme configuration for data grids\n *\n * Provides light and dark themes using AG Grid's themeQuartz as a base.\n */\n\nimport { themeQuartz } from \"ag-grid-community\";\n\n// System font stack for headers\nconst systemFontStack =\n 'system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif';\n\n/**\n * Light theme for AG Grid data grids\n */\nexport const dataGridThemeLight = themeQuartz.withParams({\n backgroundColor: \"#ffffff\",\n headerBackgroundColor: \"#f5f5f5\",\n rowHoverColor: \"#ffffff\",\n borderColor: \"#e0e0e0\",\n foregroundColor: \"#1e1e1e\",\n fontFamily: \"monospace\",\n fontSize: 13,\n headerFontFamily: systemFontStack,\n headerFontSize: 13,\n headerFontWeight: 700,\n cellHorizontalPadding: 8,\n wrapperBorderRadius: 0,\n});\n\n/**\n * Dark theme for AG Grid data grids\n */\nexport const dataGridThemeDark = themeQuartz.withParams({\n backgroundColor: \"#1e1e1e\",\n headerBackgroundColor: \"#383838\",\n rowHoverColor: \"#1e1e1e\",\n borderColor: \"#4a4a4a\",\n foregroundColor: \"#e0e0e0\",\n fontFamily: \"monospace\",\n fontSize: 13,\n headerFontFamily: systemFontStack,\n headerFontSize: 13,\n headerFontWeight: 700,\n cellHorizontalPadding: 8,\n wrapperBorderRadius: 0,\n});\n","/**\n * Shared Chart.js theme utilities for dark mode support\n */\n\nexport interface ChartThemeColors {\n gridColor: string;\n textColor: string;\n borderColor: string;\n tooltipBackgroundColor: string;\n tooltipTextColor: string;\n}\n\n/**\n * Get theme-aware colors for Chart.js charts\n * @param isDark - Whether dark mode is active\n * @returns Theme colors for Chart.js configuration\n */\nexport function getChartThemeColors(isDark: boolean): ChartThemeColors {\n return {\n gridColor: isDark ? \"#4b5563\" : \"#d1d5db\",\n textColor: isDark ? \"#e5e7eb\" : \"#374151\",\n borderColor: isDark ? \"#6b7280\" : \"#9ca3af\",\n tooltipBackgroundColor: isDark ? \"#1f2937\" : \"#ffffff\",\n tooltipTextColor: isDark ? \"#e5e7eb\" : \"#111827\",\n };\n}\n\n/**\n * Get Chart.js scale options with theme-aware colors\n * @param isDark - Whether dark mode is active\n * @param showGrid - Whether to show grid lines\n * @returns Partial scale options for Chart.js\n */\nexport function getThemedScaleOptions(isDark: boolean, showGrid = true) {\n const colors = getChartThemeColors(isDark);\n return {\n grid: {\n color: showGrid ? colors.gridColor : undefined,\n display: showGrid,\n },\n ticks: {\n color: colors.textColor,\n },\n border: {\n color: colors.borderColor,\n },\n };\n}\n\n/**\n * Get Chart.js plugin options with theme-aware colors\n * @param isDark - Whether dark mode is active\n * @returns Plugin options for Chart.js (legend, title, tooltip)\n */\nexport function getThemedPluginOptions(isDark: boolean) {\n const colors = getChartThemeColors(isDark);\n return {\n legend: {\n labels: {\n color: colors.textColor,\n },\n },\n title: {\n color: colors.textColor,\n },\n tooltip: {\n backgroundColor: colors.tooltipBackgroundColor,\n titleColor: colors.tooltipTextColor,\n bodyColor: colors.tooltipTextColor,\n borderColor: colors.borderColor,\n borderWidth: 1,\n },\n };\n}\n\n// Bar color constants - Light mode\nexport const CURRENT_BAR_COLOR = \"#63B3ED\";\nexport const BASE_BAR_COLOR = \"#F6AD55\";\nexport const CURRENT_BAR_COLOR_WITH_ALPHA = `${CURRENT_BAR_COLOR}A5`;\nexport const BASE_BAR_COLOR_WITH_ALPHA = `${BASE_BAR_COLOR}A5`;\n\n// Bar color constants - Dark mode (slightly brighter for better visibility)\nexport const CURRENT_BAR_COLOR_DARK = \"#90CDF4\";\nexport const BASE_BAR_COLOR_DARK = \"#FBD38D\";\nexport const CURRENT_BAR_COLOR_DARK_WITH_ALPHA = `${CURRENT_BAR_COLOR_DARK}A5`;\nexport const BASE_BAR_COLOR_DARK_WITH_ALPHA = `${BASE_BAR_COLOR_DARK}A5`;\n\n// Info color\nexport const INFO_VAL_COLOR = \"#63B3ED\";\nexport const INFO_VAL_COLOR_DARK = \"#90CDF4\";\n\n/**\n * Get theme-aware bar colors for charts\n * @param isDark - Whether dark mode is active\n * @returns Object with current and base bar colors\n */\nexport function getBarColors(isDark: boolean) {\n return {\n current: isDark ? CURRENT_BAR_COLOR_DARK : CURRENT_BAR_COLOR,\n base: isDark ? BASE_BAR_COLOR_DARK : BASE_BAR_COLOR,\n currentWithAlpha: isDark\n ? CURRENT_BAR_COLOR_DARK_WITH_ALPHA\n : CURRENT_BAR_COLOR_WITH_ALPHA,\n baseWithAlpha: isDark\n ? BASE_BAR_COLOR_DARK_WITH_ALPHA\n : BASE_BAR_COLOR_WITH_ALPHA,\n info: isDark ? INFO_VAL_COLOR_DARK : INFO_VAL_COLOR,\n };\n}\n","/**\n * MUI Theme configuration with CSS Variables mode\n *\n * This theme uses MUI 7's CSS Variables mode with `colorSchemeSelector: 'class'`\n * to toggle between light and dark modes using the `.dark` class on the document.\n * This integrates with the ThemeContext which manages the class toggle.\n *\n * Color values and component variants are aligned with the main Recce theme at\n * ui/src/components/ui/mui-theme.ts for consistency.\n */\n\nimport { createTheme, type ThemeOptions } from \"@mui/material/styles\";\n\nimport { colors } from \"./colors\";\n\n// Custom color names type for variant generation\ntype CustomColorName =\n | \"brand\"\n | \"iochmara\"\n | \"cyan\"\n | \"amber\"\n | \"green\"\n | \"red\"\n | \"rose\"\n | \"fuchsia\"\n | \"neutral\";\n\n// Type for color scales with numeric keys (50, 100, 200, etc.)\ninterface ColorScale {\n readonly [key: number]: string;\n readonly 50: string;\n readonly 100: string;\n readonly 200: string;\n readonly 300: string;\n readonly 400: string;\n readonly 500: string;\n readonly 600: string;\n readonly 700: string;\n readonly 800: string;\n readonly 900: string;\n readonly 950: string;\n}\n\n/**\n * Helper to generate button color variants for a given color\n * Creates contained, outlined, and text variant styles\n *\n * Uses the `&&` selector pattern to increase CSS specificity, ensuring our\n * custom color variant styles override MUI's default outlined/text button styles.\n * MUI's default styles have high specificity that would otherwise win the cascade.\n *\n * @see https://mui.com/material-ui/customization/theme-components/#specificity\n */\nfunction createButtonColorVariants<T extends CustomColorName>(\n colorName: T,\n colorScale: ColorScale,\n) {\n return [\n // Contained variant (solid) - uses CSS variables for light/dark mode\n {\n props: { color: colorName, variant: \"contained\" as const },\n style: {\n backgroundColor: `var(--mui-palette-${colorName}-main, ${colorScale[500]})`,\n color: `var(--mui-palette-${colorName}-contrastText, #ffffff)`,\n \"&:hover\": {\n backgroundColor: `var(--mui-palette-${colorName}-dark, ${colorScale[600]})`,\n },\n },\n },\n // Outlined variant - uses && for higher specificity over MUI defaults\n {\n props: { color: colorName, variant: \"outlined\" as const },\n style: {\n // && increases specificity to override MUI's default outlined styles\n \"&&\": {\n borderColor: `var(--mui-palette-${colorName}-main, ${colorScale[500]})`,\n color: `var(--mui-palette-${colorName}-dark, ${colorScale[600]})`,\n },\n \"&:hover\": {\n borderColor: `var(--mui-palette-${colorName}-dark, ${colorScale[600]})`,\n backgroundColor: `color-mix(in srgb, var(--mui-palette-${colorName}-light, ${colorScale[50]}) 30%, transparent)`,\n },\n },\n },\n // Text variant (ghost) - uses && for higher specificity over MUI defaults\n {\n props: { color: colorName, variant: \"text\" as const },\n style: {\n // && increases specificity to override MUI's default text styles\n \"&&\": {\n color: `var(--mui-palette-${colorName}-dark, ${colorScale[600]})`,\n },\n \"&:hover\": {\n backgroundColor: `color-mix(in srgb, var(--mui-palette-${colorName}-light, ${colorScale[50]}) 30%, transparent)`,\n },\n },\n },\n ];\n}\n\n/**\n * Helper to generate Chip color variants\n * Uses CSS variables for automatic light/dark mode support\n *\n * Uses the `&&` selector pattern for outlined variant to ensure our custom\n * color styles override MUI's default chip outlined styles.\n */\nfunction createChipColorVariants<T extends CustomColorName>(\n colorName: T,\n colorScale: ColorScale,\n) {\n return [\n // Filled variant - uses CSS variables for light/dark mode\n {\n props: { color: colorName, variant: \"filled\" as const },\n style: {\n backgroundColor: `var(--mui-palette-${colorName}-main, ${colorScale[500]})`,\n color: `var(--mui-palette-${colorName}-contrastText, #ffffff)`,\n \"&:hover\": {\n backgroundColor: `var(--mui-palette-${colorName}-dark, ${colorScale[600]})`,\n },\n \"&.MuiChip-clickable:hover\": {\n backgroundColor: `var(--mui-palette-${colorName}-dark, ${colorScale[600]})`,\n },\n },\n },\n // Outlined variant - uses && for higher specificity over MUI defaults\n {\n props: { color: colorName, variant: \"outlined\" as const },\n style: {\n // && increases specificity to override MUI's default outlined styles\n \"&&\": {\n borderColor: `var(--mui-palette-${colorName}-main, ${colorScale[500]})`,\n color: `var(--mui-palette-${colorName}-dark, ${colorScale[600]})`,\n },\n \"&:hover\": {\n backgroundColor: `color-mix(in srgb, var(--mui-palette-${colorName}-light, ${colorScale[50]}) 25%, transparent)`,\n },\n },\n },\n ];\n}\n\n/**\n * Helper to generate Badge color variants\n * Uses CSS variables for automatic light/dark mode support\n */\nfunction createBadgeColorVariant<T extends CustomColorName>(\n colorName: T,\n colorScale: ColorScale,\n) {\n return [\n {\n props: { color: colorName },\n style: {\n \"& .MuiBadge-badge\": {\n backgroundColor: `var(--mui-palette-${colorName}-main, ${colorScale[500]})`,\n color: `var(--mui-palette-${colorName}-contrastText, #ffffff)`,\n },\n },\n },\n ];\n}\n\n/**\n * Helper to generate CircularProgress color variants\n * Uses CSS variables for automatic light/dark mode support\n */\nfunction createProgressColorVariant<T extends CustomColorName>(\n colorName: T,\n colorScale: ColorScale,\n) {\n return [\n {\n props: { color: colorName },\n style: {\n color: `var(--mui-palette-${colorName}-main, ${colorScale[500]})`,\n },\n },\n ];\n}\n\n// Generate all button color variants\nconst buttonColorVariants = [\n ...createButtonColorVariants(\"brand\", colors.brand),\n ...createButtonColorVariants(\"iochmara\", colors.iochmara),\n ...createButtonColorVariants(\"cyan\", colors.cyan),\n ...createButtonColorVariants(\"amber\", colors.amber),\n ...createButtonColorVariants(\"green\", colors.green),\n ...createButtonColorVariants(\"red\", colors.red),\n ...createButtonColorVariants(\"rose\", colors.rose),\n ...createButtonColorVariants(\"fuchsia\", colors.fuchsia),\n ...createButtonColorVariants(\"neutral\", colors.neutral),\n];\n\n// Generate all chip color variants\nconst chipColorVariants = [\n ...createChipColorVariants(\"brand\", colors.brand),\n ...createChipColorVariants(\"iochmara\", colors.iochmara),\n ...createChipColorVariants(\"cyan\", colors.cyan),\n ...createChipColorVariants(\"amber\", colors.amber),\n ...createChipColorVariants(\"green\", colors.green),\n ...createChipColorVariants(\"red\", colors.red),\n ...createChipColorVariants(\"rose\", colors.rose),\n ...createChipColorVariants(\"fuchsia\", colors.fuchsia),\n ...createChipColorVariants(\"neutral\", colors.neutral),\n];\n\n// Generate all badge color variants\nconst badgeColorVariants = [\n ...createBadgeColorVariant(\"brand\", colors.brand),\n ...createBadgeColorVariant(\"iochmara\", colors.iochmara),\n];\n\n// Generate all progress color variants\nconst progressColorVariants = [\n ...createProgressColorVariant(\"brand\", colors.brand),\n ...createProgressColorVariant(\"iochmara\", colors.iochmara),\n];\n\n// Module augmentations are in js/mui-augmentations.d.ts (included via tsconfig)\n\n/**\n * System font stack for optimal cross-platform rendering\n */\nconst systemFontStack = [\n \"-apple-system\",\n \"BlinkMacSystemFont\",\n '\"Segoe UI\"',\n \"Roboto\",\n '\"Helvetica Neue\"',\n \"Arial\",\n \"sans-serif\",\n '\"Apple Color Emoji\"',\n '\"Segoe UI Emoji\"',\n '\"Segoe UI Symbol\"',\n].join(\",\");\n\n/**\n * Shared theme options for both light and dark modes\n */\nconst sharedThemeOptions: ThemeOptions = {\n typography: {\n fontFamily: systemFontStack,\n // Slightly smaller default sizes for data-dense UIs\n fontSize: 14,\n h1: { fontWeight: 600 },\n h2: { fontWeight: 600 },\n h3: { fontWeight: 600 },\n h4: { fontWeight: 600 },\n h5: { fontWeight: 600 },\n h6: { fontWeight: 600 },\n button: {\n textTransform: \"none\", // No uppercase for buttons\n fontWeight: 500,\n },\n },\n shape: {\n borderRadius: 8, // Rounded corners\n },\n components: {\n MuiButton: {\n defaultProps: {\n disableElevation: true, // Match Chakra's flat button style\n },\n styleOverrides: {\n root: {\n borderRadius: 6,\n boxShadow: \"none\",\n textTransform: \"none\",\n fontWeight: 500,\n \"&:hover\": {\n boxShadow: \"none\",\n },\n },\n sizeSmall: {\n fontSize: \"0.8125rem\",\n padding: \"4px 10px\",\n },\n sizeMedium: {\n padding: \"0.5rem 1rem\",\n fontSize: \"1rem\",\n },\n sizeLarge: {\n padding: \"0.75rem 1.5rem\",\n fontSize: \"1.125rem\",\n },\n contained: {\n \"&:hover\": {\n boxShadow: \"none\",\n },\n },\n outlined: {\n borderWidth: \"1px\",\n \"&:hover\": {\n borderWidth: \"1px\",\n },\n },\n },\n variants: [\n // Size variant: xsmall\n {\n props: { size: \"xsmall\" },\n style: {\n fontSize: \"0.75rem\",\n padding: \"2px 8px\",\n minHeight: 24,\n },\n },\n // Color variants for brand and iochmara\n ...buttonColorVariants,\n ],\n },\n MuiChip: {\n styleOverrides: {\n root: {\n borderRadius: 6,\n fontWeight: 500,\n },\n sizeSmall: {\n fontSize: \"0.75rem\",\n height: 24,\n },\n sizeMedium: {\n height: 32,\n fontSize: \"0.875rem\",\n },\n },\n variants: [\n // Size variant: xsmall\n {\n props: { size: \"xsmall\" },\n style: {\n fontSize: \"0.6875rem\",\n height: 20,\n \"& .MuiChip-label\": {\n padding: \"0 6px\",\n },\n },\n },\n // Color variants for brand and iochmara\n ...chipColorVariants,\n ],\n },\n MuiBadge: {\n variants: [\n // Color variants for brand and iochmara\n ...badgeColorVariants,\n ],\n styleOverrides: {\n badge: {\n fontWeight: 500,\n fontSize: \"0.75rem\",\n },\n },\n },\n // Alert overrides\n MuiAlert: {\n styleOverrides: {\n root: {\n borderRadius: 6,\n },\n standardSuccess: {\n backgroundColor: \"var(--mui-palette-success-light)\",\n color: \"var(--mui-palette-success-dark)\",\n \"& .MuiAlert-icon\": {\n color: \"var(--mui-palette-success-dark)\",\n },\n },\n standardWarning: {\n backgroundColor: \"var(--mui-palette-warning-light)\",\n color: \"var(--mui-palette-warning-dark)\",\n \"& .MuiAlert-icon\": {\n color: \"var(--mui-palette-warning-dark)\",\n },\n },\n standardError: {\n backgroundColor: \"var(--mui-palette-error-light)\",\n color: \"var(--mui-palette-error-dark)\",\n \"& .MuiAlert-icon\": {\n color: \"var(--mui-palette-error-dark)\",\n },\n },\n standardInfo: {\n backgroundColor: \"var(--mui-palette-info-light)\",\n color: \"var(--mui-palette-info-dark)\",\n \"& .MuiAlert-icon\": {\n color: \"var(--mui-palette-info-dark)\",\n },\n },\n },\n },\n // Tabs overrides\n MuiTabs: {\n styleOverrides: {\n indicator: {\n height: 2,\n },\n },\n },\n MuiTab: {\n styleOverrides: {\n root: {\n textTransform: \"none\",\n fontWeight: 500,\n minHeight: 48,\n },\n },\n },\n // Avatar overrides\n MuiAvatar: {\n styleOverrides: {\n root: {\n fontWeight: 500,\n },\n },\n },\n MuiCircularProgress: {\n defaultProps: {\n color: \"primary\",\n },\n variants: [\n // Color variants for brand and iochmara\n ...progressColorVariants,\n ],\n },\n // Link overrides\n MuiLink: {\n defaultProps: {\n underline: \"hover\",\n },\n styleOverrides: {\n root: {\n fontWeight: 500,\n color: \"var(--mui-palette-secondary-main)\",\n textDecorationColor: \"var(--mui-palette-secondary-light)\",\n \"&:hover\": {\n color: \"var(--mui-palette-secondary-dark)\",\n },\n },\n },\n },\n // Popover overrides\n MuiPopover: {\n styleOverrides: {\n paper: {\n borderRadius: 8,\n boxShadow:\n \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)\",\n },\n },\n },\n // Divider overrides\n MuiDivider: {\n styleOverrides: {\n root: {\n borderColor: \"var(--mui-palette-divider)\",\n },\n },\n },\n // Breadcrumbs overrides\n MuiBreadcrumbs: {\n styleOverrides: {\n separator: {\n color: \"var(--mui-palette-text-secondary)\",\n },\n },\n },\n MuiCard: {\n styleOverrides: {\n root: {\n borderRadius: 8,\n boxShadow:\n \"0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1)\",\n },\n },\n },\n MuiPaper: {\n styleOverrides: {\n root: {\n backgroundImage: \"none\", // Remove default gradient\n },\n },\n },\n MuiTooltip: {\n styleOverrides: {\n tooltip: {\n fontSize: \"0.75rem\",\n },\n },\n },\n // IconButton overrides\n MuiIconButton: {\n styleOverrides: {\n root: {\n borderRadius: 6,\n },\n sizeSmall: {\n padding: 4,\n },\n sizeMedium: {\n padding: 8,\n },\n sizeLarge: {\n padding: 12,\n },\n },\n },\n // TextField overrides\n MuiTextField: {\n defaultProps: {\n variant: \"outlined\",\n size: \"small\",\n },\n styleOverrides: {\n root: {\n \"& .MuiOutlinedInput-root\": {\n borderRadius: 6,\n },\n },\n },\n },\n // OutlinedInput overrides\n MuiOutlinedInput: {\n styleOverrides: {\n root: {\n borderRadius: 6,\n \"&:hover .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"var(--mui-palette-secondary-light)\",\n },\n \"&.Mui-focused .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"var(--mui-palette-secondary-main)\",\n borderWidth: 2,\n },\n },\n notchedOutline: {\n borderColor: \"var(--mui-palette-divider)\",\n },\n },\n },\n // Checkbox overrides\n MuiCheckbox: {\n defaultProps: {\n color: \"primary\",\n },\n styleOverrides: {\n root: {\n borderRadius: 4,\n },\n },\n },\n // Switch overrides\n MuiSwitch: {\n defaultProps: {\n color: \"primary\",\n },\n },\n // Dialog overrides\n MuiDialog: {\n styleOverrides: {\n paper: {\n borderRadius: 8,\n },\n },\n },\n MuiDialogTitle: {\n styleOverrides: {\n root: {\n fontWeight: 600,\n fontSize: \"1.125rem\",\n },\n },\n },\n // Menu overrides\n MuiMenu: {\n styleOverrides: {\n paper: {\n borderRadius: 8,\n boxShadow:\n \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)\",\n },\n },\n },\n MuiMenuItem: {\n styleOverrides: {\n root: {\n fontSize: \"0.875rem\",\n padding: \"0.5rem 0.75rem\",\n \"&:hover\": {\n backgroundColor: \"var(--mui-palette-action-hover)\",\n },\n \"&.Mui-selected\": {\n backgroundColor: \"var(--mui-palette-action-selected)\",\n \"&:hover\": {\n backgroundColor: \"var(--mui-palette-action-selected)\",\n },\n },\n },\n },\n },\n // Autocomplete overrides\n MuiAutocomplete: {\n styleOverrides: {\n paper: {\n borderRadius: 6,\n boxShadow:\n \"0 4px 6px -1px rgba(0, 0, 0, 0.15), 0 2px 4px -2px rgba(0, 0, 0, 0.1)\",\n backgroundColor: colors.neutral[200],\n \".dark &\": {\n backgroundColor: colors.neutral[700],\n },\n },\n listbox: {\n padding: \"4px 0\",\n },\n option: {\n fontSize: \"0.875rem\",\n padding: \"0.5rem 0.75rem\",\n '&[aria-selected=\"true\"]': {\n backgroundColor: \"var(--mui-palette-action-selected)\",\n },\n \"&.Mui-focused\": {\n backgroundColor: \"var(--mui-palette-action-hover)\",\n },\n },\n },\n },\n },\n};\n\n/**\n * MUI Theme with CSS Variables mode enabled\n *\n * Uses `colorSchemeSelector: 'class'` to switch themes via `.dark` class,\n * which is toggled by the ThemeContext provider.\n *\n * Usage:\n * ```tsx\n * import { ThemeProvider } from '@mui/material/styles';\n * import { theme } from '@datarecce/ui/theme';\n *\n * <ThemeProvider theme={theme}>\n * <App />\n * </ThemeProvider>\n * ```\n */\nexport const theme = createTheme({\n cssVariables: {\n colorSchemeSelector: \"class\", // Use .dark class for dark mode\n },\n colorSchemes: {\n light: {\n palette: {\n mode: \"light\",\n primary: {\n main: colors.iochmara[500],\n light: colors.iochmara[300],\n dark: colors.iochmara[600],\n contrastText: \"#ffffff\",\n },\n secondary: {\n main: colors.cyan[500],\n light: colors.cyan[400],\n dark: colors.cyan[600],\n contrastText: \"#ffffff\",\n },\n brand: {\n light: colors.brand[400],\n main: colors.brand[500],\n dark: colors.brand[600],\n contrastText: \"#ffffff\",\n },\n iochmara: {\n light: colors.iochmara[400],\n main: colors.iochmara[500],\n dark: colors.iochmara[600],\n contrastText: \"#ffffff\",\n },\n cyan: {\n main: colors.cyan[500],\n light: colors.cyan[300],\n dark: colors.cyan[600],\n contrastText: \"#ffffff\",\n },\n amber: {\n main: colors.amber[500],\n light: colors.amber[300],\n dark: colors.amber[600],\n contrastText: \"#ffffff\",\n },\n green: {\n main: colors.green[500],\n light: colors.green[300],\n dark: colors.green[600],\n contrastText: \"#ffffff\",\n },\n red: {\n main: colors.red[500],\n light: colors.red[300],\n dark: colors.red[600],\n contrastText: \"#ffffff\",\n },\n rose: {\n main: colors.rose[500],\n light: colors.rose[300],\n dark: colors.rose[600],\n contrastText: \"#ffffff\",\n },\n fuchsia: {\n main: colors.fuchsia[500],\n light: colors.fuchsia[300],\n dark: colors.fuchsia[600],\n contrastText: \"#ffffff\",\n },\n neutral: {\n main: colors.neutral[600],\n light: colors.neutral[300],\n dark: colors.neutral[700],\n contrastText: \"#ffffff\",\n },\n grey: colors.neutral, // Color scale (50, 100, etc.) - MUI's built-in grey\n success: colors.success,\n warning: colors.warning,\n error: colors.error,\n info: colors.info,\n background: {\n default: \"#ffffff\",\n paper: colors.neutral[50],\n },\n text: {\n primary: colors.neutral[900],\n secondary: colors.neutral[600],\n disabled: colors.neutral[400],\n },\n divider: colors.neutral[200],\n },\n },\n dark: {\n palette: {\n mode: \"dark\",\n primary: {\n main: colors.iochmara[500],\n light: colors.iochmara[300],\n dark: colors.iochmara[600],\n contrastText: \"#ffffff\",\n },\n secondary: {\n main: colors.cyan[500],\n light: colors.cyan[400],\n dark: colors.cyan[600],\n contrastText: \"#ffffff\",\n },\n brand: {\n light: colors.brand[300],\n main: colors.brand[400],\n dark: colors.brand[600],\n contrastText: \"#ffffff\",\n },\n iochmara: {\n light: colors.iochmara[300],\n main: colors.iochmara[400],\n dark: colors.iochmara[600],\n contrastText: \"#ffffff\",\n },\n cyan: {\n main: colors.cyan[400],\n light: colors.cyan[300],\n dark: colors.cyan[600],\n contrastText: \"#ffffff\",\n },\n amber: {\n main: colors.amber[400],\n light: colors.amber[300],\n dark: colors.amber[600],\n contrastText: \"#000000\",\n },\n green: {\n main: colors.green[400],\n light: colors.green[300],\n dark: colors.green[600],\n contrastText: \"#ffffff\",\n },\n red: {\n main: colors.red[400],\n light: colors.red[300],\n dark: colors.red[600],\n contrastText: \"#ffffff\",\n },\n rose: {\n main: colors.rose[400],\n light: colors.rose[300],\n dark: colors.rose[600],\n contrastText: \"#ffffff\",\n },\n fuchsia: {\n main: colors.fuchsia[400],\n light: colors.fuchsia[300],\n dark: colors.fuchsia[600],\n contrastText: \"#ffffff\",\n },\n neutral: {\n main: colors.neutral[400],\n light: colors.neutral[300],\n dark: colors.neutral[200],\n contrastText: colors.neutral[900],\n },\n grey: colors.neutral, // Color scale (50, 100, etc.) - MUI's built-in grey\n success: {\n light: colors.success.light,\n main: colors.success.main,\n dark: colors.success.dark,\n contrastText: \"#000000\",\n },\n warning: {\n light: colors.warning.light,\n main: colors.warning.main,\n dark: colors.warning.dark,\n contrastText: \"#000000\",\n },\n error: {\n light: colors.error.light,\n main: colors.error.main,\n dark: colors.error.dark,\n contrastText: \"#ffffff\",\n },\n info: {\n light: colors.info.light,\n main: colors.info.main,\n dark: colors.info.dark,\n contrastText: \"#ffffff\",\n },\n background: {\n default: colors.neutral[900],\n paper: colors.neutral[800],\n },\n text: {\n primary: colors.neutral[50],\n secondary: colors.neutral[400],\n disabled: colors.neutral[600],\n },\n divider: colors.neutral[700],\n },\n },\n },\n ...sharedThemeOptions,\n});\n\n/**\n * Theme type export for consumers who need to type their theme\n */\nexport type RecceTheme = typeof theme;\n"],"mappings":"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CD,cAAe,CACb,gBAAiB,iCACjB,MAAO,gCACP,mBAAoB,CAClB,MAAO,gCACR,CACF,CACD,aAAc,CACZ,gBAAiB,gCACjB,MAAO,+BACP,mBAAoB,CAClB,MAAO,+BACR,CACF,CACF,CACF,CAED,QAAS,CACP,eAAgB,CACd,UAAW,CACT,OAAQ,EACT,CACF,CACF,CACD,OAAQ,CACN,eAAgB,CACd,KAAM,CACJ,cAAe,OACf,WAAY,IACZ,UAAW,GACZ,CACF,CACF,CAED,UAAW,CACT,eAAgB,CACd,KAAM,CACJ,WAAY,IACb,CACF,CACF,CACD,oBAAqB,CACnB,aAAc,CACZ,MAAO,UACR,CACD,SAAU,CAER,GAAG,EACJ,CACF,CAED,QAAS,CACP,aAAc,CACZ,UAAW,QACZ,CACD,eAAgB,CACd,KAAM,CACJ,WAAY,IACZ,MAAO,oCACP,oBAAqB,qCACrB,UAAW,CACT,MAAO,oCACR,CACF,CACF,CACF,CAED,WAAY,CACV,eAAgB,CACd,MAAO,CACL,aAAc,EACd,UACE,uEACH,CACF,CACF,CAED,WAAY,CACV,eAAgB,CACd,KAAM,CACJ,YAAa,6BACd,CACF,CACF,CAED,eAAgB,CACd,eAAgB,CACd,UAAW,CACT,MAAO,oCACR,CACF,CACF,CACD,QAAS,CACP,eAAgB,CACd,KAAM,CACJ,aAAc,EACd,UACE,oEACH,CACF,CACF,CACD,SAAU,CACR,eAAgB,CACd,KAAM,CACJ,gBAAiB,OAClB,CACF,CACF,CACD,WAAY,CACV,eAAgB,CACd,QAAS,CACP,SAAU,UACX,CACF,CACF,CAED,cAAe,CACb,eAAgB,CACd,KAAM,CACJ,aAAc,EACf,CACD,UAAW,CACT,QAAS,EACV,CACD,WAAY,CACV,QAAS,EACV,CACD,UAAW,CACT,QAAS,GACV,CACF,CACF,CAED,aAAc,CACZ,aAAc,CACZ,QAAS,WACT,KAAM,QACP,CACD,eAAgB,CACd,KAAM,CACJ,2BAA4B,CAC1B,aAAc,EACf,CACF,CACF,CACF,CAED,iBAAkB,CAChB,eAAgB,CACd,KAAM,CACJ,aAAc,EACd,2CAA4C,CAC1C,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"}