@circuitwall/jarela 2.4.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +1 -1
  3. package/.next/standalone/.next/build-manifest.json +2 -2
  4. package/.next/standalone/.next/prerender-manifest.json +4 -4
  5. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  6. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  7. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/_not-found.html +14 -2
  13. package/.next/standalone/.next/server/app/_not-found.rsc +16 -4
  14. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +16 -4
  15. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +16 -4
  16. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  17. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  18. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/chats/route.js +1 -1
  19. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/lookup/route.js +1 -1
  20. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/pair/route.js +1 -1
  21. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/route.js +1 -1
  22. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/status/route.js +1 -1
  23. package/.next/standalone/.next/server/app/api/v1/dashboard/pricing-task/route.js +1 -1
  24. package/.next/standalone/.next/server/app/api/v1/documents/sources/[id]/route.js +1 -1
  25. package/.next/standalone/.next/server/app/api/v1/documents/sources/route.js +1 -1
  26. package/.next/standalone/.next/server/app/api/v1/events/route.js +1 -1
  27. package/.next/standalone/.next/server/app/api/v1/extension/agents/route.js +1 -1
  28. package/.next/standalone/.next/server/app/api/v1/extension/fill/route.js +1 -1
  29. package/.next/standalone/.next/server/app/api/v1/extension/refine/route.js +1 -1
  30. package/.next/standalone/.next/server/app/api/v1/extension/turn/route.js +1 -1
  31. package/.next/standalone/.next/server/app/api/v1/extensions/route.js +1 -1
  32. package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/config/route.js +1 -1
  33. package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/route.js +1 -1
  34. package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/secrets/route.js +1 -1
  35. package/.next/standalone/.next/server/app/api/v1/packages/defaults/[id]/route.js +28 -4
  36. package/.next/standalone/.next/server/app/api/v1/packages/reload/route.js +28 -4
  37. package/.next/standalone/.next/server/app/api/v1/packages/route.js +28 -4
  38. package/.next/standalone/.next/server/app/api/v1/page-capture/route.js +1 -1
  39. package/.next/standalone/.next/server/app/api/v1/providers/[provider]/models/route.js +578 -58
  40. package/.next/standalone/.next/server/app/api/v1/scheduled-tasks/[id]/run/route.js +1 -1
  41. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/route.js +118 -26
  42. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/run/route.js +1 -1
  43. package/.next/standalone/.next/server/app/api/v1/tools/route.js +1 -1
  44. package/.next/standalone/.next/server/app/api/v1/update/apply/route.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/api/v1/watchers/[id]/run/route.js +1 -1
  46. package/.next/standalone/.next/server/app/api/v1/watchers/route.js +1 -1
  47. package/.next/standalone/.next/server/app/page.js +31202 -30960
  48. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app-paths-manifest.json +1 -1
  51. package/.next/standalone/.next/server/chunks/2471.js +17 -17
  52. package/.next/standalone/.next/server/chunks/2653.js +80 -1
  53. package/.next/standalone/.next/server/chunks/3399.js +10695 -10695
  54. package/.next/standalone/.next/server/chunks/3566.js +1 -1
  55. package/.next/standalone/.next/server/chunks/4189.js +1 -1
  56. package/.next/standalone/.next/server/chunks/4508.js +2 -2
  57. package/.next/standalone/.next/server/chunks/4596.js +28 -4
  58. package/.next/standalone/.next/server/chunks/46.js +18 -3
  59. package/.next/standalone/.next/server/chunks/466.js +53 -7
  60. package/.next/standalone/.next/server/chunks/4955.js +30 -3
  61. package/.next/standalone/.next/server/chunks/5585.js +28 -4
  62. package/.next/standalone/.next/server/chunks/6649.js +1 -1
  63. package/.next/standalone/.next/server/chunks/9164.js +65 -14
  64. package/.next/standalone/.next/server/chunks/9590.js +18 -3
  65. package/.next/standalone/.next/server/middleware-build-manifest.js +2 -2
  66. package/.next/standalone/.next/server/middleware.js +18 -3
  67. package/.next/standalone/.next/server/pages/404.html +14 -2
  68. package/.next/standalone/.next/server/pages/500.html +1 -1
  69. package/.next/standalone/.next/server/preview-props.json +3 -3
  70. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  71. package/.next/standalone/.next/static/chunks/{1395-e4a99912b8f83044.js → 1395-bfe1f3ef760c0f50.js} +54 -8
  72. package/.next/standalone/.next/static/chunks/app/{layout-9bc0b10127cb7d42.js → layout-7b24ad13faa3944b.js} +69 -2
  73. package/.next/standalone/.next/static/chunks/app/{page-04748847c6ff866f.js → page-2ef8d75d40eb4311.js} +10661 -10352
  74. package/.next/standalone/.next/static/css/c160ea862133acd2.css +5 -0
  75. package/.next/standalone/docs/adoption/changesets.json +2756 -0
  76. package/.next/standalone/package.json +1 -1
  77. package/CHANGELOG.md +33 -0
  78. package/api/client.models.test.ts +10 -0
  79. package/api/client.startup.test.ts +129 -0
  80. package/api/client.ts +51 -9
  81. package/api/thread-metadata.test.ts +72 -0
  82. package/api/types.ts +6 -3
  83. package/app/api/v1/providers/[provider]/models/route.test.ts +216 -6
  84. package/app/api/v1/providers/[provider]/models/route.ts +259 -40
  85. package/app/api/v1/threads/[thread_id]/route.ts +26 -23
  86. package/app/globals.css +119 -29
  87. package/app/layout.tsx +12 -0
  88. package/components/agents/AgentsPanel.tsx +5 -13
  89. package/components/chat/ChatView.tsx +9 -18
  90. package/components/chat/InputBar.tsx +1 -1
  91. package/components/chat/MessageBubble.tsx +1 -1
  92. package/components/chat/MessageList.test.tsx +45 -4
  93. package/components/chat/MessageList.tsx +123 -89
  94. package/components/chat/ToolList.tsx +88 -84
  95. package/components/chat/useThreadActivity.test.tsx +2 -2
  96. package/components/chat/useThreadActivity.ts +2 -2
  97. package/components/chat/useThreadData.ts +1 -30
  98. package/components/chat/useThreadMetadataPolling.test.tsx +128 -0
  99. package/components/chat/useThreadMetadataPolling.ts +50 -0
  100. package/components/chat/useUserProfileAndAgent.test.tsx +31 -0
  101. package/components/chat/useUserProfileAndAgent.ts +13 -2
  102. package/components/dashboard/DashboardPanel.tsx +1 -1
  103. package/components/dashboard/Series.tsx +34 -21
  104. package/components/dashboard/SummaryCards.tsx +1 -1
  105. package/components/layout/AppShell.tsx +22 -7
  106. package/components/layout/MenuPanel.tsx +14 -24
  107. package/components/profile/ProfilePanel.tsx +2 -2
  108. package/components/settings/AppearancePanel.tsx +70 -3
  109. package/components/settings/SettingsPanel.tsx +2 -2
  110. package/components/tools/ToolsPanel.tsx +2 -7
  111. package/components/ui/AppearancePreferences.test.tsx +68 -0
  112. package/components/ui/BootScreen.test.tsx +44 -0
  113. package/components/ui/BootScreen.tsx +24 -11
  114. package/components/ui/NotificationStatus.test.tsx +2 -2
  115. package/components/ui/NotificationStatus.tsx +5 -5
  116. package/components/ui/SubTabBar.tsx +2 -3
  117. package/contexts/ThemeContext.tsx +84 -1
  118. package/hooks/useAgentSession.test.ts +12 -1
  119. package/hooks/useAgentSession.ts +6 -4
  120. package/hooks/useUrlSync.test.ts +13 -0
  121. package/hooks/useUrlSync.ts +0 -4
  122. package/lib/db/migrations.test.ts +61 -0
  123. package/lib/db/migrations.ts +13 -0
  124. package/lib/embeddings/performance.test.ts +114 -0
  125. package/lib/stores/dashboard-metrics-cache.test.ts +99 -0
  126. package/lib/stores/dashboard-metrics.ts +30 -4
  127. package/lib/stores/message-embedding-jobs.test.ts +27 -0
  128. package/lib/stores/message-embedding-jobs.ts +5 -3
  129. package/lib/stores/message-usage.test.ts +21 -1
  130. package/lib/stores/pricing-cache.test.ts +31 -0
  131. package/lib/stores/pricing.ts +3 -0
  132. package/lib/tools/packages/default-packages.test.ts +21 -0
  133. package/lib/tools/packages/optional-package.test.ts +72 -0
  134. package/lib/tools/packages/optional-package.ts +33 -4
  135. package/lib/ui/navigate.test.ts +13 -0
  136. package/lib/ui/navigate.ts +10 -2
  137. package/package.json +1 -1
  138. package/.next/standalone/.next/static/css/2669e8744cc8c212.css +0 -5
  139. /package/.next/standalone/.next/static/{hwujW4hR1b-r3k5WdMxZO → 544OFJV-q0RC6Gjgje4LT}/_buildManifest.js +0 -0
  140. /package/.next/standalone/.next/static/{hwujW4hR1b-r3k5WdMxZO → 544OFJV-q0RC6Gjgje4LT}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"11362":{"*":{"id":"60095","name":"*","chunks":[],"async":false}},"12283":{"*":{"id":"26751","name":"*","chunks":[],"async":false}},"20722":{"*":{"id":"86486","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"30737":{"*":{"id":"41005","name":"*","chunks":[],"async":false}},"43639":{"*":{"id":"35419","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}},"94204":{"*":{"id":"65572","name":"*","chunks":[],"async":false}},"94569":{"*":{"id":"36856","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/app/globals.css":{"id":66872,"name":"*","chunks":["7177","static/chunks/app/layout-9bc0b10127cb7d42.js"],"async":false},"/home/runner/work/jarela/jarela/components/ui/ConfirmHost.tsx":{"id":94204,"name":"*","chunks":["7177","static/chunks/app/layout-9bc0b10127cb7d42.js"],"async":false},"/home/runner/work/jarela/jarela/components/ui/ServiceWorkerRegistration.tsx":{"id":20722,"name":"*","chunks":["7177","static/chunks/app/layout-9bc0b10127cb7d42.js"],"async":false},"/home/runner/work/jarela/jarela/contexts/AppContext.tsx":{"id":43639,"name":"*","chunks":["7177","static/chunks/app/layout-9bc0b10127cb7d42.js"],"async":false},"/home/runner/work/jarela/jarela/contexts/ThemeContext.tsx":{"id":30737,"name":"*","chunks":["7177","static/chunks/app/layout-9bc0b10127cb7d42.js"],"async":false},"/home/runner/work/jarela/jarela/components/layout/AppShell.tsx":{"id":11362,"name":"*","chunks":["8463","static/chunks/ede5dfc2-43619a76646f3f29.js","8095","static/chunks/8095-b2d16cff7999ab45.js","7045","static/chunks/7045-8bc2f14e430ca661.js","1395","static/chunks/1395-e4a99912b8f83044.js","8974","static/chunks/app/page-04748847c6ff866f.js"],"async":false},"/home/runner/work/jarela/jarela/components/setup/UnlockScreen.tsx":{"id":12283,"name":"*","chunks":["8463","static/chunks/ede5dfc2-43619a76646f3f29.js","8095","static/chunks/8095-b2d16cff7999ab45.js","7045","static/chunks/7045-8bc2f14e430ca661.js","1395","static/chunks/1395-e4a99912b8f83044.js","8974","static/chunks/app/page-04748847c6ff866f.js"],"async":false},"/home/runner/work/jarela/jarela/components/setup/OnboardingWizard.tsx":{"id":94569,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/home/runner/work/jarela/jarela/":[],"/home/runner/work/jarela/jarela/app/layout":[{"inlined":false,"path":"static/css/2669e8744cc8c212.css"}],"/home/runner/work/jarela/jarela/app/page":[{"inlined":false,"path":"static/css/61d4279c2300e146.css"}]},"rscModuleMapping":{"11362":{"*":{"id":"59255","name":"*","chunks":[],"async":false}},"12283":{"*":{"id":"67181","name":"*","chunks":[],"async":false}},"20722":{"*":{"id":"13236","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"95547","name":"*","chunks":[],"async":false}},"30737":{"*":{"id":"28383","name":"*","chunks":[],"async":false}},"43639":{"*":{"id":"25933","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"66872":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}},"94204":{"*":{"id":"43178","name":"*","chunks":[],"async":false}},"94569":{"*":{"id":"59275","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"12283":{"*":{"id":"26751","name":"*","chunks":[],"async":false}},"20722":{"*":{"id":"86486","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"30737":{"*":{"id":"41005","name":"*","chunks":[],"async":false}},"43639":{"*":{"id":"35419","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"67264":{"*":{"id":"6647","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}},"94204":{"*":{"id":"65572","name":"*","chunks":[],"async":false}},"94569":{"*":{"id":"36856","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/app/globals.css":{"id":66872,"name":"*","chunks":["7177","static/chunks/app/layout-7b24ad13faa3944b.js"],"async":false},"/home/runner/work/jarela/jarela/components/ui/ConfirmHost.tsx":{"id":94204,"name":"*","chunks":["7177","static/chunks/app/layout-7b24ad13faa3944b.js"],"async":false},"/home/runner/work/jarela/jarela/components/ui/ServiceWorkerRegistration.tsx":{"id":20722,"name":"*","chunks":["7177","static/chunks/app/layout-7b24ad13faa3944b.js"],"async":false},"/home/runner/work/jarela/jarela/contexts/AppContext.tsx":{"id":43639,"name":"*","chunks":["7177","static/chunks/app/layout-7b24ad13faa3944b.js"],"async":false},"/home/runner/work/jarela/jarela/contexts/ThemeContext.tsx":{"id":30737,"name":"*","chunks":["7177","static/chunks/app/layout-7b24ad13faa3944b.js"],"async":false},"/home/runner/work/jarela/jarela/components/layout/AppShell.tsx":{"id":67264,"name":"*","chunks":["8463","static/chunks/ede5dfc2-43619a76646f3f29.js","8095","static/chunks/8095-b2d16cff7999ab45.js","7045","static/chunks/7045-8bc2f14e430ca661.js","1395","static/chunks/1395-bfe1f3ef760c0f50.js","8974","static/chunks/app/page-2ef8d75d40eb4311.js"],"async":false},"/home/runner/work/jarela/jarela/components/setup/UnlockScreen.tsx":{"id":12283,"name":"*","chunks":["8463","static/chunks/ede5dfc2-43619a76646f3f29.js","8095","static/chunks/8095-b2d16cff7999ab45.js","7045","static/chunks/7045-8bc2f14e430ca661.js","1395","static/chunks/1395-bfe1f3ef760c0f50.js","8974","static/chunks/app/page-2ef8d75d40eb4311.js"],"async":false},"/home/runner/work/jarela/jarela/components/setup/OnboardingWizard.tsx":{"id":94569,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/home/runner/work/jarela/jarela/":[],"/home/runner/work/jarela/jarela/app/layout":[{"inlined":false,"path":"static/css/c160ea862133acd2.css"}],"/home/runner/work/jarela/jarela/app/page":[{"inlined":false,"path":"static/css/61d4279c2300e146.css"}]},"rscModuleMapping":{"12283":{"*":{"id":"67181","name":"*","chunks":[],"async":false}},"20722":{"*":{"id":"13236","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"95547","name":"*","chunks":[],"async":false}},"30737":{"*":{"id":"28383","name":"*","chunks":[],"async":false}},"43639":{"*":{"id":"25933","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"66872":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"67264":{"*":{"id":"59255","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}},"94204":{"*":{"id":"43178","name":"*","chunks":[],"async":false}},"94569":{"*":{"id":"59275","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/setup/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"11362":{"*":{"id":"60095","name":"*","chunks":[],"async":false}},"12283":{"*":{"id":"26751","name":"*","chunks":[],"async":false}},"20722":{"*":{"id":"86486","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"30737":{"*":{"id":"41005","name":"*","chunks":[],"async":false}},"43639":{"*":{"id":"35419","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}},"94204":{"*":{"id":"65572","name":"*","chunks":[],"async":false}},"94569":{"*":{"id":"36856","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/app/globals.css":{"id":66872,"name":"*","chunks":["7177","static/chunks/app/layout-9bc0b10127cb7d42.js"],"async":false},"/home/runner/work/jarela/jarela/components/ui/ConfirmHost.tsx":{"id":94204,"name":"*","chunks":["7177","static/chunks/app/layout-9bc0b10127cb7d42.js"],"async":false},"/home/runner/work/jarela/jarela/components/ui/ServiceWorkerRegistration.tsx":{"id":20722,"name":"*","chunks":["7177","static/chunks/app/layout-9bc0b10127cb7d42.js"],"async":false},"/home/runner/work/jarela/jarela/contexts/AppContext.tsx":{"id":43639,"name":"*","chunks":["7177","static/chunks/app/layout-9bc0b10127cb7d42.js"],"async":false},"/home/runner/work/jarela/jarela/contexts/ThemeContext.tsx":{"id":30737,"name":"*","chunks":["7177","static/chunks/app/layout-9bc0b10127cb7d42.js"],"async":false},"/home/runner/work/jarela/jarela/components/layout/AppShell.tsx":{"id":11362,"name":"*","chunks":["8463","static/chunks/ede5dfc2-43619a76646f3f29.js","8095","static/chunks/8095-b2d16cff7999ab45.js","7045","static/chunks/7045-8bc2f14e430ca661.js","1395","static/chunks/1395-e4a99912b8f83044.js","8974","static/chunks/app/page-04748847c6ff866f.js"],"async":false},"/home/runner/work/jarela/jarela/components/setup/UnlockScreen.tsx":{"id":12283,"name":"*","chunks":["8463","static/chunks/ede5dfc2-43619a76646f3f29.js","8095","static/chunks/8095-b2d16cff7999ab45.js","1395","static/chunks/1395-e4a99912b8f83044.js","620","static/chunks/app/setup/page-f047836a0a676d38.js"],"async":false},"/home/runner/work/jarela/jarela/components/setup/OnboardingWizard.tsx":{"id":94569,"name":"*","chunks":["8463","static/chunks/ede5dfc2-43619a76646f3f29.js","8095","static/chunks/8095-b2d16cff7999ab45.js","1395","static/chunks/1395-e4a99912b8f83044.js","620","static/chunks/app/setup/page-f047836a0a676d38.js"],"async":false}},"entryCSSFiles":{"/home/runner/work/jarela/jarela/":[],"/home/runner/work/jarela/jarela/app/layout":[{"inlined":false,"path":"static/css/2669e8744cc8c212.css"}],"/home/runner/work/jarela/jarela/app/page":[{"inlined":false,"path":"static/css/61d4279c2300e146.css"}],"/home/runner/work/jarela/jarela/app/setup/page":[]},"rscModuleMapping":{"11362":{"*":{"id":"59255","name":"*","chunks":[],"async":false}},"12283":{"*":{"id":"67181","name":"*","chunks":[],"async":false}},"20722":{"*":{"id":"13236","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"95547","name":"*","chunks":[],"async":false}},"30737":{"*":{"id":"28383","name":"*","chunks":[],"async":false}},"43639":{"*":{"id":"25933","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"66872":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}},"94204":{"*":{"id":"43178","name":"*","chunks":[],"async":false}},"94569":{"*":{"id":"59275","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/setup/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"12283":{"*":{"id":"26751","name":"*","chunks":[],"async":false}},"20722":{"*":{"id":"86486","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"30737":{"*":{"id":"41005","name":"*","chunks":[],"async":false}},"43639":{"*":{"id":"35419","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"67264":{"*":{"id":"6647","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}},"94204":{"*":{"id":"65572","name":"*","chunks":[],"async":false}},"94569":{"*":{"id":"36856","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/app/globals.css":{"id":66872,"name":"*","chunks":["7177","static/chunks/app/layout-7b24ad13faa3944b.js"],"async":false},"/home/runner/work/jarela/jarela/components/ui/ConfirmHost.tsx":{"id":94204,"name":"*","chunks":["7177","static/chunks/app/layout-7b24ad13faa3944b.js"],"async":false},"/home/runner/work/jarela/jarela/components/ui/ServiceWorkerRegistration.tsx":{"id":20722,"name":"*","chunks":["7177","static/chunks/app/layout-7b24ad13faa3944b.js"],"async":false},"/home/runner/work/jarela/jarela/contexts/AppContext.tsx":{"id":43639,"name":"*","chunks":["7177","static/chunks/app/layout-7b24ad13faa3944b.js"],"async":false},"/home/runner/work/jarela/jarela/contexts/ThemeContext.tsx":{"id":30737,"name":"*","chunks":["7177","static/chunks/app/layout-7b24ad13faa3944b.js"],"async":false},"/home/runner/work/jarela/jarela/components/layout/AppShell.tsx":{"id":67264,"name":"*","chunks":["8463","static/chunks/ede5dfc2-43619a76646f3f29.js","8095","static/chunks/8095-b2d16cff7999ab45.js","7045","static/chunks/7045-8bc2f14e430ca661.js","1395","static/chunks/1395-bfe1f3ef760c0f50.js","8974","static/chunks/app/page-2ef8d75d40eb4311.js"],"async":false},"/home/runner/work/jarela/jarela/components/setup/UnlockScreen.tsx":{"id":12283,"name":"*","chunks":["8463","static/chunks/ede5dfc2-43619a76646f3f29.js","8095","static/chunks/8095-b2d16cff7999ab45.js","1395","static/chunks/1395-bfe1f3ef760c0f50.js","620","static/chunks/app/setup/page-f047836a0a676d38.js"],"async":false},"/home/runner/work/jarela/jarela/components/setup/OnboardingWizard.tsx":{"id":94569,"name":"*","chunks":["8463","static/chunks/ede5dfc2-43619a76646f3f29.js","8095","static/chunks/8095-b2d16cff7999ab45.js","1395","static/chunks/1395-bfe1f3ef760c0f50.js","620","static/chunks/app/setup/page-f047836a0a676d38.js"],"async":false}},"entryCSSFiles":{"/home/runner/work/jarela/jarela/":[],"/home/runner/work/jarela/jarela/app/layout":[{"inlined":false,"path":"static/css/c160ea862133acd2.css"}],"/home/runner/work/jarela/jarela/app/page":[{"inlined":false,"path":"static/css/61d4279c2300e146.css"}],"/home/runner/work/jarela/jarela/app/setup/page":[]},"rscModuleMapping":{"12283":{"*":{"id":"67181","name":"*","chunks":[],"async":false}},"20722":{"*":{"id":"13236","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"95547","name":"*","chunks":[],"async":false}},"30737":{"*":{"id":"28383","name":"*","chunks":[],"async":false}},"43639":{"*":{"id":"25933","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"66872":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"67264":{"*":{"id":"59255","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}},"94204":{"*":{"id":"43178","name":"*","chunks":[],"async":false}},"94569":{"*":{"id":"59275","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
@@ -144,8 +144,8 @@
144
144
  "/api/v1/security/verify-pin/route": "app/api/v1/security/verify-pin/route.js",
145
145
  "/api/v1/update/route": "app/api/v1/update/route.js",
146
146
  "/api/v1/update/apply/route": "app/api/v1/update/apply/route.js",
147
- "/api/v1/watchers/route": "app/api/v1/watchers/route.js",
148
147
  "/api/v1/threads/[thread_id]/run/route": "app/api/v1/threads/[thread_id]/run/route.js",
148
+ "/api/v1/watchers/route": "app/api/v1/watchers/route.js",
149
149
  "/page": "app/page.js",
150
150
  "/setup/page": "app/setup/page.js"
151
151
  }
@@ -2835,22 +2835,6 @@ var SelectorType;
2835
2835
  })(SelectorType || (SelectorType = {}));
2836
2836
 
2837
2837
 
2838
- /***/ }),
2839
-
2840
- /***/ 49585:
2841
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2842
-
2843
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2844
- /* harmony export */ f: () => (/* binding */ SerdeContext)
2845
- /* harmony export */ });
2846
- class SerdeContext {
2847
- serdeContext;
2848
- setSerdeContext(serdeContext) {
2849
- this.serdeContext = serdeContext;
2850
- }
2851
- }
2852
-
2853
-
2854
2838
  /***/ }),
2855
2839
 
2856
2840
  /***/ 52053:
@@ -4492,6 +4476,22 @@ function determineTimestampFormat(ns, settings) {
4492
4476
  }
4493
4477
 
4494
4478
 
4479
+ /***/ }),
4480
+
4481
+ /***/ 71966:
4482
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4483
+
4484
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4485
+ /* harmony export */ f: () => (/* binding */ SerdeContext)
4486
+ /* harmony export */ });
4487
+ class SerdeContext {
4488
+ serdeContext;
4489
+ setSerdeContext(serdeContext) {
4490
+ this.serdeContext = serdeContext;
4491
+ }
4492
+ }
4493
+
4494
+
4495
4495
  /***/ }),
4496
4496
 
4497
4497
  /***/ 72315:
@@ -5539,7 +5539,7 @@ const parseUrl = (url) => {
5539
5539
  /* harmony import */ var _smithy_core_transport__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(51810);
5540
5540
  /* harmony import */ var _smithy_core_transport__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(48296);
5541
5541
  /* harmony import */ var _smithy_core_transport__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(97776);
5542
- /* harmony import */ var _SerdeContext__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(49585);
5542
+ /* harmony import */ var _SerdeContext__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71966);
5543
5543
 
5544
5544
 
5545
5545
 
@@ -258,6 +258,18 @@ const themeBootstrap = `(() => {
258
258
  var t = localStorage.getItem("jarela-theme");
259
259
  if (t !== "light" && t !== "dark" && t !== "system") t = "system";
260
260
  document.documentElement.setAttribute("data-theme", t);
261
+ var accent = localStorage.getItem("jarela-accent-color");
262
+ if (["blue", "teal", "violet", "rose"].includes(accent)) {
263
+ document.documentElement.setAttribute("data-accent-color", accent);
264
+ } else {
265
+ document.documentElement.removeAttribute("data-accent-color");
266
+ }
267
+ var surface = localStorage.getItem("jarela-surface-style");
268
+ if (surface === "calm" || surface === "ambient" || surface === "liquid") {
269
+ document.documentElement.setAttribute("data-surface-style", surface);
270
+ } else {
271
+ document.documentElement.removeAttribute("data-surface-style");
272
+ }
261
273
  // Collapse any media-scoped theme-color metas Next emits to a single tag
262
274
  // so the PWA window chrome matches the user's explicit choice (not just
263
275
  // prefers-color-scheme). ThemeContext keeps this in sync on change.
@@ -575,9 +587,17 @@ Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_re
575
587
  /* __next_internal_client_entry_do_not_use__ ThemeProvider,useTheme auto */
576
588
 
577
589
  const STORAGE_KEY = "jarela-theme";
590
+ const ACCENT_STORAGE_KEY = "jarela-accent-color";
591
+ const SURFACE_STORAGE_KEY = "jarela-surface-style";
578
592
  function isTheme(v) {
579
593
  return v === "light" || v === "dark" || v === "system";
580
594
  }
595
+ function isAccentColor(v) {
596
+ return v === "default" || v === "blue" || v === "teal" || v === "violet" || v === "rose";
597
+ }
598
+ function isSurfaceStyle(v) {
599
+ return v === "ambient" || v === "calm" || v === "liquid";
600
+ }
581
601
  function readStored() {
582
602
  if (true) return "system";
583
603
  try {
@@ -587,6 +607,24 @@ function readStored() {
587
607
  return "system";
588
608
  }
589
609
  }
610
+ function readStoredAccent() {
611
+ if (true) return "blue";
612
+ try {
613
+ const value = window.localStorage.getItem(ACCENT_STORAGE_KEY);
614
+ return isAccentColor(value) ? value : "default";
615
+ } catch {
616
+ return "default";
617
+ }
618
+ }
619
+ function readStoredSurface() {
620
+ if (true) return "ambient";
621
+ try {
622
+ const value = window.localStorage.getItem(SURFACE_STORAGE_KEY);
623
+ return isSurfaceStyle(value) ? value : "ambient";
624
+ } catch {
625
+ return "ambient";
626
+ }
627
+ }
590
628
  const LIGHT_CHROME = "#ffffff";
591
629
  const DARK_CHROME = "#09090b";
592
630
  function resolveChrome(theme) {
@@ -608,15 +646,35 @@ function apply(theme) {
608
646
  document.documentElement.setAttribute("data-theme", theme);
609
647
  syncChrome(theme);
610
648
  }
649
+ function applyAccentColor(accentColor) {
650
+ if (typeof document === "undefined") return;
651
+ if (accentColor === "default") {
652
+ document.documentElement.removeAttribute("data-accent-color");
653
+ return;
654
+ }
655
+ document.documentElement.setAttribute("data-accent-color", accentColor);
656
+ }
657
+ function applySurfaceStyle(surfaceStyle) {
658
+ if (typeof document === "undefined") return;
659
+ document.documentElement.setAttribute("data-surface-style", surfaceStyle);
660
+ }
611
661
  const ThemeContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)(null);
612
662
  function ThemeProvider({ children }) {
613
663
  // Initial state stays "system" on the server to match the pre-paint script,
614
664
  // which writes data-theme before React hydrates. The effect below syncs the
615
665
  // React state to whatever the script (or localStorage) decided.
616
666
  const [theme, setThemeState] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)("system");
667
+ const [accentColor, setAccentColorState] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)("blue");
668
+ const [surfaceStyle, setSurfaceStyleState] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)("ambient");
617
669
  process.env.__NEXT_PRIVATE_MINIMIZE_MACRO_FALSE && (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{
618
670
  const stored = readStored();
671
+ const storedAccent = readStoredAccent();
672
+ const storedSurface = readStoredSurface();
619
673
  setThemeState(stored);
674
+ setAccentColorState(storedAccent);
675
+ setSurfaceStyleState(storedSurface);
676
+ applyAccentColor(storedAccent);
677
+ applySurfaceStyle(storedSurface);
620
678
  // When in "system" mode, mirror OS-level changes into the PWA chrome.
621
679
  if (true) return;
622
680
  const mq = window.matchMedia("(prefers-color-scheme: dark)");
@@ -634,10 +692,31 @@ function ThemeProvider({ children }) {
634
692
  } catch {
635
693
  /* ignore quota / private-mode errors */ }
636
694
  }, []);
695
+ const setAccentColor = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((color)=>{
696
+ setAccentColorState(color);
697
+ applyAccentColor(color);
698
+ try {
699
+ if (color === "default") window.localStorage.removeItem(ACCENT_STORAGE_KEY);
700
+ else window.localStorage.setItem(ACCENT_STORAGE_KEY, color);
701
+ } catch {
702
+ /* ignore quota / private-mode errors */ }
703
+ }, []);
704
+ const setSurfaceStyle = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((style)=>{
705
+ setSurfaceStyleState(style);
706
+ applySurfaceStyle(style);
707
+ try {
708
+ window.localStorage.setItem(SURFACE_STORAGE_KEY, style);
709
+ } catch {
710
+ /* ignore quota / private-mode errors */ }
711
+ }, []);
637
712
  return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ThemeContext.Provider, {
638
713
  value: {
639
714
  theme,
640
- setTheme
715
+ setTheme,
716
+ accentColor,
717
+ setAccentColor,
718
+ surfaceStyle,
719
+ setSurfaceStyle
641
720
  },
642
721
  children: children
643
722
  });