@hexclave/next 1.0.3 → 1.0.5

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 (837) hide show
  1. package/dist/components/api-key-dialogs.d.ts +1 -1
  2. package/dist/components/api-key-dialogs.js.map +1 -1
  3. package/dist/components/api-key-table.d.ts +1 -1
  4. package/dist/components/api-key-table.js.map +1 -1
  5. package/dist/components/credential-sign-in.js.map +1 -1
  6. package/dist/components/credential-sign-up.js.map +1 -1
  7. package/dist/components/elements/form-warning.js.map +1 -1
  8. package/dist/components/elements/maybe-full-page.js.map +1 -1
  9. package/dist/components/elements/separator-with-text.js.map +1 -1
  10. package/dist/components/elements/sidebar-layout.js.map +1 -1
  11. package/dist/components/elements/ssr-layout-effect.js.map +1 -1
  12. package/dist/components/elements/user-avatar.js.map +1 -1
  13. package/dist/components/link.js.map +1 -1
  14. package/dist/components/magic-link-sign-in.js +2 -2
  15. package/dist/components/magic-link-sign-in.js.map +1 -1
  16. package/dist/components/message-cards/known-error-message-card.js +2 -2
  17. package/dist/components/message-cards/known-error-message-card.js.map +1 -1
  18. package/dist/components/message-cards/message-card.js.map +1 -1
  19. package/dist/components/message-cards/predefined-message-card.js +9 -9
  20. package/dist/components/message-cards/predefined-message-card.js.map +1 -1
  21. package/dist/components/oauth-button-group.js +2 -2
  22. package/dist/components/oauth-button-group.js.map +1 -1
  23. package/dist/components/oauth-button.js +2 -2
  24. package/dist/components/oauth-button.js.map +1 -1
  25. package/dist/components/passkey-button.js +2 -2
  26. package/dist/components/passkey-button.js.map +1 -1
  27. package/dist/components/profile-image-editor.js.map +1 -1
  28. package/dist/components/selected-team-switcher.d.ts +1 -1
  29. package/dist/components/selected-team-switcher.js.map +1 -1
  30. package/dist/components/team-icon.d.ts +1 -1
  31. package/dist/components/team-icon.js.map +1 -1
  32. package/dist/components/team-switcher.d.ts +1 -1
  33. package/dist/components/team-switcher.js.map +1 -1
  34. package/dist/components/use-in-iframe.js.map +1 -1
  35. package/dist/components/user-button.js.map +1 -1
  36. package/dist/components-page/account-settings/active-sessions/active-sessions-page.js.map +1 -1
  37. package/dist/components-page/account-settings/api-keys/api-keys-page.js.map +1 -1
  38. package/dist/components-page/account-settings/editable-text.js.map +1 -1
  39. package/dist/components-page/account-settings/email-and-auth/email-and-auth-page.js.map +1 -1
  40. package/dist/components-page/account-settings/email-and-auth/emails-section.js.map +1 -1
  41. package/dist/components-page/account-settings/email-and-auth/mfa-section.js.map +1 -1
  42. package/dist/components-page/account-settings/email-and-auth/otp-section.js.map +1 -1
  43. package/dist/components-page/account-settings/email-and-auth/passkey-section.js.map +1 -1
  44. package/dist/components-page/account-settings/email-and-auth/password-section.js.map +1 -1
  45. package/dist/components-page/account-settings/notifications/notifications-page.js.map +1 -1
  46. package/dist/components-page/account-settings/page-layout.js.map +1 -1
  47. package/dist/components-page/account-settings/payments/payments-page.d.ts +1 -1
  48. package/dist/components-page/account-settings/payments/payments-page.js.map +1 -1
  49. package/dist/components-page/account-settings/payments/payments-panel.d.ts +1 -1
  50. package/dist/components-page/account-settings/payments/payments-panel.js +3 -3
  51. package/dist/components-page/account-settings/payments/payments-panel.js.map +1 -1
  52. package/dist/components-page/account-settings/profile-page/profile-page.js.map +1 -1
  53. package/dist/components-page/account-settings/section.js.map +1 -1
  54. package/dist/components-page/account-settings/settings/delete-account-section.js.map +1 -1
  55. package/dist/components-page/account-settings/settings/settings-page.js.map +1 -1
  56. package/dist/components-page/account-settings/settings/sign-out-section.js.map +1 -1
  57. package/dist/components-page/account-settings/teams/leave-team-section.d.ts +1 -1
  58. package/dist/components-page/account-settings/teams/leave-team-section.js.map +1 -1
  59. package/dist/components-page/account-settings/teams/team-api-keys-section.d.ts +1 -1
  60. package/dist/components-page/account-settings/teams/team-api-keys-section.js.map +1 -1
  61. package/dist/components-page/account-settings/teams/team-creation-page.js.map +1 -1
  62. package/dist/components-page/account-settings/teams/team-display-name-section.d.ts +1 -1
  63. package/dist/components-page/account-settings/teams/team-display-name-section.js.map +1 -1
  64. package/dist/components-page/account-settings/teams/team-member-invitation-section.d.ts +1 -1
  65. package/dist/components-page/account-settings/teams/team-member-invitation-section.js.map +1 -1
  66. package/dist/components-page/account-settings/teams/team-member-list-section.d.ts +1 -1
  67. package/dist/components-page/account-settings/teams/team-member-list-section.js.map +1 -1
  68. package/dist/components-page/account-settings/teams/team-page.d.ts +1 -1
  69. package/dist/components-page/account-settings/teams/team-page.js.map +1 -1
  70. package/dist/components-page/account-settings/teams/team-profile-image-section.d.ts +1 -1
  71. package/dist/components-page/account-settings/teams/team-profile-image-section.js.map +1 -1
  72. package/dist/components-page/account-settings/teams/team-profile-user-section.d.ts +1 -1
  73. package/dist/components-page/account-settings/teams/team-profile-user-section.js.map +1 -1
  74. package/dist/components-page/account-settings.js.map +1 -1
  75. package/dist/components-page/auth-page.d.ts.map +1 -1
  76. package/dist/components-page/auth-page.js +55 -10
  77. package/dist/components-page/auth-page.js.map +1 -1
  78. package/dist/components-page/cli-auth-confirm.js +3 -3
  79. package/dist/components-page/cli-auth-confirm.js.map +1 -1
  80. package/dist/components-page/cli-auth-confirm.test.js +4 -4
  81. package/dist/components-page/cli-auth-confirm.test.js.map +1 -1
  82. package/dist/components-page/email-verification.js +4 -4
  83. package/dist/components-page/email-verification.js.map +1 -1
  84. package/dist/components-page/error-page.js +9 -9
  85. package/dist/components-page/error-page.js.map +1 -1
  86. package/dist/components-page/forgot-password.js +4 -4
  87. package/dist/components-page/forgot-password.js.map +1 -1
  88. package/dist/components-page/{stack-handler-client.d.ts → hexclave-handler-client.d.ts} +4 -4
  89. package/dist/components-page/hexclave-handler-client.d.ts.map +1 -0
  90. package/dist/components-page/{stack-handler-client.js → hexclave-handler-client.js} +19 -18
  91. package/dist/components-page/hexclave-handler-client.js.map +1 -0
  92. package/dist/components-page/{stack-handler.d.ts → hexclave-handler.d.ts} +5 -5
  93. package/dist/components-page/hexclave-handler.d.ts.map +1 -0
  94. package/dist/components-page/{stack-handler.js → hexclave-handler.js} +4 -4
  95. package/dist/components-page/hexclave-handler.js.map +1 -0
  96. package/dist/components-page/magic-link-callback.js +7 -7
  97. package/dist/components-page/magic-link-callback.js.map +1 -1
  98. package/dist/components-page/mfa.js +4 -4
  99. package/dist/components-page/mfa.js.map +1 -1
  100. package/dist/components-page/oauth-callback.js +3 -3
  101. package/dist/components-page/oauth-callback.js.map +1 -1
  102. package/dist/components-page/onboarding.js +3 -3
  103. package/dist/components-page/onboarding.js.map +1 -1
  104. package/dist/components-page/password-reset.js +8 -8
  105. package/dist/components-page/password-reset.js.map +1 -1
  106. package/dist/components-page/sign-in.js.map +1 -1
  107. package/dist/components-page/sign-out.d.ts +1 -0
  108. package/dist/components-page/sign-out.d.ts.map +1 -1
  109. package/dist/components-page/sign-out.js +11 -5
  110. package/dist/components-page/sign-out.js.map +1 -1
  111. package/dist/components-page/sign-up.js.map +1 -1
  112. package/dist/components-page/team-creation.js.map +1 -1
  113. package/dist/components-page/team-invitation.js +16 -16
  114. package/dist/components-page/team-invitation.js.map +1 -1
  115. package/dist/dev-tool/dev-tool-core.d.ts +1 -1
  116. package/dist/dev-tool/dev-tool-core.js +11 -11
  117. package/dist/dev-tool/dev-tool-core.js.map +1 -1
  118. package/dist/dev-tool/dev-tool-styles.d.ts +1 -1
  119. package/dist/dev-tool/dev-tool-styles.js +371 -371
  120. package/dist/dev-tool/dev-tool-styles.js.map +1 -1
  121. package/dist/dev-tool/dev-tool-trigger-position.js.map +1 -1
  122. package/dist/dev-tool/dev-tool-trigger-position.test.js.map +1 -1
  123. package/dist/dev-tool/index.d.ts +4 -4
  124. package/dist/dev-tool/index.js +4 -4
  125. package/dist/dev-tool/index.js.map +1 -1
  126. package/dist/esm/components/api-key-dialogs.d.ts +1 -1
  127. package/dist/esm/components/api-key-dialogs.js.map +1 -1
  128. package/dist/esm/components/api-key-table.d.ts +1 -1
  129. package/dist/esm/components/api-key-table.js.map +1 -1
  130. package/dist/esm/components/credential-sign-in.js.map +1 -1
  131. package/dist/esm/components/credential-sign-up.js.map +1 -1
  132. package/dist/esm/components/elements/form-warning.js.map +1 -1
  133. package/dist/esm/components/elements/maybe-full-page.js.map +1 -1
  134. package/dist/esm/components/elements/separator-with-text.js.map +1 -1
  135. package/dist/esm/components/elements/sidebar-layout.js.map +1 -1
  136. package/dist/esm/components/elements/ssr-layout-effect.js.map +1 -1
  137. package/dist/esm/components/elements/user-avatar.js.map +1 -1
  138. package/dist/esm/components/link.js.map +1 -1
  139. package/dist/esm/components/magic-link-sign-in.js +2 -2
  140. package/dist/esm/components/magic-link-sign-in.js.map +1 -1
  141. package/dist/esm/components/message-cards/known-error-message-card.js +2 -2
  142. package/dist/esm/components/message-cards/known-error-message-card.js.map +1 -1
  143. package/dist/esm/components/message-cards/message-card.js.map +1 -1
  144. package/dist/esm/components/message-cards/predefined-message-card.js +9 -9
  145. package/dist/esm/components/message-cards/predefined-message-card.js.map +1 -1
  146. package/dist/esm/components/oauth-button-group.js +2 -2
  147. package/dist/esm/components/oauth-button-group.js.map +1 -1
  148. package/dist/esm/components/oauth-button.js +2 -2
  149. package/dist/esm/components/oauth-button.js.map +1 -1
  150. package/dist/esm/components/passkey-button.js +2 -2
  151. package/dist/esm/components/passkey-button.js.map +1 -1
  152. package/dist/esm/components/profile-image-editor.js.map +1 -1
  153. package/dist/esm/components/selected-team-switcher.js.map +1 -1
  154. package/dist/esm/components/team-icon.js.map +1 -1
  155. package/dist/esm/components/team-switcher.js.map +1 -1
  156. package/dist/esm/components/use-in-iframe.js.map +1 -1
  157. package/dist/esm/components/user-button.js.map +1 -1
  158. package/dist/esm/components-page/account-settings/active-sessions/active-sessions-page.js.map +1 -1
  159. package/dist/esm/components-page/account-settings/api-keys/api-keys-page.js.map +1 -1
  160. package/dist/esm/components-page/account-settings/editable-text.js.map +1 -1
  161. package/dist/esm/components-page/account-settings/email-and-auth/email-and-auth-page.js.map +1 -1
  162. package/dist/esm/components-page/account-settings/email-and-auth/emails-section.js.map +1 -1
  163. package/dist/esm/components-page/account-settings/email-and-auth/mfa-section.js.map +1 -1
  164. package/dist/esm/components-page/account-settings/email-and-auth/otp-section.js.map +1 -1
  165. package/dist/esm/components-page/account-settings/email-and-auth/passkey-section.js.map +1 -1
  166. package/dist/esm/components-page/account-settings/email-and-auth/password-section.js.map +1 -1
  167. package/dist/esm/components-page/account-settings/notifications/notifications-page.js.map +1 -1
  168. package/dist/esm/components-page/account-settings/page-layout.js.map +1 -1
  169. package/dist/esm/components-page/account-settings/payments/payments-page.js.map +1 -1
  170. package/dist/esm/components-page/account-settings/payments/payments-panel.d.ts +1 -1
  171. package/dist/esm/components-page/account-settings/payments/payments-panel.js +3 -3
  172. package/dist/esm/components-page/account-settings/payments/payments-panel.js.map +1 -1
  173. package/dist/esm/components-page/account-settings/profile-page/profile-page.js.map +1 -1
  174. package/dist/esm/components-page/account-settings/section.js.map +1 -1
  175. package/dist/esm/components-page/account-settings/settings/delete-account-section.js.map +1 -1
  176. package/dist/esm/components-page/account-settings/settings/settings-page.js.map +1 -1
  177. package/dist/esm/components-page/account-settings/settings/sign-out-section.js.map +1 -1
  178. package/dist/esm/components-page/account-settings/teams/leave-team-section.js.map +1 -1
  179. package/dist/esm/components-page/account-settings/teams/team-api-keys-section.d.ts +1 -1
  180. package/dist/esm/components-page/account-settings/teams/team-api-keys-section.js.map +1 -1
  181. package/dist/esm/components-page/account-settings/teams/team-creation-page.js.map +1 -1
  182. package/dist/esm/components-page/account-settings/teams/team-display-name-section.js.map +1 -1
  183. package/dist/esm/components-page/account-settings/teams/team-member-invitation-section.js.map +1 -1
  184. package/dist/esm/components-page/account-settings/teams/team-member-list-section.js.map +1 -1
  185. package/dist/esm/components-page/account-settings/teams/team-page.js.map +1 -1
  186. package/dist/esm/components-page/account-settings/teams/team-profile-image-section.js.map +1 -1
  187. package/dist/esm/components-page/account-settings/teams/team-profile-user-section.js.map +1 -1
  188. package/dist/esm/components-page/account-settings.js.map +1 -1
  189. package/dist/esm/components-page/auth-page.d.ts.map +1 -1
  190. package/dist/esm/components-page/auth-page.js +56 -11
  191. package/dist/esm/components-page/auth-page.js.map +1 -1
  192. package/dist/esm/components-page/cli-auth-confirm.js +3 -3
  193. package/dist/esm/components-page/cli-auth-confirm.js.map +1 -1
  194. package/dist/esm/components-page/cli-auth-confirm.test.js +4 -4
  195. package/dist/esm/components-page/cli-auth-confirm.test.js.map +1 -1
  196. package/dist/esm/components-page/email-verification.js +4 -4
  197. package/dist/esm/components-page/email-verification.js.map +1 -1
  198. package/dist/esm/components-page/error-page.js +9 -9
  199. package/dist/esm/components-page/error-page.js.map +1 -1
  200. package/dist/esm/components-page/forgot-password.js +4 -4
  201. package/dist/esm/components-page/forgot-password.js.map +1 -1
  202. package/dist/esm/components-page/{stack-handler-client.d.ts → hexclave-handler-client.d.ts} +4 -4
  203. package/dist/esm/components-page/hexclave-handler-client.d.ts.map +1 -0
  204. package/dist/esm/components-page/{stack-handler-client.js → hexclave-handler-client.js} +17 -16
  205. package/dist/esm/components-page/hexclave-handler-client.js.map +1 -0
  206. package/dist/esm/components-page/{stack-handler.d.ts → hexclave-handler.d.ts} +5 -5
  207. package/dist/esm/components-page/hexclave-handler.d.ts.map +1 -0
  208. package/dist/esm/components-page/{stack-handler.js → hexclave-handler.js} +4 -4
  209. package/dist/esm/components-page/hexclave-handler.js.map +1 -0
  210. package/dist/esm/components-page/magic-link-callback.js +7 -7
  211. package/dist/esm/components-page/magic-link-callback.js.map +1 -1
  212. package/dist/esm/components-page/mfa.js +4 -4
  213. package/dist/esm/components-page/mfa.js.map +1 -1
  214. package/dist/esm/components-page/oauth-callback.js +3 -3
  215. package/dist/esm/components-page/oauth-callback.js.map +1 -1
  216. package/dist/esm/components-page/onboarding.js +3 -3
  217. package/dist/esm/components-page/onboarding.js.map +1 -1
  218. package/dist/esm/components-page/password-reset.js +8 -8
  219. package/dist/esm/components-page/password-reset.js.map +1 -1
  220. package/dist/esm/components-page/sign-in.js.map +1 -1
  221. package/dist/esm/components-page/sign-out.d.ts +1 -0
  222. package/dist/esm/components-page/sign-out.d.ts.map +1 -1
  223. package/dist/esm/components-page/sign-out.js +11 -5
  224. package/dist/esm/components-page/sign-out.js.map +1 -1
  225. package/dist/esm/components-page/sign-up.js.map +1 -1
  226. package/dist/esm/components-page/team-creation.js.map +1 -1
  227. package/dist/esm/components-page/team-invitation.js +16 -16
  228. package/dist/esm/components-page/team-invitation.js.map +1 -1
  229. package/dist/esm/dev-tool/dev-tool-core.d.ts +1 -1
  230. package/dist/esm/dev-tool/dev-tool-core.js +10 -10
  231. package/dist/esm/dev-tool/dev-tool-core.js.map +1 -1
  232. package/dist/esm/dev-tool/dev-tool-styles.d.ts +1 -1
  233. package/dist/esm/dev-tool/dev-tool-styles.js +371 -371
  234. package/dist/esm/dev-tool/dev-tool-styles.js.map +1 -1
  235. package/dist/esm/dev-tool/dev-tool-trigger-position.js.map +1 -1
  236. package/dist/esm/dev-tool/dev-tool-trigger-position.test.js.map +1 -1
  237. package/dist/esm/dev-tool/index.d.ts +4 -4
  238. package/dist/esm/dev-tool/index.js +4 -4
  239. package/dist/esm/dev-tool/index.js.map +1 -1
  240. package/dist/esm/generated/global-css.d.ts +1 -1
  241. package/dist/esm/generated/global-css.js +1 -1
  242. package/dist/esm/generated/global-css.js.map +1 -1
  243. package/dist/esm/generated/quetzal-translations.js.map +1 -1
  244. package/dist/esm/index.d.ts +4 -4
  245. package/dist/esm/index.js +3 -3
  246. package/dist/esm/integrations/convex/component/convex.config.js.map +1 -1
  247. package/dist/esm/integrations/convex.js +1 -1
  248. package/dist/esm/integrations/convex.js.map +1 -1
  249. package/dist/esm/lib/auth.js.map +1 -1
  250. package/dist/esm/lib/auth.test.js.map +1 -1
  251. package/dist/esm/lib/cookie.js +2 -2
  252. package/dist/esm/lib/cookie.js.map +1 -1
  253. package/dist/esm/lib/env.js.map +1 -1
  254. package/dist/{lib/stack-app → esm/lib/hexclave-app}/api-keys/index.d.ts +2 -2
  255. package/dist/esm/lib/hexclave-app/api-keys/index.d.ts.map +1 -0
  256. package/dist/esm/lib/{stack-app → hexclave-app}/api-keys/index.js +1 -1
  257. package/dist/esm/lib/hexclave-app/api-keys/index.js.map +1 -0
  258. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/admin-app-impl.d.ts +6 -6
  259. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +1 -0
  260. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/admin-app-impl.js +7 -7
  261. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.js.map +1 -0
  262. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.cross-domain.test.js +2 -2
  263. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js.map +1 -0
  264. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.d.ts +13 -13
  265. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +1 -0
  266. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.js +23 -30
  267. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -0
  268. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.oauth-prefetch.test.js +1 -1
  269. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +1 -0
  270. package/dist/{lib/stack-app → esm/lib/hexclave-app}/apps/implementations/common.d.ts +4 -4
  271. package/dist/esm/lib/hexclave-app/apps/implementations/common.d.ts.map +1 -0
  272. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/common.js +7 -7
  273. package/dist/esm/lib/hexclave-app/apps/implementations/common.js.map +1 -0
  274. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.d.ts +1 -1
  275. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.d.ts.map +1 -0
  276. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.js +1 -1
  277. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.js.map +1 -0
  278. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.test.js +1 -1
  279. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.test.js.map +1 -0
  280. package/dist/esm/lib/hexclave-app/apps/implementations/index.d.ts +9 -0
  281. package/dist/esm/lib/hexclave-app/apps/implementations/index.d.ts.map +1 -0
  282. package/dist/esm/lib/hexclave-app/apps/implementations/index.js +27 -0
  283. package/dist/esm/lib/hexclave-app/apps/implementations/index.js.map +1 -0
  284. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/redirect-page-urls.d.ts +1 -1
  285. package/dist/esm/lib/hexclave-app/apps/implementations/redirect-page-urls.d.ts.map +1 -0
  286. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/redirect-page-urls.js +1 -1
  287. package/dist/esm/lib/hexclave-app/apps/implementations/redirect-page-urls.js.map +1 -0
  288. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/server-app-impl.d.ts +4 -4
  289. package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.d.ts.map +1 -0
  290. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/server-app-impl.js +6 -6
  291. package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.js.map +1 -0
  292. package/dist/{lib/stack-app → esm/lib/hexclave-app}/apps/implementations/session-refresh-subscription.d.ts +1 -1
  293. package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.d.ts.map +1 -0
  294. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.js +1 -1
  295. package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.js.map +1 -0
  296. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.test.js +1 -1
  297. package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.js.map +1 -0
  298. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.d.ts +1 -1
  299. package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.d.ts.map +1 -0
  300. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.js +1 -1
  301. package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.js.map +1 -0
  302. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.test.js +1 -1
  303. package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.test.js.map +1 -0
  304. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/admin-app.d.ts +1 -1
  305. package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.d.ts.map +1 -0
  306. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/admin-app.js +3 -3
  307. package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.js.map +1 -0
  308. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/client-app.d.ts +4 -4
  309. package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.d.ts.map +1 -0
  310. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/client-app.js +3 -3
  311. package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.js.map +1 -0
  312. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/server-app.d.ts +1 -1
  313. package/dist/esm/lib/hexclave-app/apps/interfaces/server-app.d.ts.map +1 -0
  314. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/server-app.js +3 -3
  315. package/dist/esm/lib/hexclave-app/apps/interfaces/server-app.js.map +1 -0
  316. package/dist/esm/lib/{stack-app → hexclave-app}/common.d.ts +7 -7
  317. package/dist/esm/lib/hexclave-app/common.d.ts.map +1 -0
  318. package/dist/esm/lib/hexclave-app/common.js +7 -0
  319. package/dist/esm/lib/hexclave-app/common.js.map +1 -0
  320. package/dist/esm/lib/{stack-app → hexclave-app}/connected-accounts/index.d.ts +1 -1
  321. package/dist/esm/lib/hexclave-app/connected-accounts/index.d.ts.map +1 -0
  322. package/dist/esm/lib/{stack-app → hexclave-app}/contact-channels/index.d.ts +1 -1
  323. package/dist/esm/lib/hexclave-app/contact-channels/index.d.ts.map +1 -0
  324. package/dist/esm/lib/{stack-app → hexclave-app}/contact-channels/index.js +1 -1
  325. package/dist/esm/lib/hexclave-app/contact-channels/index.js.map +1 -0
  326. package/dist/esm/lib/{stack-app → hexclave-app}/customers/index.d.ts +1 -1
  327. package/dist/esm/lib/hexclave-app/customers/index.d.ts.map +1 -0
  328. package/dist/esm/lib/{stack-app → hexclave-app}/data-vault/index.d.ts +1 -1
  329. package/dist/esm/lib/hexclave-app/data-vault/index.d.ts.map +1 -0
  330. package/dist/{lib/stack-app → esm/lib/hexclave-app}/email/index.d.ts +1 -1
  331. package/dist/esm/lib/hexclave-app/email/index.d.ts.map +1 -0
  332. package/dist/{lib/stack-app → esm/lib/hexclave-app}/email-templates/index.d.ts +1 -1
  333. package/dist/esm/lib/hexclave-app/email-templates/index.d.ts.map +1 -0
  334. package/dist/esm/lib/{stack-app → hexclave-app}/email-templates/index.js +1 -1
  335. package/dist/esm/lib/hexclave-app/email-templates/index.js.map +1 -0
  336. package/dist/esm/lib/{stack-app → hexclave-app}/index.d.ts +2 -2
  337. package/dist/esm/lib/{stack-app → hexclave-app}/index.js +2 -2
  338. package/dist/{lib/stack-app → esm/lib/hexclave-app}/internal-api-keys/index.d.ts +1 -1
  339. package/dist/esm/lib/hexclave-app/internal-api-keys/index.d.ts.map +1 -0
  340. package/dist/esm/lib/{stack-app → hexclave-app}/internal-api-keys/index.js +1 -1
  341. package/dist/esm/lib/hexclave-app/internal-api-keys/index.js.map +1 -0
  342. package/dist/{lib/stack-app → esm/lib/hexclave-app}/notification-categories/index.d.ts +1 -1
  343. package/dist/esm/lib/hexclave-app/notification-categories/index.d.ts.map +1 -0
  344. package/dist/{lib/stack-app → esm/lib/hexclave-app}/permissions/index.d.ts +1 -1
  345. package/dist/esm/lib/hexclave-app/permissions/index.d.ts.map +1 -0
  346. package/dist/esm/lib/{stack-app → hexclave-app}/permissions/index.js +1 -1
  347. package/dist/esm/lib/hexclave-app/permissions/index.js.map +1 -0
  348. package/dist/esm/lib/{stack-app → hexclave-app}/project-configs/index.d.ts +1 -1
  349. package/dist/esm/lib/hexclave-app/project-configs/index.d.ts.map +1 -0
  350. package/dist/esm/lib/{stack-app → hexclave-app}/projects/index.d.ts +1 -1
  351. package/dist/esm/lib/hexclave-app/projects/index.d.ts.map +1 -0
  352. package/dist/esm/lib/{stack-app → hexclave-app}/projects/index.js +1 -1
  353. package/dist/esm/lib/hexclave-app/projects/index.js.map +1 -0
  354. package/dist/{lib/stack-app → esm/lib/hexclave-app}/session-replays/index.d.ts +1 -1
  355. package/dist/esm/lib/hexclave-app/session-replays/index.d.ts.map +1 -0
  356. package/dist/esm/lib/{stack-app → hexclave-app}/teams/index.d.ts +1 -1
  357. package/dist/esm/lib/hexclave-app/teams/index.d.ts.map +1 -0
  358. package/dist/esm/lib/{stack-app → hexclave-app}/teams/index.js +1 -1
  359. package/dist/esm/lib/hexclave-app/teams/index.js.map +1 -0
  360. package/dist/esm/lib/{stack-app → hexclave-app}/url-targets.d.ts +1 -1
  361. package/dist/esm/lib/hexclave-app/url-targets.d.ts.map +1 -0
  362. package/dist/esm/lib/{stack-app → hexclave-app}/url-targets.js +2 -2
  363. package/dist/esm/lib/hexclave-app/url-targets.js.map +1 -0
  364. package/dist/esm/lib/{stack-app → hexclave-app}/url-targets.test.js +1 -1
  365. package/dist/esm/lib/hexclave-app/url-targets.test.js.map +1 -0
  366. package/dist/esm/lib/{stack-app → hexclave-app}/users/index.d.ts +1 -1
  367. package/dist/esm/lib/hexclave-app/users/index.d.ts.map +1 -0
  368. package/dist/esm/lib/{stack-app → hexclave-app}/users/index.js +1 -1
  369. package/dist/esm/lib/hexclave-app/users/index.js.map +1 -0
  370. package/dist/esm/lib/hooks.d.ts +1 -1
  371. package/dist/esm/lib/hooks.js +9 -9
  372. package/dist/esm/lib/hooks.js.map +1 -1
  373. package/dist/esm/lib/translations.js.map +1 -1
  374. package/dist/esm/providers/hexclave-context.d.ts +11 -0
  375. package/dist/esm/providers/hexclave-context.d.ts.map +1 -0
  376. package/dist/esm/providers/hexclave-context.js +12 -0
  377. package/dist/esm/providers/hexclave-context.js.map +1 -0
  378. package/dist/esm/providers/{stack-provider-client.d.ts → hexclave-provider-client.d.ts} +5 -5
  379. package/dist/esm/providers/hexclave-provider-client.d.ts.map +1 -0
  380. package/dist/esm/providers/hexclave-provider-client.js +30 -0
  381. package/dist/esm/providers/hexclave-provider-client.js.map +1 -0
  382. package/dist/esm/providers/{stack-provider.d.ts → hexclave-provider.d.ts} +3 -3
  383. package/dist/esm/providers/hexclave-provider.d.ts.map +1 -0
  384. package/dist/esm/providers/{stack-provider.js → hexclave-provider.js} +6 -6
  385. package/dist/esm/providers/hexclave-provider.js.map +1 -0
  386. package/dist/esm/providers/theme-provider.js.map +1 -1
  387. package/dist/esm/providers/translation-provider-client.js.map +1 -1
  388. package/dist/esm/providers/translation-provider.js.map +1 -1
  389. package/dist/esm/tanstack-start-server-context.d.ts +1 -1
  390. package/dist/esm/utils/browser-script.js.map +1 -1
  391. package/dist/esm/utils/constants.js.map +1 -1
  392. package/dist/esm/utils/url.js.map +1 -1
  393. package/dist/generated/global-css.d.ts +1 -1
  394. package/dist/generated/global-css.js +1 -1
  395. package/dist/generated/global-css.js.map +1 -1
  396. package/dist/generated/quetzal-translations.js.map +1 -1
  397. package/dist/index.d.ts +18 -18
  398. package/dist/index.js +9 -9
  399. package/dist/integrations/convex/component/convex.config.d.ts +2 -2
  400. package/dist/integrations/convex/component/convex.config.d.ts.map +1 -1
  401. package/dist/integrations/convex/component/convex.config.js.map +1 -1
  402. package/dist/integrations/convex.js +2 -2
  403. package/dist/integrations/convex.js.map +1 -1
  404. package/dist/lib/auth.js.map +1 -1
  405. package/dist/lib/auth.test.js.map +1 -1
  406. package/dist/lib/cookie.js +2 -2
  407. package/dist/lib/cookie.js.map +1 -1
  408. package/dist/lib/env.js.map +1 -1
  409. package/dist/{esm/lib/stack-app → lib/hexclave-app}/api-keys/index.d.ts +2 -2
  410. package/dist/{esm/lib/stack-app → lib/hexclave-app}/api-keys/index.d.ts.map +1 -1
  411. package/dist/lib/{stack-app → hexclave-app}/api-keys/index.js +1 -1
  412. package/dist/lib/hexclave-app/api-keys/index.js.map +1 -0
  413. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/admin-app-impl.d.ts +6 -6
  414. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +1 -0
  415. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/admin-app-impl.js +5 -5
  416. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.js.map +1 -0
  417. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.cross-domain.test.js +2 -2
  418. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js.map +1 -0
  419. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.d.ts +13 -13
  420. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +1 -0
  421. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.js +22 -29
  422. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -0
  423. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.oauth-prefetch.test.js +1 -1
  424. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +1 -0
  425. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/common.d.ts +4 -4
  426. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/common.d.ts.map +1 -1
  427. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/common.js +6 -6
  428. package/dist/lib/hexclave-app/apps/implementations/common.js.map +1 -0
  429. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.d.ts +1 -1
  430. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/event-tracker.d.ts.map +1 -1
  431. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.js +1 -1
  432. package/dist/lib/hexclave-app/apps/implementations/event-tracker.js.map +1 -0
  433. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.test.js +1 -1
  434. package/dist/lib/hexclave-app/apps/implementations/event-tracker.test.js.map +1 -0
  435. package/dist/lib/hexclave-app/apps/implementations/index.d.ts +9 -0
  436. package/dist/lib/hexclave-app/apps/implementations/index.d.ts.map +1 -0
  437. package/dist/lib/hexclave-app/apps/implementations/index.js +31 -0
  438. package/dist/lib/hexclave-app/apps/implementations/index.js.map +1 -0
  439. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/redirect-page-urls.d.ts +1 -1
  440. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/redirect-page-urls.d.ts.map +1 -1
  441. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/redirect-page-urls.js +1 -1
  442. package/dist/lib/hexclave-app/apps/implementations/redirect-page-urls.js.map +1 -0
  443. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/server-app-impl.d.ts +4 -4
  444. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/server-app-impl.d.ts.map +1 -1
  445. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/server-app-impl.js +5 -5
  446. package/dist/lib/hexclave-app/apps/implementations/server-app-impl.js.map +1 -0
  447. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/session-refresh-subscription.d.ts +1 -1
  448. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/session-refresh-subscription.d.ts.map +1 -1
  449. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.js +1 -1
  450. package/dist/lib/hexclave-app/apps/implementations/session-refresh-subscription.js.map +1 -0
  451. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.test.js +1 -1
  452. package/dist/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.js.map +1 -0
  453. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.d.ts +1 -1
  454. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/session-replay.d.ts.map +1 -1
  455. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.js +1 -1
  456. package/dist/lib/hexclave-app/apps/implementations/session-replay.js.map +1 -0
  457. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.test.js +1 -1
  458. package/dist/lib/hexclave-app/apps/implementations/session-replay.test.js.map +1 -0
  459. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/admin-app.d.ts +1 -1
  460. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/interfaces/admin-app.d.ts.map +1 -1
  461. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/admin-app.js +2 -2
  462. package/dist/lib/hexclave-app/apps/interfaces/admin-app.js.map +1 -0
  463. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/client-app.d.ts +4 -4
  464. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/interfaces/client-app.d.ts.map +1 -1
  465. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/client-app.js +2 -2
  466. package/dist/lib/hexclave-app/apps/interfaces/client-app.js.map +1 -0
  467. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/server-app.d.ts +2 -2
  468. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/interfaces/server-app.d.ts.map +1 -1
  469. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/server-app.js +2 -2
  470. package/dist/lib/hexclave-app/apps/interfaces/server-app.js.map +1 -0
  471. package/dist/lib/{stack-app → hexclave-app}/common.d.ts +8 -8
  472. package/dist/{esm/lib/stack-app → lib/hexclave-app}/common.d.ts.map +1 -1
  473. package/dist/lib/hexclave-app/common.js +9 -0
  474. package/dist/lib/hexclave-app/common.js.map +1 -0
  475. package/dist/lib/{stack-app → hexclave-app}/connected-accounts/index.d.ts +1 -1
  476. package/dist/{esm/lib/stack-app → lib/hexclave-app}/connected-accounts/index.d.ts.map +1 -1
  477. package/dist/lib/{stack-app → hexclave-app}/contact-channels/index.d.ts +1 -1
  478. package/dist/{esm/lib/stack-app → lib/hexclave-app}/contact-channels/index.d.ts.map +1 -1
  479. package/dist/lib/{stack-app → hexclave-app}/contact-channels/index.js +1 -1
  480. package/dist/lib/hexclave-app/contact-channels/index.js.map +1 -0
  481. package/dist/lib/{stack-app → hexclave-app}/customers/index.d.ts +1 -1
  482. package/dist/{esm/lib/stack-app → lib/hexclave-app}/customers/index.d.ts.map +1 -1
  483. package/dist/lib/{stack-app → hexclave-app}/data-vault/index.d.ts +1 -1
  484. package/dist/{esm/lib/stack-app → lib/hexclave-app}/data-vault/index.d.ts.map +1 -1
  485. package/dist/{esm/lib/stack-app → lib/hexclave-app}/email/index.d.ts +1 -1
  486. package/dist/{esm/lib/stack-app → lib/hexclave-app}/email/index.d.ts.map +1 -1
  487. package/dist/{esm/lib/stack-app → lib/hexclave-app}/email-templates/index.d.ts +1 -1
  488. package/dist/{esm/lib/stack-app → lib/hexclave-app}/email-templates/index.d.ts.map +1 -1
  489. package/dist/lib/{stack-app → hexclave-app}/email-templates/index.js +1 -1
  490. package/dist/lib/hexclave-app/email-templates/index.js.map +1 -0
  491. package/dist/lib/{stack-app → hexclave-app}/index.d.ts +2 -2
  492. package/dist/lib/{stack-app → hexclave-app}/index.js +2 -2
  493. package/dist/{esm/lib/stack-app → lib/hexclave-app}/internal-api-keys/index.d.ts +1 -1
  494. package/dist/{esm/lib/stack-app → lib/hexclave-app}/internal-api-keys/index.d.ts.map +1 -1
  495. package/dist/lib/{stack-app → hexclave-app}/internal-api-keys/index.js +1 -1
  496. package/dist/lib/hexclave-app/internal-api-keys/index.js.map +1 -0
  497. package/dist/{esm/lib/stack-app → lib/hexclave-app}/notification-categories/index.d.ts +1 -1
  498. package/dist/{esm/lib/stack-app → lib/hexclave-app}/notification-categories/index.d.ts.map +1 -1
  499. package/dist/{esm/lib/stack-app → lib/hexclave-app}/permissions/index.d.ts +1 -1
  500. package/dist/{esm/lib/stack-app → lib/hexclave-app}/permissions/index.d.ts.map +1 -1
  501. package/dist/lib/{stack-app → hexclave-app}/permissions/index.js +1 -1
  502. package/dist/lib/hexclave-app/permissions/index.js.map +1 -0
  503. package/dist/lib/{stack-app → hexclave-app}/project-configs/index.d.ts +1 -1
  504. package/dist/{esm/lib/stack-app → lib/hexclave-app}/project-configs/index.d.ts.map +1 -1
  505. package/dist/lib/{stack-app → hexclave-app}/projects/index.d.ts +1 -1
  506. package/dist/{esm/lib/stack-app → lib/hexclave-app}/projects/index.d.ts.map +1 -1
  507. package/dist/lib/{stack-app → hexclave-app}/projects/index.js +1 -1
  508. package/dist/lib/hexclave-app/projects/index.js.map +1 -0
  509. package/dist/{esm/lib/stack-app → lib/hexclave-app}/session-replays/index.d.ts +1 -1
  510. package/dist/{esm/lib/stack-app → lib/hexclave-app}/session-replays/index.d.ts.map +1 -1
  511. package/dist/lib/{stack-app → hexclave-app}/teams/index.d.ts +1 -1
  512. package/dist/{esm/lib/stack-app → lib/hexclave-app}/teams/index.d.ts.map +1 -1
  513. package/dist/lib/{stack-app → hexclave-app}/teams/index.js +1 -1
  514. package/dist/lib/hexclave-app/teams/index.js.map +1 -0
  515. package/dist/lib/{stack-app → hexclave-app}/url-targets.d.ts +1 -1
  516. package/dist/{esm/lib/stack-app → lib/hexclave-app}/url-targets.d.ts.map +1 -1
  517. package/dist/lib/{stack-app → hexclave-app}/url-targets.js +2 -2
  518. package/dist/lib/hexclave-app/url-targets.js.map +1 -0
  519. package/dist/lib/{stack-app → hexclave-app}/url-targets.test.js +1 -1
  520. package/dist/lib/hexclave-app/url-targets.test.js.map +1 -0
  521. package/dist/lib/{stack-app → hexclave-app}/users/index.d.ts +1 -1
  522. package/dist/{esm/lib/stack-app → lib/hexclave-app}/users/index.d.ts.map +1 -1
  523. package/dist/lib/{stack-app → hexclave-app}/users/index.js +1 -1
  524. package/dist/lib/hexclave-app/users/index.js.map +1 -0
  525. package/dist/lib/hooks.d.ts +3 -3
  526. package/dist/lib/hooks.d.ts.map +1 -1
  527. package/dist/lib/hooks.js +9 -9
  528. package/dist/lib/hooks.js.map +1 -1
  529. package/dist/lib/translations.js.map +1 -1
  530. package/dist/providers/hexclave-context.d.ts +11 -0
  531. package/dist/providers/hexclave-context.d.ts.map +1 -0
  532. package/dist/providers/hexclave-context.js +15 -0
  533. package/dist/providers/hexclave-context.js.map +1 -0
  534. package/dist/providers/{stack-provider-client.d.ts → hexclave-provider-client.d.ts} +5 -5
  535. package/dist/providers/hexclave-provider-client.d.ts.map +1 -0
  536. package/dist/providers/{stack-provider-client.js → hexclave-provider-client.js} +9 -9
  537. package/dist/providers/hexclave-provider-client.js.map +1 -0
  538. package/dist/providers/{stack-provider.d.ts → hexclave-provider.d.ts} +5 -5
  539. package/dist/providers/hexclave-provider.d.ts.map +1 -0
  540. package/dist/providers/{stack-provider.js → hexclave-provider.js} +6 -6
  541. package/dist/providers/hexclave-provider.js.map +1 -0
  542. package/dist/providers/theme-provider.js.map +1 -1
  543. package/dist/providers/translation-provider-client.js.map +1 -1
  544. package/dist/providers/translation-provider.js.map +1 -1
  545. package/dist/{storage-kTmOAWHW.d.ts → storage-CKzvsBxG.d.ts} +18 -18
  546. package/dist/{storage-kTmOAWHW.d.ts.map → storage-CKzvsBxG.d.ts.map} +1 -1
  547. package/dist/tanstack-start-server-context.d.ts +1 -1
  548. package/dist/utils/browser-script.js.map +1 -1
  549. package/dist/utils/constants.js.map +1 -1
  550. package/dist/utils/url.js.map +1 -1
  551. package/package.json +6 -5
  552. package/src/components/api-key-dialogs.tsx +173 -0
  553. package/src/components/api-key-table.tsx +127 -0
  554. package/src/components/credential-sign-in.tsx +83 -0
  555. package/src/components/credential-sign-up.tsx +108 -0
  556. package/src/components/elements/form-warning.tsx +17 -0
  557. package/src/components/elements/maybe-full-page.tsx +60 -0
  558. package/src/components/elements/separator-with-text.tsx +22 -0
  559. package/src/components/elements/sidebar-layout.tsx +136 -0
  560. package/src/components/elements/ssr-layout-effect.tsx +24 -0
  561. package/src/components/elements/user-avatar.tsx +32 -0
  562. package/src/components/link.tsx +40 -0
  563. package/src/components/magic-link-sign-in.tsx +143 -0
  564. package/src/components/message-cards/known-error-message-card.tsx +33 -0
  565. package/src/components/message-cards/message-card.tsx +46 -0
  566. package/src/components/message-cards/predefined-message-card.tsx +88 -0
  567. package/src/components/oauth-button-group.tsx +35 -0
  568. package/src/components/oauth-button.tsx +222 -0
  569. package/src/components/passkey-button.tsx +43 -0
  570. package/src/components/profile-image-editor.tsx +194 -0
  571. package/src/components/selected-team-switcher.tsx +97 -0
  572. package/src/components/team-icon.tsx +30 -0
  573. package/src/components/team-switcher.tsx +191 -0
  574. package/src/components/use-in-iframe.tsx +18 -0
  575. package/src/components/user-button.tsx +157 -0
  576. package/src/components-page/account-settings/active-sessions/active-sessions-page.tsx +238 -0
  577. package/src/components-page/account-settings/api-keys/api-keys-page.tsx +157 -0
  578. package/src/components-page/account-settings/editable-text.tsx +53 -0
  579. package/src/components-page/account-settings/email-and-auth/email-and-auth-page.tsx +24 -0
  580. package/src/components-page/account-settings/email-and-auth/emails-section.tsx +201 -0
  581. package/src/components-page/account-settings/email-and-auth/mfa-section.tsx +139 -0
  582. package/src/components-page/account-settings/email-and-auth/otp-section.tsx +102 -0
  583. package/src/components-page/account-settings/email-and-auth/passkey-section.tsx +112 -0
  584. package/src/components-page/account-settings/email-and-auth/password-section.tsx +174 -0
  585. package/src/components-page/account-settings/notifications/notifications-page.tsx +44 -0
  586. package/src/components-page/account-settings/page-layout.tsx +11 -0
  587. package/src/components-page/account-settings/payments/payments-page.tsx +73 -0
  588. package/src/components-page/account-settings/payments/payments-panel.tsx +543 -0
  589. package/src/components-page/account-settings/profile-page/profile-page.tsx +61 -0
  590. package/src/components-page/account-settings/section.tsx +26 -0
  591. package/src/components-page/account-settings/settings/delete-account-section.tsx +85 -0
  592. package/src/components-page/account-settings/settings/settings-page.tsx +19 -0
  593. package/src/components-page/account-settings/settings/sign-out-section.tsx +40 -0
  594. package/src/components-page/account-settings/teams/leave-team-section.tsx +57 -0
  595. package/src/components-page/account-settings/teams/team-api-keys-section.tsx +74 -0
  596. package/src/components-page/account-settings/teams/team-creation-page.tsx +92 -0
  597. package/src/components-page/account-settings/teams/team-display-name-section.tsx +31 -0
  598. package/src/components-page/account-settings/teams/team-member-invitation-section.tsx +128 -0
  599. package/src/components-page/account-settings/teams/team-member-list-section.tsx +59 -0
  600. package/src/components-page/account-settings/teams/team-page.tsx +28 -0
  601. package/src/components-page/account-settings/teams/team-profile-image-section.tsx +33 -0
  602. package/src/components-page/account-settings/teams/team-profile-user-section.tsx +29 -0
  603. package/src/components-page/account-settings.tsx +343 -0
  604. package/src/components-page/auth-page.tsx +206 -0
  605. package/src/components-page/cli-auth-confirm.test.tsx +204 -0
  606. package/src/components-page/cli-auth-confirm.tsx +278 -0
  607. package/src/components-page/email-verification.tsx +76 -0
  608. package/src/components-page/error-page.tsx +105 -0
  609. package/src/components-page/forgot-password.tsx +105 -0
  610. package/src/components-page/hexclave-handler-client.tsx +325 -0
  611. package/src/components-page/hexclave-handler.tsx +48 -0
  612. package/src/components-page/magic-link-callback.tsx +92 -0
  613. package/src/components-page/mfa.tsx +222 -0
  614. package/src/components-page/oauth-callback.tsx +78 -0
  615. package/src/components-page/onboarding.tsx +176 -0
  616. package/src/components-page/password-reset.tsx +185 -0
  617. package/src/components-page/section.tsx +27 -0
  618. package/src/components-page/sign-in.tsx +34 -0
  619. package/src/components-page/sign-out.tsx +37 -0
  620. package/src/components-page/sign-up.tsx +24 -0
  621. package/src/components-page/team-creation.tsx +78 -0
  622. package/src/components-page/team-invitation.tsx +150 -0
  623. package/src/dev-tool/dev-tool-core.ts +2460 -0
  624. package/src/dev-tool/dev-tool-styles.ts +2758 -0
  625. package/src/dev-tool/dev-tool-trigger-position.test.ts +113 -0
  626. package/src/dev-tool/dev-tool-trigger-position.ts +109 -0
  627. package/src/dev-tool/index.ts +149 -0
  628. package/src/generated/.gitignore +3 -0
  629. package/src/generated/quetzal-translations.ts +4312 -0
  630. package/src/global.css +13 -0
  631. package/src/global.d.ts +5 -0
  632. package/src/index.ts +39 -0
  633. package/src/integrations/convex/component/README.md +74 -0
  634. package/src/integrations/convex/component/convex.config.ts +9 -0
  635. package/src/integrations/convex.ts +28 -0
  636. package/src/lib/auth.test.ts +67 -0
  637. package/src/lib/auth.ts +175 -0
  638. package/src/lib/cookie.ts +421 -0
  639. package/src/lib/env.ts +93 -0
  640. package/src/lib/hexclave-app/api-keys/index.ts +73 -0
  641. package/src/lib/hexclave-app/apps/implementations/admin-app-impl.ts +1261 -0
  642. package/src/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.ts +141 -0
  643. package/src/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.ts +36 -0
  644. package/src/lib/hexclave-app/apps/implementations/client-app-impl.ts +3912 -0
  645. package/src/lib/hexclave-app/apps/implementations/common.ts +244 -0
  646. package/src/lib/hexclave-app/apps/implementations/event-tracker.test.ts +105 -0
  647. package/src/lib/hexclave-app/apps/implementations/event-tracker.ts +306 -0
  648. package/src/lib/hexclave-app/apps/implementations/index.ts +35 -0
  649. package/src/lib/hexclave-app/apps/implementations/redirect-page-urls.ts +342 -0
  650. package/src/lib/hexclave-app/apps/implementations/server-app-impl.ts +1619 -0
  651. package/src/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.ts +106 -0
  652. package/src/lib/hexclave-app/apps/implementations/session-refresh-subscription.ts +52 -0
  653. package/src/lib/hexclave-app/apps/implementations/session-replay.test.ts +33 -0
  654. package/src/lib/hexclave-app/apps/implementations/session-replay.ts +356 -0
  655. package/src/lib/hexclave-app/apps/index.ts +40 -0
  656. package/src/lib/hexclave-app/apps/interfaces/admin-app.ts +192 -0
  657. package/src/lib/hexclave-app/apps/interfaces/client-app.ts +180 -0
  658. package/src/lib/hexclave-app/apps/interfaces/server-app.ts +129 -0
  659. package/src/lib/hexclave-app/common.ts +216 -0
  660. package/src/lib/hexclave-app/connected-accounts/index.ts +49 -0
  661. package/src/lib/hexclave-app/contact-channels/index.ts +80 -0
  662. package/src/lib/hexclave-app/customers/index.ts +158 -0
  663. package/src/lib/hexclave-app/data-vault/index.ts +12 -0
  664. package/src/lib/hexclave-app/email/index.ts +280 -0
  665. package/src/lib/hexclave-app/email-templates/index.ts +24 -0
  666. package/src/lib/hexclave-app/index.ts +146 -0
  667. package/src/lib/hexclave-app/internal-api-keys/index.ts +55 -0
  668. package/src/lib/hexclave-app/notification-categories/index.ts +12 -0
  669. package/src/lib/hexclave-app/permissions/index.ts +75 -0
  670. package/src/lib/hexclave-app/project-configs/index.ts +103 -0
  671. package/src/lib/hexclave-app/projects/index.ts +236 -0
  672. package/src/lib/hexclave-app/session-replays/index.ts +72 -0
  673. package/src/lib/hexclave-app/teams/index.ts +206 -0
  674. package/src/lib/hexclave-app/url-targets.test.ts +253 -0
  675. package/src/lib/hexclave-app/url-targets.ts +395 -0
  676. package/src/lib/hexclave-app/users/index.ts +523 -0
  677. package/src/lib/hooks.tsx +63 -0
  678. package/src/lib/translations.tsx +23 -0
  679. package/src/providers/hexclave-context.tsx +20 -0
  680. package/src/providers/hexclave-provider-client.tsx +39 -0
  681. package/src/providers/hexclave-provider.tsx +48 -0
  682. package/src/providers/theme-provider.tsx +121 -0
  683. package/src/providers/translation-provider-client.tsx +35 -0
  684. package/src/providers/translation-provider.tsx +25 -0
  685. package/src/tanstack-start-server-context.d.ts +13 -0
  686. package/src/utils/browser-script.tsx +135 -0
  687. package/src/utils/constants.tsx +58 -0
  688. package/src/utils/url.ts +24 -0
  689. package/dist/components-page/stack-handler-client.d.ts.map +0 -1
  690. package/dist/components-page/stack-handler-client.js.map +0 -1
  691. package/dist/components-page/stack-handler.d.ts.map +0 -1
  692. package/dist/components-page/stack-handler.js.map +0 -1
  693. package/dist/esm/components-page/stack-handler-client.d.ts.map +0 -1
  694. package/dist/esm/components-page/stack-handler-client.js.map +0 -1
  695. package/dist/esm/components-page/stack-handler.d.ts.map +0 -1
  696. package/dist/esm/components-page/stack-handler.js.map +0 -1
  697. package/dist/esm/lib/stack-app/api-keys/index.js.map +0 -1
  698. package/dist/esm/lib/stack-app/apps/implementations/admin-app-impl.d.ts.map +0 -1
  699. package/dist/esm/lib/stack-app/apps/implementations/admin-app-impl.js.map +0 -1
  700. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.cross-domain.test.js.map +0 -1
  701. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.d.ts.map +0 -1
  702. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.js.map +0 -1
  703. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +0 -1
  704. package/dist/esm/lib/stack-app/apps/implementations/common.js.map +0 -1
  705. package/dist/esm/lib/stack-app/apps/implementations/event-tracker.js.map +0 -1
  706. package/dist/esm/lib/stack-app/apps/implementations/event-tracker.test.js.map +0 -1
  707. package/dist/esm/lib/stack-app/apps/implementations/index.d.ts +0 -9
  708. package/dist/esm/lib/stack-app/apps/implementations/index.d.ts.map +0 -1
  709. package/dist/esm/lib/stack-app/apps/implementations/index.js +0 -27
  710. package/dist/esm/lib/stack-app/apps/implementations/index.js.map +0 -1
  711. package/dist/esm/lib/stack-app/apps/implementations/redirect-page-urls.js.map +0 -1
  712. package/dist/esm/lib/stack-app/apps/implementations/server-app-impl.js.map +0 -1
  713. package/dist/esm/lib/stack-app/apps/implementations/session-refresh-subscription.js.map +0 -1
  714. package/dist/esm/lib/stack-app/apps/implementations/session-refresh-subscription.test.js.map +0 -1
  715. package/dist/esm/lib/stack-app/apps/implementations/session-replay.js.map +0 -1
  716. package/dist/esm/lib/stack-app/apps/implementations/session-replay.test.js.map +0 -1
  717. package/dist/esm/lib/stack-app/apps/interfaces/admin-app.js.map +0 -1
  718. package/dist/esm/lib/stack-app/apps/interfaces/client-app.js.map +0 -1
  719. package/dist/esm/lib/stack-app/apps/interfaces/server-app.js.map +0 -1
  720. package/dist/esm/lib/stack-app/common.js +0 -7
  721. package/dist/esm/lib/stack-app/common.js.map +0 -1
  722. package/dist/esm/lib/stack-app/contact-channels/index.js.map +0 -1
  723. package/dist/esm/lib/stack-app/email-templates/index.js.map +0 -1
  724. package/dist/esm/lib/stack-app/internal-api-keys/index.js.map +0 -1
  725. package/dist/esm/lib/stack-app/permissions/index.js.map +0 -1
  726. package/dist/esm/lib/stack-app/projects/index.js.map +0 -1
  727. package/dist/esm/lib/stack-app/teams/index.js.map +0 -1
  728. package/dist/esm/lib/stack-app/url-targets.js.map +0 -1
  729. package/dist/esm/lib/stack-app/url-targets.test.js.map +0 -1
  730. package/dist/esm/lib/stack-app/users/index.js.map +0 -1
  731. package/dist/esm/providers/stack-context.d.ts +0 -11
  732. package/dist/esm/providers/stack-context.d.ts.map +0 -1
  733. package/dist/esm/providers/stack-context.js +0 -12
  734. package/dist/esm/providers/stack-context.js.map +0 -1
  735. package/dist/esm/providers/stack-provider-client.d.ts.map +0 -1
  736. package/dist/esm/providers/stack-provider-client.js +0 -30
  737. package/dist/esm/providers/stack-provider-client.js.map +0 -1
  738. package/dist/esm/providers/stack-provider.d.ts.map +0 -1
  739. package/dist/esm/providers/stack-provider.js.map +0 -1
  740. package/dist/lib/stack-app/api-keys/index.d.ts.map +0 -1
  741. package/dist/lib/stack-app/api-keys/index.js.map +0 -1
  742. package/dist/lib/stack-app/apps/implementations/admin-app-impl.d.ts.map +0 -1
  743. package/dist/lib/stack-app/apps/implementations/admin-app-impl.js.map +0 -1
  744. package/dist/lib/stack-app/apps/implementations/client-app-impl.cross-domain.test.js.map +0 -1
  745. package/dist/lib/stack-app/apps/implementations/client-app-impl.d.ts.map +0 -1
  746. package/dist/lib/stack-app/apps/implementations/client-app-impl.js.map +0 -1
  747. package/dist/lib/stack-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +0 -1
  748. package/dist/lib/stack-app/apps/implementations/common.d.ts.map +0 -1
  749. package/dist/lib/stack-app/apps/implementations/common.js.map +0 -1
  750. package/dist/lib/stack-app/apps/implementations/event-tracker.d.ts.map +0 -1
  751. package/dist/lib/stack-app/apps/implementations/event-tracker.js.map +0 -1
  752. package/dist/lib/stack-app/apps/implementations/event-tracker.test.js.map +0 -1
  753. package/dist/lib/stack-app/apps/implementations/index.d.ts +0 -9
  754. package/dist/lib/stack-app/apps/implementations/index.d.ts.map +0 -1
  755. package/dist/lib/stack-app/apps/implementations/index.js +0 -31
  756. package/dist/lib/stack-app/apps/implementations/index.js.map +0 -1
  757. package/dist/lib/stack-app/apps/implementations/redirect-page-urls.d.ts.map +0 -1
  758. package/dist/lib/stack-app/apps/implementations/redirect-page-urls.js.map +0 -1
  759. package/dist/lib/stack-app/apps/implementations/server-app-impl.d.ts.map +0 -1
  760. package/dist/lib/stack-app/apps/implementations/server-app-impl.js.map +0 -1
  761. package/dist/lib/stack-app/apps/implementations/session-refresh-subscription.d.ts.map +0 -1
  762. package/dist/lib/stack-app/apps/implementations/session-refresh-subscription.js.map +0 -1
  763. package/dist/lib/stack-app/apps/implementations/session-refresh-subscription.test.js.map +0 -1
  764. package/dist/lib/stack-app/apps/implementations/session-replay.d.ts.map +0 -1
  765. package/dist/lib/stack-app/apps/implementations/session-replay.js.map +0 -1
  766. package/dist/lib/stack-app/apps/implementations/session-replay.test.js.map +0 -1
  767. package/dist/lib/stack-app/apps/interfaces/admin-app.d.ts.map +0 -1
  768. package/dist/lib/stack-app/apps/interfaces/admin-app.js.map +0 -1
  769. package/dist/lib/stack-app/apps/interfaces/client-app.d.ts.map +0 -1
  770. package/dist/lib/stack-app/apps/interfaces/client-app.js.map +0 -1
  771. package/dist/lib/stack-app/apps/interfaces/server-app.d.ts.map +0 -1
  772. package/dist/lib/stack-app/apps/interfaces/server-app.js.map +0 -1
  773. package/dist/lib/stack-app/common.d.ts.map +0 -1
  774. package/dist/lib/stack-app/common.js +0 -9
  775. package/dist/lib/stack-app/common.js.map +0 -1
  776. package/dist/lib/stack-app/connected-accounts/index.d.ts.map +0 -1
  777. package/dist/lib/stack-app/contact-channels/index.d.ts.map +0 -1
  778. package/dist/lib/stack-app/contact-channels/index.js.map +0 -1
  779. package/dist/lib/stack-app/customers/index.d.ts.map +0 -1
  780. package/dist/lib/stack-app/data-vault/index.d.ts.map +0 -1
  781. package/dist/lib/stack-app/email/index.d.ts.map +0 -1
  782. package/dist/lib/stack-app/email-templates/index.d.ts.map +0 -1
  783. package/dist/lib/stack-app/email-templates/index.js.map +0 -1
  784. package/dist/lib/stack-app/internal-api-keys/index.d.ts.map +0 -1
  785. package/dist/lib/stack-app/internal-api-keys/index.js.map +0 -1
  786. package/dist/lib/stack-app/notification-categories/index.d.ts.map +0 -1
  787. package/dist/lib/stack-app/permissions/index.d.ts.map +0 -1
  788. package/dist/lib/stack-app/permissions/index.js.map +0 -1
  789. package/dist/lib/stack-app/project-configs/index.d.ts.map +0 -1
  790. package/dist/lib/stack-app/projects/index.d.ts.map +0 -1
  791. package/dist/lib/stack-app/projects/index.js.map +0 -1
  792. package/dist/lib/stack-app/session-replays/index.d.ts.map +0 -1
  793. package/dist/lib/stack-app/teams/index.d.ts.map +0 -1
  794. package/dist/lib/stack-app/teams/index.js.map +0 -1
  795. package/dist/lib/stack-app/url-targets.d.ts.map +0 -1
  796. package/dist/lib/stack-app/url-targets.js.map +0 -1
  797. package/dist/lib/stack-app/url-targets.test.js.map +0 -1
  798. package/dist/lib/stack-app/users/index.d.ts.map +0 -1
  799. package/dist/lib/stack-app/users/index.js.map +0 -1
  800. package/dist/providers/stack-context.d.ts +0 -11
  801. package/dist/providers/stack-context.d.ts.map +0 -1
  802. package/dist/providers/stack-context.js +0 -15
  803. package/dist/providers/stack-context.js.map +0 -1
  804. package/dist/providers/stack-provider-client.d.ts.map +0 -1
  805. package/dist/providers/stack-provider-client.js.map +0 -1
  806. package/dist/providers/stack-provider.d.ts.map +0 -1
  807. package/dist/providers/stack-provider.js.map +0 -1
  808. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.cross-domain.test.d.ts +0 -0
  809. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.oauth-prefetch.test.d.ts +0 -0
  810. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.test.d.ts +0 -0
  811. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.test.d.ts +0 -0
  812. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.test.d.ts +0 -0
  813. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/index.d.ts +0 -0
  814. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/index.js +0 -0
  815. /package/dist/esm/lib/{stack-app → hexclave-app}/connected-accounts/index.js +0 -0
  816. /package/dist/esm/lib/{stack-app → hexclave-app}/customers/index.js +0 -0
  817. /package/dist/esm/lib/{stack-app → hexclave-app}/data-vault/index.js +0 -0
  818. /package/dist/esm/lib/{stack-app → hexclave-app}/email/index.js +0 -0
  819. /package/dist/esm/lib/{stack-app → hexclave-app}/notification-categories/index.js +0 -0
  820. /package/dist/esm/lib/{stack-app → hexclave-app}/project-configs/index.js +0 -0
  821. /package/dist/esm/lib/{stack-app → hexclave-app}/session-replays/index.js +0 -0
  822. /package/dist/esm/lib/{stack-app → hexclave-app}/url-targets.test.d.ts +0 -0
  823. /package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.cross-domain.test.d.ts +0 -0
  824. /package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.oauth-prefetch.test.d.ts +0 -0
  825. /package/dist/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.test.d.ts +0 -0
  826. /package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.test.d.ts +0 -0
  827. /package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.test.d.ts +0 -0
  828. /package/dist/lib/{stack-app → hexclave-app}/apps/index.d.ts +0 -0
  829. /package/dist/lib/{stack-app → hexclave-app}/apps/index.js +0 -0
  830. /package/dist/lib/{stack-app → hexclave-app}/connected-accounts/index.js +0 -0
  831. /package/dist/lib/{stack-app → hexclave-app}/customers/index.js +0 -0
  832. /package/dist/lib/{stack-app → hexclave-app}/data-vault/index.js +0 -0
  833. /package/dist/lib/{stack-app → hexclave-app}/email/index.js +0 -0
  834. /package/dist/lib/{stack-app → hexclave-app}/notification-categories/index.js +0 -0
  835. /package/dist/lib/{stack-app → hexclave-app}/project-configs/index.js +0 -0
  836. /package/dist/lib/{stack-app → hexclave-app}/session-replays/index.js +0 -0
  837. /package/dist/lib/{stack-app → hexclave-app}/url-targets.test.d.ts +0 -0
@@ -0,0 +1,2758 @@
1
+
2
+ //===========================================
3
+ // THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template
4
+ //===========================================
5
+ // Theme-aware CSS for the dev tool indicator
6
+ // Respects Stack theme (data-stack-theme attribute) and system prefers-color-scheme
7
+ // Uses .hexclave-devtool scope to avoid conflicts with host app styles
8
+
9
+ export const devToolCSS = `
10
+ .hexclave-devtool {
11
+ --sdt-bg: #0a0a0b;
12
+ --sdt-bg-elevated: #141416;
13
+ --sdt-bg-hover: #1c1c1f;
14
+ --sdt-bg-active: #232326;
15
+ --sdt-bg-subtle: #111113;
16
+ --sdt-border: #2a2a2e;
17
+ --sdt-border-subtle: #1e1e22;
18
+ --sdt-text: #ececef;
19
+ --sdt-text-secondary: #8b8b93;
20
+ --sdt-text-tertiary: #5c5c66;
21
+ --sdt-accent: #6366f1;
22
+ --sdt-accent-hover: #818cf8;
23
+ --sdt-accent-muted: rgba(99, 102, 241, 0.15);
24
+ --sdt-success: #22c55e;
25
+ --sdt-success-muted: rgba(34, 197, 94, 0.15);
26
+ --sdt-warning: #eab308;
27
+ --sdt-warning-muted: rgba(234, 179, 8, 0.15);
28
+ --sdt-error: #ef4444;
29
+ --sdt-error-muted: rgba(239, 68, 68, 0.15);
30
+ --sdt-info: #3b82f6;
31
+ --sdt-info-muted: rgba(59, 130, 246, 0.15);
32
+ --sdt-overlay-bg: rgba(17, 17, 19, 0.92);
33
+ --sdt-radius: 8px;
34
+ --sdt-radius-sm: 4px;
35
+ --sdt-radius-lg: 12px;
36
+ --sdt-font: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
37
+ --sdt-font-mono: 'SF Mono', SFMono-Regular, ui-monospace, 'DejaVu Sans Mono', Menlo, Consolas, monospace;
38
+ --sdt-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.05);
39
+ --sdt-trigger-shadow: 0 4px 12px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.08);
40
+
41
+ all: initial;
42
+ font-family: var(--sdt-font);
43
+ color: var(--sdt-text);
44
+ font-size: 13px;
45
+ line-height: 1.5;
46
+ -webkit-font-smoothing: antialiased;
47
+ -moz-osx-font-smoothing: grayscale;
48
+ box-sizing: border-box;
49
+ }
50
+
51
+ .hexclave-devtool *, .hexclave-devtool *::before, .hexclave-devtool *::after {
52
+ box-sizing: border-box;
53
+ }
54
+
55
+ /* Trigger pill */
56
+ .hexclave-devtool .sdt-trigger {
57
+ position: fixed;
58
+ z-index: 2147483647;
59
+ display: flex;
60
+ align-items: center;
61
+ justify-content: center;
62
+ width: 36px;
63
+ height: 36px;
64
+ padding: 0;
65
+ background: var(--sdt-bg-elevated);
66
+ border: 1px solid var(--sdt-border);
67
+ border-radius: 10px;
68
+ cursor: grab;
69
+ box-shadow: var(--sdt-trigger-shadow);
70
+ transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
71
+ user-select: none;
72
+ touch-action: none;
73
+ }
74
+
75
+ .hexclave-devtool .sdt-trigger-position-animated {
76
+ transition: left 0.14s cubic-bezier(0.2, 0.8, 0.2, 1), top 0.14s cubic-bezier(0.2, 0.8, 0.2, 1), background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
77
+ }
78
+
79
+ .hexclave-devtool .sdt-trigger:hover {
80
+ background: var(--sdt-bg-hover);
81
+ border-color: var(--sdt-accent);
82
+ box-shadow: var(--sdt-trigger-shadow), 0 0 0 1px var(--sdt-accent);
83
+ }
84
+
85
+ .hexclave-devtool .sdt-trigger:active {
86
+ cursor: grabbing;
87
+ }
88
+
89
+ .hexclave-devtool .sdt-trigger-logo {
90
+ width: 22px;
91
+ height: 22px;
92
+ border-radius: 6px;
93
+ background: var(--sdt-accent);
94
+ display: flex;
95
+ align-items: center;
96
+ justify-content: center;
97
+ color: white;
98
+ line-height: 0;
99
+ }
100
+
101
+ /* Panel overlay */
102
+ .hexclave-devtool .sdt-panel {
103
+ position: fixed;
104
+ bottom: 60px;
105
+ right: 16px;
106
+ z-index: 99998;
107
+ width: 800px;
108
+ max-width: calc(100vw - 32px);
109
+ height: 520px;
110
+ max-height: calc(100vh - 80px);
111
+ background: var(--sdt-bg);
112
+ border: 1px solid var(--sdt-border);
113
+ border-radius: var(--sdt-radius-lg);
114
+ box-shadow: var(--sdt-shadow);
115
+ display: flex;
116
+ flex-direction: column;
117
+ overflow: visible;
118
+ }
119
+
120
+ .hexclave-devtool .sdt-panel-geometry-animated {
121
+ transition: width 0.18s cubic-bezier(0.2, 0.8, 0.2, 1),
122
+ height 0.18s cubic-bezier(0.2, 0.8, 0.2, 1),
123
+ right 0.18s cubic-bezier(0.2, 0.8, 0.2, 1),
124
+ bottom 0.18s cubic-bezier(0.2, 0.8, 0.2, 1),
125
+ border-radius 0.18s cubic-bezier(0.2, 0.8, 0.2, 1),
126
+ border-color 0.18s cubic-bezier(0.2, 0.8, 0.2, 1);
127
+ }
128
+
129
+ .hexclave-devtool .sdt-panel-fullscreen {
130
+ right: 0;
131
+ bottom: 0;
132
+ width: 100vw;
133
+ max-width: none;
134
+ height: 100vh;
135
+ max-height: none;
136
+ border: none;
137
+ border-radius: 0;
138
+ }
139
+
140
+ .hexclave-devtool .sdt-panel-inner {
141
+ display: flex;
142
+ flex-direction: column;
143
+ width: 100%;
144
+ height: 100%;
145
+ overflow: hidden;
146
+ border-radius: var(--sdt-radius-lg);
147
+ animation: sdt-panel-enter 0.2s ease-out;
148
+ }
149
+
150
+ .hexclave-devtool .sdt-panel-fullscreen .sdt-panel-inner {
151
+ border-radius: 0;
152
+ }
153
+
154
+ .hexclave-devtool .sdt-panel-fullscreen .sdt-resize-handle {
155
+ display: none;
156
+ }
157
+
158
+ @keyframes sdt-panel-enter {
159
+ from {
160
+ opacity: 0;
161
+ transform: scale(0.95) translateY(8px);
162
+ }
163
+ to {
164
+ opacity: 1;
165
+ transform: scale(1) translateY(0);
166
+ }
167
+ }
168
+
169
+ .hexclave-devtool .sdt-panel-exiting {
170
+ animation: sdt-panel-exit 0.15s ease-in forwards;
171
+ }
172
+
173
+ @keyframes sdt-panel-exit {
174
+ from {
175
+ opacity: 1;
176
+ transform: scale(1) translateY(0);
177
+ }
178
+ to {
179
+ opacity: 0;
180
+ transform: scale(0.95) translateY(8px);
181
+ }
182
+ }
183
+
184
+ /* Tab bar */
185
+ .hexclave-devtool .sdt-tabbar {
186
+ position: relative;
187
+ display: flex;
188
+ align-items: center;
189
+ height: 44px;
190
+ padding: 0 8px;
191
+ background: var(--sdt-bg-subtle);
192
+ border-bottom: 1px solid var(--sdt-border);
193
+ flex-shrink: 0;
194
+ gap: 2px;
195
+ overflow-x: auto;
196
+ }
197
+
198
+ .hexclave-devtool .sdt-panel-fullscreen .sdt-tabbar {
199
+ position: absolute;
200
+ top: 8px;
201
+ left: 8px;
202
+ right: 8px;
203
+ z-index: 2;
204
+ background: var(--sdt-overlay-bg);
205
+ border: 1px solid var(--sdt-border);
206
+ border-radius: var(--sdt-radius);
207
+ box-shadow: var(--sdt-trigger-shadow);
208
+ }
209
+
210
+ .hexclave-devtool .sdt-tab-indicator {
211
+ position: absolute;
212
+ top: 6px;
213
+ left: 0;
214
+ height: 32px;
215
+ background: var(--sdt-bg-active);
216
+ border-radius: var(--sdt-radius);
217
+ transition: transform 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94),
218
+ width 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
219
+ pointer-events: none;
220
+ z-index: 0;
221
+ }
222
+
223
+ .hexclave-devtool .sdt-tab {
224
+ position: relative;
225
+ z-index: 1;
226
+ display: flex;
227
+ align-items: center;
228
+ gap: 6px;
229
+ height: 32px;
230
+ padding: 0 12px;
231
+ background: transparent;
232
+ border: none;
233
+ border-radius: var(--sdt-radius);
234
+ cursor: pointer;
235
+ font-family: var(--sdt-font);
236
+ font-size: 12px;
237
+ font-weight: 500;
238
+ color: var(--sdt-text-secondary);
239
+ transition: color 0.15s ease;
240
+ white-space: nowrap;
241
+ outline: none;
242
+ }
243
+
244
+ .hexclave-devtool .sdt-tab:hover {
245
+ color: var(--sdt-text);
246
+ }
247
+
248
+ .hexclave-devtool .sdt-tab[data-active="true"] {
249
+ color: var(--sdt-text);
250
+ }
251
+
252
+ .hexclave-devtool .sdt-tab-icon {
253
+ width: 14px;
254
+ height: 14px;
255
+ display: flex;
256
+ align-items: center;
257
+ justify-content: center;
258
+ flex-shrink: 0;
259
+ }
260
+
261
+ .hexclave-devtool .sdt-tabbar-spacer {
262
+ flex: 1;
263
+ }
264
+
265
+ .hexclave-devtool .sdt-tabbar-actions {
266
+ display: flex;
267
+ align-items: center;
268
+ gap: 4px;
269
+ flex-shrink: 0;
270
+ }
271
+
272
+ .hexclave-devtool .sdt-docs-link {
273
+ display: inline-flex;
274
+ align-items: center;
275
+ gap: 4px;
276
+ height: 28px;
277
+ padding: 0 8px;
278
+ color: var(--sdt-text-secondary);
279
+ border-radius: var(--sdt-radius-sm);
280
+ font-family: var(--sdt-font);
281
+ font-size: 12px;
282
+ font-weight: 500;
283
+ line-height: 1;
284
+ text-decoration: none;
285
+ white-space: nowrap;
286
+ transition: color 0.15s ease, background 0.15s ease;
287
+ }
288
+
289
+ .hexclave-devtool .sdt-docs-link:hover {
290
+ color: var(--sdt-text);
291
+ background: var(--sdt-bg-hover);
292
+ }
293
+
294
+ .hexclave-devtool .sdt-docs-link-icon {
295
+ display: flex;
296
+ width: 13px;
297
+ height: 13px;
298
+ line-height: 0;
299
+ }
300
+
301
+ .hexclave-devtool .sdt-close-btn {
302
+ display: flex;
303
+ align-items: center;
304
+ justify-content: center;
305
+ width: 28px;
306
+ height: 28px;
307
+ background: transparent;
308
+ border: none;
309
+ border-radius: var(--sdt-radius-sm);
310
+ cursor: pointer;
311
+ color: var(--sdt-text-tertiary);
312
+ transition: all 0.15s ease;
313
+ flex-shrink: 0;
314
+ }
315
+
316
+ .hexclave-devtool .sdt-close-btn:hover {
317
+ color: var(--sdt-text);
318
+ background: var(--sdt-bg-hover);
319
+ }
320
+
321
+ /* Tab content area */
322
+ .hexclave-devtool .sdt-content {
323
+ flex: 1;
324
+ position: relative;
325
+ overflow: hidden;
326
+ min-height: 0;
327
+ }
328
+
329
+ .hexclave-devtool .sdt-panel-fullscreen .sdt-content {
330
+ position: absolute;
331
+ inset: 0;
332
+ width: 100%;
333
+ height: 100%;
334
+ }
335
+
336
+ .hexclave-devtool .sdt-tab-layers {
337
+ position: absolute;
338
+ inset: 0;
339
+ }
340
+
341
+ .hexclave-devtool .sdt-tab-pane {
342
+ position: absolute;
343
+ inset: 0;
344
+ overflow-y: auto;
345
+ overflow-x: hidden;
346
+ padding: 16px;
347
+ visibility: hidden;
348
+ pointer-events: none;
349
+ }
350
+
351
+ .hexclave-devtool .sdt-tab-pane-iframe {
352
+ padding: 0;
353
+ overflow: hidden;
354
+ }
355
+
356
+ .hexclave-devtool .sdt-tab-pane-active {
357
+ visibility: visible;
358
+ pointer-events: auto;
359
+ animation: sdt-tab-fade-in 0.15s ease-out;
360
+ }
361
+
362
+ @keyframes sdt-tab-fade-in {
363
+ from {
364
+ opacity: 0;
365
+ transform: translateY(6px);
366
+ }
367
+ to {
368
+ opacity: 1;
369
+ transform: translateY(0);
370
+ }
371
+ }
372
+
373
+ .hexclave-devtool .sdt-tab-pane::-webkit-scrollbar {
374
+ width: 6px;
375
+ }
376
+
377
+ .hexclave-devtool .sdt-tab-pane::-webkit-scrollbar-track {
378
+ background: transparent;
379
+ }
380
+
381
+ .hexclave-devtool .sdt-tab-pane::-webkit-scrollbar-thumb {
382
+ background: var(--sdt-border);
383
+ border-radius: 3px;
384
+ }
385
+
386
+ /* ===== Overview tab — single column ===== */
387
+
388
+ .hexclave-devtool .sdt-ov {
389
+ display: flex;
390
+ flex-direction: column;
391
+ gap: 10px;
392
+ max-width: 660px;
393
+ margin: 0 auto;
394
+ }
395
+
396
+ /* Card base */
397
+ .hexclave-devtool .sdt-ov-card {
398
+ background: var(--sdt-bg-elevated);
399
+ border: 1px solid var(--sdt-border-subtle);
400
+ border-radius: 12px;
401
+ padding: 16px;
402
+ display: flex;
403
+ flex-direction: column;
404
+ gap: 0;
405
+ transition: box-shadow 0.2s ease, border-color 0.2s ease;
406
+ overflow: hidden;
407
+ min-width: 0;
408
+ }
409
+
410
+ .hexclave-devtool .sdt-ov-card-hero {
411
+ background: linear-gradient(135deg, rgba(99,102,241,0.04) 0%, transparent 50%), var(--sdt-bg-elevated);
412
+ }
413
+
414
+ .hexclave-devtool .sdt-ov-label {
415
+ font-size: 9px;
416
+ font-weight: 700;
417
+ text-transform: uppercase;
418
+ letter-spacing: 1.2px;
419
+ color: var(--sdt-text-tertiary);
420
+ margin-bottom: 10px;
421
+ }
422
+
423
+ .hexclave-devtool .sdt-ov-user-row {
424
+ display: flex;
425
+ align-items: center;
426
+ gap: 14px;
427
+ margin-bottom: 14px;
428
+ }
429
+
430
+ .hexclave-devtool .sdt-ov-avatar {
431
+ width: 52px;
432
+ height: 52px;
433
+ border-radius: 50%;
434
+ background: var(--sdt-bg-hover);
435
+ display: flex;
436
+ align-items: center;
437
+ justify-content: center;
438
+ font-size: 20px;
439
+ font-weight: 700;
440
+ color: var(--sdt-text-tertiary);
441
+ flex-shrink: 0;
442
+ border: 2px solid var(--sdt-border-subtle);
443
+ overflow: hidden;
444
+ }
445
+
446
+ .hexclave-devtool .sdt-ov-avatar-active {
447
+ background: var(--sdt-accent-muted);
448
+ color: var(--sdt-accent);
449
+ border-color: rgba(99,102,241,0.3);
450
+ }
451
+
452
+ .hexclave-devtool .sdt-ov-avatar img {
453
+ width: 100%;
454
+ height: 100%;
455
+ object-fit: cover;
456
+ border-radius: 50%;
457
+ }
458
+
459
+ .hexclave-devtool .sdt-ov-user-meta {
460
+ min-width: 0;
461
+ flex: 1;
462
+ }
463
+
464
+ .hexclave-devtool .sdt-ov-user-name {
465
+ font-size: 16px;
466
+ font-weight: 700;
467
+ color: var(--sdt-text);
468
+ line-height: 1.2;
469
+ overflow: hidden;
470
+ text-overflow: ellipsis;
471
+ white-space: nowrap;
472
+ }
473
+
474
+ .hexclave-devtool .sdt-ov-user-email {
475
+ font-size: 12px;
476
+ font-family: var(--sdt-font-mono);
477
+ color: var(--sdt-text-secondary);
478
+ margin-top: 2px;
479
+ overflow: hidden;
480
+ text-overflow: ellipsis;
481
+ white-space: nowrap;
482
+ }
483
+
484
+ .hexclave-devtool .sdt-ov-auth-indicator {
485
+ display: flex;
486
+ align-items: center;
487
+ gap: 5px;
488
+ margin-top: 5px;
489
+ font-size: 11px;
490
+ font-weight: 600;
491
+ color: var(--sdt-success);
492
+ }
493
+
494
+ .hexclave-devtool .sdt-ov-auth-indicator::before {
495
+ content: '';
496
+ width: 6px;
497
+ height: 6px;
498
+ border-radius: 50%;
499
+ background: var(--sdt-success);
500
+ box-shadow: 0 0 6px rgba(34,197,94,0.5);
501
+ }
502
+
503
+ /* Actions */
504
+ .hexclave-devtool .sdt-ov-actions {
505
+ display: flex;
506
+ flex-wrap: wrap;
507
+ gap: 6px;
508
+ margin-top: 4px;
509
+ }
510
+
511
+ .hexclave-devtool .sdt-ov-btn {
512
+ height: 30px;
513
+ padding: 0 12px;
514
+ border-radius: 6px;
515
+ border: none;
516
+ font-size: 12px;
517
+ font-weight: 600;
518
+ font-family: var(--sdt-font);
519
+ cursor: pointer;
520
+ transition: all 0.15s ease;
521
+ white-space: nowrap;
522
+ }
523
+ .hexclave-devtool .sdt-ov-btn:disabled { opacity: 0.4; cursor: not-allowed; }
524
+
525
+ .hexclave-devtool .sdt-ov-btn-primary {
526
+ background: var(--sdt-accent);
527
+ color: #fff;
528
+ }
529
+ .hexclave-devtool .sdt-ov-btn-primary:hover { background: var(--sdt-accent-hover); }
530
+
531
+ .hexclave-devtool .sdt-ov-btn-secondary {
532
+ background: var(--sdt-bg-hover);
533
+ color: var(--sdt-text);
534
+ }
535
+ .hexclave-devtool .sdt-ov-btn-secondary:hover { background: var(--sdt-bg-active); }
536
+
537
+ .hexclave-devtool .sdt-ov-btn-danger {
538
+ background: var(--sdt-error-muted);
539
+ color: var(--sdt-error);
540
+ border: 1px solid rgba(239, 68, 68, 0.15);
541
+ }
542
+ .hexclave-devtool .sdt-ov-btn-danger:hover { background: rgba(239, 68, 68, 0.2); }
543
+
544
+ .hexclave-devtool .sdt-ov-btn-wide { flex: 1; }
545
+
546
+ .hexclave-devtool .sdt-ov-email-input {
547
+ display: flex;
548
+ flex: 1 1 180px;
549
+ border: 1px solid var(--sdt-border-subtle);
550
+ border-radius: 6px;
551
+ overflow: hidden;
552
+ background: var(--sdt-bg);
553
+ transition: border-color 0.15s ease;
554
+ }
555
+ .hexclave-devtool .sdt-ov-email-input:focus-within {
556
+ border-color: var(--sdt-accent);
557
+ box-shadow: 0 0 0 2px var(--sdt-accent-muted);
558
+ }
559
+ .hexclave-devtool .sdt-ov-email-input input {
560
+ flex: 1;
561
+ height: 28px;
562
+ padding: 0 8px;
563
+ background: transparent;
564
+ border: none;
565
+ color: var(--sdt-text);
566
+ font-size: 11px;
567
+ font-family: var(--sdt-font);
568
+ outline: none;
569
+ min-width: 0;
570
+ }
571
+ .hexclave-devtool .sdt-ov-email-input input::placeholder { color: var(--sdt-text-tertiary); }
572
+ .hexclave-devtool .sdt-ov-email-input button {
573
+ width: 28px;
574
+ height: 28px;
575
+ display: flex;
576
+ align-items: center;
577
+ justify-content: center;
578
+ border: none;
579
+ border-left: 1px solid var(--sdt-border-subtle);
580
+ background: transparent;
581
+ color: var(--sdt-accent);
582
+ cursor: pointer;
583
+ flex-shrink: 0;
584
+ font-family: var(--sdt-font);
585
+ }
586
+ .hexclave-devtool .sdt-ov-email-input button:hover { background: var(--sdt-accent-muted); }
587
+ .hexclave-devtool .sdt-ov-email-input button:disabled { opacity: 0.3; cursor: not-allowed; }
588
+
589
+ .hexclave-devtool .sdt-ov-toast {
590
+ font-size: 11px;
591
+ padding: 5px 10px;
592
+ border-radius: 6px;
593
+ margin-top: 8px;
594
+ line-height: 1.4;
595
+ }
596
+ .hexclave-devtool .sdt-ov-toast-success { background: var(--sdt-success-muted); color: var(--sdt-success); }
597
+ .hexclave-devtool .sdt-ov-toast-error { background: var(--sdt-error-muted); color: var(--sdt-error); }
598
+
599
+ /* --- Auth methods card --- */
600
+ .hexclave-devtool .sdt-ov-card-auth {
601
+ padding: 14px 16px;
602
+ }
603
+
604
+ .hexclave-devtool .sdt-ov-auth-grid {
605
+ display: flex;
606
+ flex-wrap: wrap;
607
+ gap: 4px;
608
+ }
609
+
610
+ .hexclave-devtool .sdt-ov-method {
611
+ display: flex;
612
+ align-items: center;
613
+ gap: 5px;
614
+ padding: 4px 8px;
615
+ border-radius: 6px;
616
+ font-size: 11px;
617
+ font-weight: 600;
618
+ border: 1px solid var(--sdt-border-subtle);
619
+ background: var(--sdt-bg);
620
+ transition: all 0.15s ease;
621
+ }
622
+
623
+ .hexclave-devtool .sdt-ov-method-on {
624
+ color: var(--sdt-text);
625
+ background: var(--sdt-success-muted);
626
+ border-color: rgba(34, 197, 94, 0.12);
627
+ }
628
+
629
+ .hexclave-devtool .sdt-ov-method-off {
630
+ color: var(--sdt-text-tertiary);
631
+ opacity: 0.5;
632
+ border-style: dashed;
633
+ }
634
+
635
+ .hexclave-devtool .sdt-ov-method-oauth {
636
+ text-transform: capitalize;
637
+ }
638
+
639
+ .hexclave-devtool .sdt-ov-method-warn {
640
+ color: var(--sdt-warning);
641
+ border-color: rgba(234, 179, 8, 0.2);
642
+ }
643
+
644
+ .hexclave-devtool .sdt-ov-skeleton-pill {
645
+ width: 64px;
646
+ height: 26px;
647
+ border-radius: 6px;
648
+ background: var(--sdt-bg-hover);
649
+ border: 1px solid var(--sdt-border-subtle);
650
+ animation: sdt-ov-shimmer 1.5s ease-in-out infinite;
651
+ }
652
+
653
+ @keyframes sdt-ov-shimmer {
654
+ 0%, 100% { opacity: 0.4; }
655
+ 50% { opacity: 0.7; }
656
+ }
657
+
658
+ /* --- Setup checklist card (only shown when something is incomplete) --- */
659
+ .hexclave-devtool .sdt-ov-card-checks {
660
+ padding: 14px 16px;
661
+ border-color: rgba(234, 179, 8, 0.25);
662
+ }
663
+
664
+ .hexclave-devtool .sdt-ov-checks-header {
665
+ display: flex;
666
+ align-items: center;
667
+ justify-content: space-between;
668
+ gap: 8px;
669
+ margin-bottom: 8px;
670
+ }
671
+
672
+ .hexclave-devtool .sdt-ov-checks-badge {
673
+ font-size: 10px;
674
+ font-weight: 700;
675
+ padding: 1px 6px;
676
+ border-radius: 4px;
677
+ }
678
+
679
+ .hexclave-devtool .sdt-ov-checks-badge-ok {
680
+ background: var(--sdt-success-muted);
681
+ color: var(--sdt-success);
682
+ }
683
+
684
+ .hexclave-devtool .sdt-ov-checks-badge-warn {
685
+ background: var(--sdt-warning-muted);
686
+ color: var(--sdt-warning);
687
+ }
688
+
689
+ .hexclave-devtool .sdt-ov-checks-bar {
690
+ height: 3px;
691
+ border-radius: 2px;
692
+ background: var(--sdt-border-subtle);
693
+ margin-bottom: 10px;
694
+ overflow: hidden;
695
+ }
696
+
697
+ .hexclave-devtool .sdt-ov-checks-bar-fill {
698
+ height: 100%;
699
+ border-radius: 2px;
700
+ background: var(--sdt-warning);
701
+ transition: width 0.4s ease;
702
+ }
703
+
704
+ .hexclave-devtool .sdt-ov-setup-row {
705
+ display: flex;
706
+ align-items: center;
707
+ gap: 8px;
708
+ padding: 6px 0;
709
+ font-size: 12px;
710
+ border-bottom: 1px solid var(--sdt-border-subtle);
711
+ }
712
+
713
+ .hexclave-devtool .sdt-ov-setup-row:last-child { border-bottom: none; }
714
+
715
+ .hexclave-devtool .sdt-ov-setup-dot {
716
+ width: 7px;
717
+ height: 7px;
718
+ border-radius: 50%;
719
+ flex-shrink: 0;
720
+ }
721
+
722
+ .hexclave-devtool .sdt-ov-setup-dot-ok { background: var(--sdt-success); }
723
+ .hexclave-devtool .sdt-ov-setup-dot-warn { background: var(--sdt-warning); }
724
+
725
+ .hexclave-devtool .sdt-ov-setup-label {
726
+ color: var(--sdt-text);
727
+ font-size: 12px;
728
+ }
729
+
730
+ .hexclave-devtool .sdt-ov-setup-hint {
731
+ margin-left: auto;
732
+ font-size: 11px;
733
+ color: var(--sdt-text-tertiary);
734
+ }
735
+
736
+ /* Status badges (shared across tabs) */
737
+ .hexclave-devtool .sdt-badge {
738
+ display: inline-flex;
739
+ align-items: center;
740
+ gap: 4px;
741
+ padding: 2px 8px;
742
+ border-radius: 10px;
743
+ font-size: 11px;
744
+ font-weight: 500;
745
+ }
746
+ .hexclave-devtool .sdt-badge-success { background: var(--sdt-success-muted); color: var(--sdt-success); }
747
+ .hexclave-devtool .sdt-badge-warning { background: var(--sdt-warning-muted); color: var(--sdt-warning); }
748
+ .hexclave-devtool .sdt-badge-error { background: var(--sdt-error-muted); color: var(--sdt-error); }
749
+ .hexclave-devtool .sdt-badge-info { background: var(--sdt-info-muted); color: var(--sdt-info); }
750
+
751
+ /* ===== Components / Pages tab ===== */
752
+
753
+ .hexclave-devtool .sdt-pg-layout {
754
+ display: flex;
755
+ height: calc(100% + 32px);
756
+ margin: -16px;
757
+ }
758
+
759
+ /* --- Sidebar --- */
760
+ .hexclave-devtool .sdt-pg-sidebar {
761
+ width: 250px;
762
+ flex-shrink: 0;
763
+ border-right: 1px solid var(--sdt-border);
764
+ display: flex;
765
+ flex-direction: column;
766
+ overflow: hidden;
767
+ }
768
+
769
+ .hexclave-devtool .sdt-pg-sidebar-head {
770
+ display: flex;
771
+ align-items: center;
772
+ gap: 6px;
773
+ padding: 12px 14px 8px;
774
+ flex-shrink: 0;
775
+ }
776
+
777
+ .hexclave-devtool .sdt-pg-sidebar-title {
778
+ font-size: 10px;
779
+ font-weight: 700;
780
+ letter-spacing: 1px;
781
+ text-transform: uppercase;
782
+ color: var(--sdt-text-tertiary);
783
+ }
784
+
785
+ .hexclave-devtool .sdt-pg-sidebar-count {
786
+ font-size: 10px;
787
+ font-weight: 700;
788
+ color: var(--sdt-text-tertiary);
789
+ background: var(--sdt-bg-active);
790
+ padding: 0 5px;
791
+ border-radius: 6px;
792
+ line-height: 18px;
793
+ }
794
+
795
+ .hexclave-devtool .sdt-pg-sidebar-warn {
796
+ margin-left: auto;
797
+ font-size: 10px;
798
+ font-weight: 700;
799
+ color: var(--sdt-warning);
800
+ background: var(--sdt-warning-muted);
801
+ padding: 0 6px;
802
+ border-radius: 6px;
803
+ line-height: 18px;
804
+ }
805
+
806
+ .hexclave-devtool .sdt-pg-list {
807
+ flex: 1;
808
+ overflow-y: auto;
809
+ padding: 0 6px 6px;
810
+ }
811
+
812
+ /* --- List item --- */
813
+ .hexclave-devtool .sdt-pg-item {
814
+ display: flex;
815
+ align-items: center;
816
+ gap: 8px;
817
+ padding: 7px 10px;
818
+ border-radius: 6px;
819
+ cursor: pointer;
820
+ transition: background 0.12s ease;
821
+ font-size: 13px;
822
+ color: var(--sdt-text);
823
+ position: relative;
824
+ }
825
+
826
+ .hexclave-devtool .sdt-pg-item:hover {
827
+ background: var(--sdt-bg-hover);
828
+ }
829
+
830
+ .hexclave-devtool .sdt-pg-item[data-selected="true"] {
831
+ background: var(--sdt-accent-muted);
832
+ }
833
+
834
+ .hexclave-devtool .sdt-pg-item[data-selected="true"] .sdt-pg-item-label {
835
+ color: var(--sdt-accent-hover);
836
+ font-weight: 600;
837
+ }
838
+
839
+ .hexclave-devtool .sdt-pg-item-dot {
840
+ width: 6px;
841
+ height: 6px;
842
+ border-radius: 50%;
843
+ flex-shrink: 0;
844
+ }
845
+ .hexclave-devtool .sdt-pg-item-dot-handler { background: var(--sdt-info); }
846
+ .hexclave-devtool .sdt-pg-item-dot-custom { background: var(--sdt-success); }
847
+ .hexclave-devtool .sdt-pg-item-dot-warn {
848
+ background: var(--sdt-warning);
849
+ box-shadow: 0 0 6px rgba(234, 179, 8, 0.4);
850
+ }
851
+
852
+ .hexclave-devtool .sdt-pg-item-label {
853
+ flex: 1;
854
+ min-width: 0;
855
+ overflow: hidden;
856
+ text-overflow: ellipsis;
857
+ white-space: nowrap;
858
+ }
859
+
860
+ /* --- Badges --- */
861
+ .hexclave-devtool .sdt-pg-badge {
862
+ display: inline-flex;
863
+ align-items: center;
864
+ height: 20px;
865
+ padding: 0 7px;
866
+ border-radius: 10px;
867
+ font-size: 10px;
868
+ font-weight: 600;
869
+ letter-spacing: 0.2px;
870
+ flex-shrink: 0;
871
+ line-height: 1;
872
+ }
873
+
874
+ .hexclave-devtool .sdt-pg-badge-outdated { background: var(--sdt-warning-muted); color: var(--sdt-warning); }
875
+
876
+ /* --- Empty state --- */
877
+ .hexclave-devtool .sdt-pg-empty {
878
+ flex: 1;
879
+ display: flex;
880
+ flex-direction: column;
881
+ align-items: center;
882
+ justify-content: center;
883
+ gap: 8px;
884
+ text-align: center;
885
+ }
886
+
887
+ .hexclave-devtool .sdt-pg-empty-icon {
888
+ color: var(--sdt-text-tertiary);
889
+ opacity: 0.35;
890
+ margin-bottom: 4px;
891
+ }
892
+
893
+ .hexclave-devtool .sdt-pg-empty-text {
894
+ font-size: 14px;
895
+ font-weight: 600;
896
+ color: var(--sdt-text-secondary);
897
+ }
898
+
899
+ .hexclave-devtool .sdt-pg-empty-sub {
900
+ font-size: 12px;
901
+ color: var(--sdt-text-tertiary);
902
+ }
903
+
904
+ /* --- Main panel --- */
905
+ .hexclave-devtool .sdt-pg-main {
906
+ flex: 1;
907
+ overflow-y: auto;
908
+ padding: 16px 18px;
909
+ display: flex;
910
+ flex-direction: column;
911
+ }
912
+
913
+ /* --- Detail view --- */
914
+ .hexclave-devtool .sdt-pg-detail {
915
+ display: flex;
916
+ flex-direction: column;
917
+ gap: 12px;
918
+ }
919
+
920
+ /* Header */
921
+ .hexclave-devtool .sdt-pg-header {
922
+ display: flex;
923
+ flex-direction: column;
924
+ gap: 4px;
925
+ }
926
+
927
+ .hexclave-devtool .sdt-pg-header-top {
928
+ display: flex;
929
+ align-items: center;
930
+ gap: 8px;
931
+ flex-wrap: wrap;
932
+ }
933
+
934
+ .hexclave-devtool .sdt-pg-title {
935
+ font-size: 15px;
936
+ font-weight: 700;
937
+ margin: 0;
938
+ color: var(--sdt-text);
939
+ }
940
+
941
+ .hexclave-devtool .sdt-pg-title-url {
942
+ min-width: 0;
943
+ max-width: 280px;
944
+ color: var(--sdt-text-tertiary);
945
+ font-family: var(--sdt-font-mono);
946
+ font-size: 11px;
947
+ overflow: hidden;
948
+ text-overflow: ellipsis;
949
+ white-space: nowrap;
950
+ text-decoration: none;
951
+ }
952
+
953
+ .hexclave-devtool .sdt-pg-title-url:hover {
954
+ color: var(--sdt-accent);
955
+ }
956
+
957
+ .hexclave-devtool .sdt-pg-subtitle {
958
+ font-size: 12px;
959
+ color: var(--sdt-text-secondary);
960
+ line-height: 1.4;
961
+ }
962
+
963
+ .hexclave-devtool .sdt-pg-code-inline {
964
+ display: flex;
965
+ align-items: center;
966
+ gap: 8px;
967
+ margin-top: 4px;
968
+ }
969
+
970
+ .hexclave-devtool .sdt-pg-code {
971
+ flex: 1;
972
+ min-width: 0;
973
+ font-family: var(--sdt-font-mono);
974
+ font-size: 12px;
975
+ color: var(--sdt-accent);
976
+ background: var(--sdt-bg-elevated);
977
+ border-radius: 6px;
978
+ padding: 6px 10px;
979
+ border: 1px solid var(--sdt-border-subtle);
980
+ }
981
+
982
+ /* --- Copy button --- */
983
+ .hexclave-devtool .sdt-pg-copy-btn {
984
+ height: 26px;
985
+ padding: 0 10px;
986
+ border-radius: 6px;
987
+ border: 1px solid var(--sdt-border);
988
+ background: var(--sdt-bg-active);
989
+ color: var(--sdt-text-secondary);
990
+ cursor: pointer;
991
+ font-size: 11px;
992
+ font-weight: 600;
993
+ font-family: var(--sdt-font);
994
+ transition: all 0.12s ease;
995
+ flex-shrink: 0;
996
+ white-space: nowrap;
997
+ }
998
+
999
+ .hexclave-devtool .sdt-pg-open-btn {
1000
+ display: inline-flex;
1001
+ align-items: center;
1002
+ justify-content: center;
1003
+ gap: 5px;
1004
+ height: 32px;
1005
+ padding: 0 12px;
1006
+ font-size: 12px;
1007
+ }
1008
+
1009
+ .hexclave-devtool .sdt-pg-open-btn svg {
1010
+ flex-shrink: 0;
1011
+ }
1012
+
1013
+ .hexclave-devtool .sdt-pg-copy-btn:hover {
1014
+ background: var(--sdt-bg-hover);
1015
+ color: var(--sdt-text);
1016
+ border-color: var(--sdt-accent);
1017
+ }
1018
+
1019
+ .hexclave-devtool .sdt-pg-copy-btn-ok {
1020
+ border-color: rgba(34, 197, 94, 0.3);
1021
+ color: var(--sdt-success);
1022
+ background: var(--sdt-success-muted);
1023
+ }
1024
+
1025
+ /* --- Update banner --- */
1026
+ .hexclave-devtool .sdt-pg-update-banner {
1027
+ display: flex;
1028
+ align-items: flex-start;
1029
+ gap: 10px;
1030
+ padding: 10px 14px;
1031
+ background: rgba(234, 179, 8, 0.08);
1032
+ border: 1px solid rgba(234, 179, 8, 0.3);
1033
+ border-radius: 10px;
1034
+ }
1035
+
1036
+ .hexclave-devtool .sdt-pg-update-banner-icon {
1037
+ width: 22px;
1038
+ height: 22px;
1039
+ border-radius: 50%;
1040
+ background: rgba(234, 179, 8, 0.2);
1041
+ color: var(--sdt-warning);
1042
+ display: flex;
1043
+ align-items: center;
1044
+ justify-content: center;
1045
+ font-size: 12px;
1046
+ font-weight: 800;
1047
+ flex-shrink: 0;
1048
+ margin-top: 1px;
1049
+ }
1050
+
1051
+ .hexclave-devtool .sdt-pg-update-banner-body {
1052
+ flex: 1;
1053
+ min-width: 0;
1054
+ }
1055
+
1056
+ .hexclave-devtool .sdt-pg-update-banner-title {
1057
+ font-size: 13px;
1058
+ font-weight: 700;
1059
+ color: var(--sdt-warning);
1060
+ margin-bottom: 2px;
1061
+ }
1062
+
1063
+ .hexclave-devtool .sdt-pg-update-banner-text {
1064
+ font-size: 12px;
1065
+ color: var(--sdt-text-secondary);
1066
+ line-height: 1.5;
1067
+ }
1068
+
1069
+ .hexclave-devtool .sdt-pg-update-banner-text strong {
1070
+ color: var(--sdt-text);
1071
+ font-weight: 600;
1072
+ }
1073
+
1074
+ /* --- Sections (changelog, prompt) --- */
1075
+ .hexclave-devtool .sdt-pg-section {
1076
+ border: 1px solid var(--sdt-border-subtle);
1077
+ border-radius: 10px;
1078
+ padding: 12px 14px;
1079
+ background: var(--sdt-bg-elevated);
1080
+ }
1081
+
1082
+ .hexclave-devtool .sdt-pg-section-warn {
1083
+ border-color: rgba(234, 179, 8, 0.25);
1084
+ background: rgba(234, 179, 8, 0.03);
1085
+ }
1086
+
1087
+ .hexclave-devtool .sdt-pg-section-label {
1088
+ font-size: 12px;
1089
+ font-weight: 500;
1090
+ color: var(--sdt-text-secondary);
1091
+ margin-bottom: 8px;
1092
+ }
1093
+
1094
+ .hexclave-devtool .sdt-pg-section-warn .sdt-pg-section-label {
1095
+ color: var(--sdt-warning);
1096
+ }
1097
+
1098
+ .hexclave-devtool .sdt-pg-section-footer {
1099
+ display: flex;
1100
+ margin-top: 8px;
1101
+ }
1102
+
1103
+ /* Changelog list */
1104
+ .hexclave-devtool .sdt-pg-changelog-list {
1105
+ list-style: none;
1106
+ margin: 0;
1107
+ padding: 0;
1108
+ display: flex;
1109
+ flex-direction: column;
1110
+ gap: 4px;
1111
+ }
1112
+
1113
+ .hexclave-devtool .sdt-pg-changelog-item {
1114
+ display: flex;
1115
+ align-items: flex-start;
1116
+ gap: 8px;
1117
+ font-size: 12px;
1118
+ color: var(--sdt-text);
1119
+ line-height: 1.5;
1120
+ }
1121
+
1122
+ .hexclave-devtool .sdt-pg-changelog-bullet {
1123
+ flex-shrink: 0;
1124
+ font-size: 12px;
1125
+ line-height: 1.5;
1126
+ }
1127
+
1128
+ /* Pre block */
1129
+ .hexclave-devtool .sdt-pg-pre {
1130
+ font-family: var(--sdt-font-mono);
1131
+ font-size: 11px;
1132
+ line-height: 1.6;
1133
+ color: var(--sdt-text);
1134
+ background: var(--sdt-bg);
1135
+ border-radius: 6px;
1136
+ padding: 10px 12px;
1137
+ margin: 0;
1138
+ white-space: pre-wrap;
1139
+ word-break: break-word;
1140
+ max-height: 200px;
1141
+ overflow-y: auto;
1142
+ border: 1px solid var(--sdt-border-subtle);
1143
+ }
1144
+
1145
+ .hexclave-devtool .sdt-preview-loading,
1146
+ .hexclave-devtool .sdt-preview-unavailable {
1147
+ font-size: 12px;
1148
+ color: var(--sdt-text-secondary);
1149
+ line-height: 1.5;
1150
+ }
1151
+
1152
+ .hexclave-devtool .sdt-preview-error {
1153
+ font-size: 12px;
1154
+ color: var(--sdt-error);
1155
+ line-height: 1.5;
1156
+ }
1157
+
1158
+ .hexclave-devtool .sdt-preview-code {
1159
+ font-family: var(--sdt-font-mono);
1160
+ font-size: 11px;
1161
+ color: var(--sdt-text);
1162
+ }
1163
+
1164
+ .hexclave-devtool .sdt-props-table {
1165
+ width: 100%;
1166
+ border-collapse: collapse;
1167
+ font-size: 12px;
1168
+ }
1169
+
1170
+ .hexclave-devtool .sdt-props-table th {
1171
+ text-align: left;
1172
+ font-weight: 600;
1173
+ color: var(--sdt-text-tertiary);
1174
+ padding: 6px 8px;
1175
+ border-bottom: 1px solid var(--sdt-border);
1176
+ font-size: 11px;
1177
+ text-transform: uppercase;
1178
+ letter-spacing: 0.5px;
1179
+ }
1180
+
1181
+ .hexclave-devtool .sdt-props-table td {
1182
+ padding: 6px 8px;
1183
+ border-bottom: 1px solid var(--sdt-border-subtle);
1184
+ color: var(--sdt-text);
1185
+ }
1186
+
1187
+ .hexclave-devtool .sdt-props-table td:first-child {
1188
+ font-family: var(--sdt-font-mono);
1189
+ color: var(--sdt-accent-hover);
1190
+ }
1191
+
1192
+ .hexclave-devtool .sdt-props-table td:last-child {
1193
+ font-family: var(--sdt-font-mono);
1194
+ color: var(--sdt-text-secondary);
1195
+ }
1196
+
1197
+ /* Iframe tabs */
1198
+ .hexclave-devtool .sdt-iframe-container {
1199
+ position: relative;
1200
+ flex: 1;
1201
+ min-height: 0;
1202
+ width: 100%;
1203
+ height: 100%;
1204
+ display: flex;
1205
+ flex-direction: column;
1206
+ }
1207
+
1208
+ .hexclave-devtool .sdt-iframe-toolbar {
1209
+ position: absolute;
1210
+ top: 8px;
1211
+ right: 8px;
1212
+ z-index: 1;
1213
+ flex-shrink: 0;
1214
+ display: flex;
1215
+ justify-content: flex-end;
1216
+ align-items: center;
1217
+ gap: 8px;
1218
+ padding: 0;
1219
+ }
1220
+
1221
+ .hexclave-devtool .sdt-panel-fullscreen .sdt-iframe-toolbar {
1222
+ top: 60px;
1223
+ right: 12px;
1224
+ }
1225
+
1226
+ .hexclave-devtool .sdt-iframe-open-link {
1227
+ display: inline-flex;
1228
+ align-items: center;
1229
+ min-height: 28px;
1230
+ padding: 0 10px;
1231
+ background: var(--sdt-overlay-bg);
1232
+ border: 1px solid var(--sdt-border);
1233
+ border-radius: var(--sdt-radius-sm);
1234
+ color: var(--sdt-accent-hover);
1235
+ font-family: var(--sdt-font);
1236
+ font-size: 12px;
1237
+ font-weight: 500;
1238
+ line-height: 1;
1239
+ text-decoration: none;
1240
+ }
1241
+
1242
+ .hexclave-devtool .sdt-iframe-open-link:hover {
1243
+ color: var(--sdt-text);
1244
+ }
1245
+
1246
+ .hexclave-devtool .sdt-iframe-container iframe {
1247
+ flex: 1;
1248
+ min-height: 0;
1249
+ width: 100%;
1250
+ height: 100%;
1251
+ border: none;
1252
+ background: white;
1253
+ border-radius: 0;
1254
+ }
1255
+
1256
+ .hexclave-devtool .sdt-iframe-loading {
1257
+ flex: 1;
1258
+ display: flex;
1259
+ align-items: center;
1260
+ justify-content: center;
1261
+ color: var(--sdt-text-secondary);
1262
+ font-size: 13px;
1263
+ }
1264
+
1265
+ .hexclave-devtool .sdt-iframe-error {
1266
+ flex: 1;
1267
+ display: flex;
1268
+ flex-direction: column;
1269
+ align-items: center;
1270
+ justify-content: center;
1271
+ gap: 8px;
1272
+ color: var(--sdt-text-secondary);
1273
+ font-size: 13px;
1274
+ }
1275
+
1276
+ .hexclave-devtool .sdt-iframe-error-btn {
1277
+ padding: 6px 16px;
1278
+ background: var(--sdt-accent);
1279
+ color: white;
1280
+ border: none;
1281
+ border-radius: var(--sdt-radius);
1282
+ cursor: pointer;
1283
+ font-family: var(--sdt-font);
1284
+ font-size: 12px;
1285
+ font-weight: 500;
1286
+ transition: background 0.15s ease;
1287
+ }
1288
+
1289
+ .hexclave-devtool .sdt-iframe-error-btn:hover {
1290
+ background: var(--sdt-accent-hover);
1291
+ }
1292
+
1293
+ /* Shared content fade animation */
1294
+ .hexclave-devtool .sdt-tab-content-fade {
1295
+ animation: sdt-tab-fade-in 0.15s ease-out;
1296
+ }
1297
+
1298
+ /* Console tab */
1299
+ .hexclave-devtool .sdt-console-panel {
1300
+ display: flex;
1301
+ flex-direction: column;
1302
+ height: 100%;
1303
+ min-height: 0;
1304
+ }
1305
+
1306
+ .hexclave-devtool .sdt-console-header {
1307
+ display: flex;
1308
+ align-items: center;
1309
+ justify-content: space-between;
1310
+ gap: 12px;
1311
+ margin-bottom: 12px;
1312
+ flex-shrink: 0;
1313
+ }
1314
+
1315
+ .hexclave-devtool .sdt-console-title {
1316
+ color: var(--sdt-text);
1317
+ font-size: 13px;
1318
+ font-weight: 600;
1319
+ }
1320
+
1321
+ .hexclave-devtool .sdt-console-actions {
1322
+ display: flex;
1323
+ align-items: center;
1324
+ gap: 6px;
1325
+ flex-wrap: wrap;
1326
+ justify-content: flex-end;
1327
+ }
1328
+
1329
+ .hexclave-devtool .sdt-console-action-btn {
1330
+ display: inline-flex;
1331
+ align-items: center;
1332
+ justify-content: center;
1333
+ gap: 5px;
1334
+ height: 28px;
1335
+ padding: 0 9px;
1336
+ background: var(--sdt-bg-elevated);
1337
+ border: 1px solid var(--sdt-border);
1338
+ border-radius: var(--sdt-radius-sm);
1339
+ color: var(--sdt-text-secondary);
1340
+ cursor: pointer;
1341
+ font-family: var(--sdt-font);
1342
+ font-size: 12px;
1343
+ font-weight: 500;
1344
+ line-height: 1;
1345
+ transition: color 0.15s ease, background 0.15s ease, border-color 0.15s ease;
1346
+ white-space: nowrap;
1347
+ }
1348
+
1349
+ .hexclave-devtool .sdt-console-action-btn:hover {
1350
+ color: var(--sdt-text);
1351
+ background: var(--sdt-bg-hover);
1352
+ border-color: var(--sdt-border);
1353
+ }
1354
+
1355
+ .hexclave-devtool .sdt-console-action-btn svg {
1356
+ flex-shrink: 0;
1357
+ }
1358
+
1359
+ .hexclave-devtool .sdt-console-log-scroll {
1360
+ flex: 1;
1361
+ min-height: 0;
1362
+ overflow: auto;
1363
+ }
1364
+
1365
+ .hexclave-devtool .sdt-console-tabs {
1366
+ position: relative;
1367
+ display: flex;
1368
+ flex: 1;
1369
+ gap: 2px;
1370
+ background: var(--sdt-bg-subtle);
1371
+ border-radius: var(--sdt-radius);
1372
+ padding: 2px;
1373
+ }
1374
+
1375
+ .hexclave-devtool .sdt-console-tab-indicator {
1376
+ position: absolute;
1377
+ top: 2px;
1378
+ left: 0;
1379
+ background: var(--sdt-bg-active);
1380
+ border-radius: var(--sdt-radius-sm);
1381
+ transition: transform 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94),
1382
+ width 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
1383
+ pointer-events: none;
1384
+ z-index: 0;
1385
+ }
1386
+
1387
+ .hexclave-devtool .sdt-console-tab {
1388
+ position: relative;
1389
+ z-index: 1;
1390
+ flex: 1;
1391
+ padding: 6px 12px;
1392
+ background: transparent;
1393
+ border: none;
1394
+ border-radius: var(--sdt-radius-sm);
1395
+ cursor: pointer;
1396
+ font-family: var(--sdt-font);
1397
+ font-size: 12px;
1398
+ font-weight: 500;
1399
+ color: var(--sdt-text-secondary);
1400
+ transition: color 0.15s ease;
1401
+ text-align: center;
1402
+ }
1403
+
1404
+ .hexclave-devtool .sdt-console-tab:hover {
1405
+ color: var(--sdt-text);
1406
+ }
1407
+
1408
+ .hexclave-devtool .sdt-console-tab[data-active="true"] {
1409
+ color: var(--sdt-text);
1410
+ }
1411
+
1412
+ .hexclave-devtool .sdt-log-list {
1413
+ display: flex;
1414
+ flex-direction: column;
1415
+ gap: 4px;
1416
+ }
1417
+
1418
+ .hexclave-devtool .sdt-log-load-hint {
1419
+ padding: 8px 10px;
1420
+ color: var(--sdt-text-tertiary);
1421
+ font-family: var(--sdt-font);
1422
+ font-size: 12px;
1423
+ text-align: center;
1424
+ }
1425
+
1426
+ .hexclave-devtool .sdt-log-item {
1427
+ display: flex;
1428
+ align-items: flex-start;
1429
+ gap: 8px;
1430
+ padding: 8px 10px;
1431
+ background: var(--sdt-bg-elevated);
1432
+ border: 1px solid var(--sdt-border-subtle);
1433
+ border-radius: var(--sdt-radius-sm);
1434
+ font-size: 12px;
1435
+ font-family: var(--sdt-font-mono);
1436
+ }
1437
+
1438
+ .hexclave-devtool .sdt-log-time {
1439
+ color: var(--sdt-text-tertiary);
1440
+ flex-shrink: 0;
1441
+ font-size: 11px;
1442
+ }
1443
+
1444
+ .hexclave-devtool .sdt-log-type {
1445
+ padding: 1px 6px;
1446
+ border-radius: 4px;
1447
+ font-size: 10px;
1448
+ font-weight: 600;
1449
+ text-transform: uppercase;
1450
+ flex-shrink: 0;
1451
+ }
1452
+
1453
+ .hexclave-devtool .sdt-log-message {
1454
+ flex: 1;
1455
+ color: var(--sdt-text);
1456
+ word-break: break-all;
1457
+ }
1458
+
1459
+ .hexclave-devtool .sdt-log-method {
1460
+ padding: 1px 6px;
1461
+ border-radius: 4px;
1462
+ font-size: 10px;
1463
+ font-weight: 600;
1464
+ flex-shrink: 0;
1465
+ }
1466
+
1467
+ .hexclave-devtool .sdt-log-method-get {
1468
+ background: var(--sdt-info-muted);
1469
+ color: var(--sdt-info);
1470
+ }
1471
+
1472
+ .hexclave-devtool .sdt-log-method-post {
1473
+ background: var(--sdt-success-muted);
1474
+ color: var(--sdt-success);
1475
+ }
1476
+
1477
+ .hexclave-devtool .sdt-log-method-put, .hexclave-devtool .sdt-log-method-patch {
1478
+ background: var(--sdt-warning-muted);
1479
+ color: var(--sdt-warning);
1480
+ }
1481
+
1482
+ .hexclave-devtool .sdt-log-method-delete {
1483
+ background: var(--sdt-error-muted);
1484
+ color: var(--sdt-error);
1485
+ }
1486
+
1487
+ .hexclave-devtool .sdt-log-status {
1488
+ font-size: 11px;
1489
+ flex-shrink: 0;
1490
+ }
1491
+
1492
+ .hexclave-devtool .sdt-log-status-ok {
1493
+ color: var(--sdt-success);
1494
+ }
1495
+
1496
+ .hexclave-devtool .sdt-log-status-err {
1497
+ color: var(--sdt-error);
1498
+ }
1499
+
1500
+ .hexclave-devtool .sdt-log-url {
1501
+ flex: 1;
1502
+ color: var(--sdt-text);
1503
+ overflow: hidden;
1504
+ text-overflow: ellipsis;
1505
+ white-space: nowrap;
1506
+ }
1507
+
1508
+ .hexclave-devtool .sdt-empty-state {
1509
+ display: flex;
1510
+ flex-direction: column;
1511
+ align-items: center;
1512
+ justify-content: center;
1513
+ flex: 1;
1514
+ padding: 40px 20px;
1515
+ color: var(--sdt-text-tertiary);
1516
+ font-size: 13px;
1517
+ text-align: center;
1518
+ gap: 4px;
1519
+ }
1520
+
1521
+ .hexclave-devtool .sdt-empty-state-icon {
1522
+ font-size: 24px;
1523
+ margin-bottom: 8px;
1524
+ opacity: 0.5;
1525
+ }
1526
+
1527
+ /* Config info table */
1528
+ .hexclave-devtool .sdt-config-table {
1529
+ width: 100%;
1530
+ border-collapse: collapse;
1531
+ }
1532
+
1533
+ .hexclave-devtool .sdt-config-table td {
1534
+ padding: 8px 10px;
1535
+ border-bottom: 1px solid var(--sdt-border-subtle);
1536
+ font-size: 12px;
1537
+ }
1538
+
1539
+ .hexclave-devtool .sdt-config-table td:first-child {
1540
+ color: var(--sdt-text-secondary);
1541
+ width: 160px;
1542
+ font-weight: 500;
1543
+ }
1544
+
1545
+ .hexclave-devtool .sdt-config-table td:last-child {
1546
+ color: var(--sdt-text);
1547
+ font-family: var(--sdt-font-mono);
1548
+ word-break: break-all;
1549
+ }
1550
+
1551
+ .hexclave-devtool .sdt-config-table td .sdt-config-link {
1552
+ font-family: inherit;
1553
+ color: var(--sdt-accent);
1554
+ text-decoration: underline;
1555
+ text-underline-offset: 2px;
1556
+ }
1557
+
1558
+ .hexclave-devtool .sdt-config-table td .sdt-config-link:hover {
1559
+ color: var(--sdt-text);
1560
+ }
1561
+
1562
+ .hexclave-devtool .sdt-config-muted {
1563
+ color: var(--sdt-text-tertiary);
1564
+ font-style: italic;
1565
+ }
1566
+
1567
+ /* Resize handle */
1568
+ .hexclave-devtool .sdt-resize-handle {
1569
+ position: absolute;
1570
+ top: 0;
1571
+ left: -4px;
1572
+ width: 8px;
1573
+ height: 100%;
1574
+ cursor: ew-resize;
1575
+ z-index: 10;
1576
+ }
1577
+
1578
+ .hexclave-devtool .sdt-resize-handle::after {
1579
+ content: '';
1580
+ position: absolute;
1581
+ top: 50%;
1582
+ left: 3px;
1583
+ width: 2px;
1584
+ height: 32px;
1585
+ transform: translateY(-50%);
1586
+ background: transparent;
1587
+ border-radius: 1px;
1588
+ transition: background 0.15s ease;
1589
+ }
1590
+
1591
+ .hexclave-devtool .sdt-resize-handle:hover::after,
1592
+ .hexclave-devtool .sdt-resize-handle:active::after {
1593
+ background: var(--sdt-accent);
1594
+ }
1595
+
1596
+ .hexclave-devtool .sdt-resize-handle-top {
1597
+ position: absolute;
1598
+ top: -4px;
1599
+ left: 0;
1600
+ width: 100%;
1601
+ height: 8px;
1602
+ cursor: ns-resize;
1603
+ z-index: 10;
1604
+ }
1605
+
1606
+ .hexclave-devtool .sdt-resize-handle-top::after {
1607
+ content: '';
1608
+ position: absolute;
1609
+ left: 50%;
1610
+ top: 3px;
1611
+ height: 2px;
1612
+ width: 32px;
1613
+ transform: translateX(-50%);
1614
+ background: transparent;
1615
+ border-radius: 1px;
1616
+ transition: background 0.15s ease;
1617
+ }
1618
+
1619
+ .hexclave-devtool .sdt-resize-handle-top:hover::after,
1620
+ .hexclave-devtool .sdt-resize-handle-top:active::after {
1621
+ background: var(--sdt-accent);
1622
+ }
1623
+
1624
+ .hexclave-devtool .sdt-resize-handle-corner {
1625
+ position: absolute;
1626
+ top: -6px;
1627
+ left: -6px;
1628
+ width: 14px;
1629
+ height: 14px;
1630
+ cursor: nwse-resize;
1631
+ z-index: 11;
1632
+ }
1633
+
1634
+ .hexclave-devtool .sdt-resize-handle-corner::after {
1635
+ content: '';
1636
+ position: absolute;
1637
+ bottom: 4px;
1638
+ right: 4px;
1639
+ width: 5px;
1640
+ height: 5px;
1641
+ background: transparent;
1642
+ border-radius: 50%;
1643
+ transition: background 0.15s ease;
1644
+ }
1645
+
1646
+ .hexclave-devtool .sdt-resize-handle-corner:hover::after,
1647
+ .hexclave-devtool .sdt-resize-handle-corner:active::after {
1648
+ background: var(--sdt-accent);
1649
+ }
1650
+
1651
+ .hexclave-devtool .sdt-no-components {
1652
+ display: flex;
1653
+ flex-direction: column;
1654
+ align-items: center;
1655
+ justify-content: center;
1656
+ height: 100%;
1657
+ color: var(--sdt-text-tertiary);
1658
+ font-size: 13px;
1659
+ text-align: center;
1660
+ padding: 20px;
1661
+ }
1662
+
1663
+ /* Support tab */
1664
+ .hexclave-devtool .sdt-support-tab {
1665
+ display: flex;
1666
+ flex-direction: column;
1667
+ height: calc(100% + 32px);
1668
+ margin: -16px;
1669
+ }
1670
+
1671
+ .hexclave-devtool .sdt-support-feedback-pane {
1672
+ padding: 20px;
1673
+ height: 100%;
1674
+ overflow-y: auto;
1675
+ }
1676
+
1677
+ /* Form layout */
1678
+ .hexclave-devtool .sdt-support-form {
1679
+ display: flex;
1680
+ flex-direction: column;
1681
+ gap: 14px;
1682
+ }
1683
+
1684
+ /* Type cards */
1685
+ .hexclave-devtool .sdt-support-type-cards {
1686
+ display: flex;
1687
+ gap: 8px;
1688
+ }
1689
+
1690
+ .hexclave-devtool .sdt-support-type-card {
1691
+ flex: 1;
1692
+ display: flex;
1693
+ align-items: center;
1694
+ justify-content: center;
1695
+ gap: 6px;
1696
+ padding: 8px 10px;
1697
+ background: var(--sdt-bg);
1698
+ border: 1px solid var(--sdt-border-subtle);
1699
+ border-radius: var(--sdt-radius);
1700
+ cursor: pointer;
1701
+ font-family: var(--sdt-font);
1702
+ font-size: 11px;
1703
+ font-weight: 500;
1704
+ color: var(--sdt-text-secondary);
1705
+ transition: all 0.15s ease;
1706
+ }
1707
+
1708
+ .hexclave-devtool .sdt-support-type-card svg {
1709
+ flex-shrink: 0;
1710
+ opacity: 0.6;
1711
+ transition: opacity 0.15s ease;
1712
+ }
1713
+
1714
+ .hexclave-devtool .sdt-support-type-card:hover {
1715
+ background: var(--sdt-bg-hover);
1716
+ border-color: var(--sdt-border);
1717
+ color: var(--sdt-text);
1718
+ }
1719
+
1720
+ .hexclave-devtool .sdt-support-type-card:hover svg {
1721
+ opacity: 1;
1722
+ }
1723
+
1724
+ .hexclave-devtool .sdt-support-type-card-active {
1725
+ border-color: var(--sdt-accent);
1726
+ background: var(--sdt-accent-muted);
1727
+ color: var(--sdt-text);
1728
+ }
1729
+
1730
+ .hexclave-devtool .sdt-support-type-card-active svg {
1731
+ opacity: 1;
1732
+ color: var(--sdt-accent);
1733
+ }
1734
+
1735
+ /* Field group */
1736
+ .hexclave-devtool .sdt-support-field {
1737
+ display: flex;
1738
+ flex-direction: column;
1739
+ gap: 5px;
1740
+ }
1741
+
1742
+ .hexclave-devtool .sdt-support-label {
1743
+ font-size: 11px;
1744
+ font-weight: 600;
1745
+ color: var(--sdt-text-secondary);
1746
+ letter-spacing: 0.3px;
1747
+ text-transform: uppercase;
1748
+ display: flex;
1749
+ align-items: center;
1750
+ gap: 6px;
1751
+ }
1752
+
1753
+ .hexclave-devtool .sdt-support-optional {
1754
+ font-size: 10px;
1755
+ font-weight: 400;
1756
+ color: var(--sdt-text-tertiary);
1757
+ text-transform: none;
1758
+ letter-spacing: 0;
1759
+ }
1760
+
1761
+ /* Inputs */
1762
+ .hexclave-devtool .sdt-support-input,
1763
+ .hexclave-devtool .sdt-support-textarea {
1764
+ width: 100%;
1765
+ padding: 9px 12px;
1766
+ background: var(--sdt-bg);
1767
+ border: 1px solid var(--sdt-border-subtle);
1768
+ border-radius: var(--sdt-radius-sm);
1769
+ color: var(--sdt-text);
1770
+ font-family: var(--sdt-font);
1771
+ font-size: 13px;
1772
+ outline: none;
1773
+ transition: border-color 0.15s ease, box-shadow 0.15s ease;
1774
+ }
1775
+
1776
+ .hexclave-devtool .sdt-support-input::placeholder,
1777
+ .hexclave-devtool .sdt-support-textarea::placeholder {
1778
+ color: var(--sdt-text-tertiary);
1779
+ }
1780
+
1781
+ .hexclave-devtool .sdt-support-input:focus,
1782
+ .hexclave-devtool .sdt-support-textarea:focus {
1783
+ border-color: var(--sdt-accent);
1784
+ box-shadow: 0 0 0 3px var(--sdt-accent-muted);
1785
+ }
1786
+
1787
+ .hexclave-devtool .sdt-support-textarea {
1788
+ resize: vertical;
1789
+ min-height: 100px;
1790
+ line-height: 1.6;
1791
+ }
1792
+
1793
+ /* Submit button */
1794
+ .hexclave-devtool .sdt-support-submit {
1795
+ width: 100%;
1796
+ display: inline-flex;
1797
+ align-items: center;
1798
+ justify-content: center;
1799
+ gap: 6px;
1800
+ padding: 9px 20px;
1801
+ background: var(--sdt-accent);
1802
+ color: white;
1803
+ border: none;
1804
+ border-radius: var(--sdt-radius);
1805
+ cursor: pointer;
1806
+ font-family: var(--sdt-font);
1807
+ font-size: 12px;
1808
+ font-weight: 600;
1809
+ letter-spacing: 0.2px;
1810
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
1811
+ box-shadow: 0 1px 3px rgba(99, 102, 241, 0.3);
1812
+ }
1813
+
1814
+ .hexclave-devtool .sdt-support-submit:hover:not(:disabled) {
1815
+ background: var(--sdt-accent-hover);
1816
+ box-shadow: 0 2px 8px rgba(99, 102, 241, 0.4);
1817
+ transform: translateY(-1px);
1818
+ }
1819
+
1820
+ .hexclave-devtool .sdt-support-submit:active:not(:disabled) {
1821
+ transform: translateY(0);
1822
+ box-shadow: 0 1px 2px rgba(99, 102, 241, 0.2);
1823
+ }
1824
+
1825
+ .hexclave-devtool .sdt-support-submit:disabled {
1826
+ opacity: 0.4;
1827
+ cursor: not-allowed;
1828
+ box-shadow: none;
1829
+ }
1830
+
1831
+ .hexclave-devtool .sdt-support-submit svg {
1832
+ flex-shrink: 0;
1833
+ }
1834
+
1835
+ @keyframes sdt-spin {
1836
+ to { transform: rotate(360deg); }
1837
+ }
1838
+
1839
+ .hexclave-devtool .sdt-support-spinner {
1840
+ animation: sdt-spin 1s linear infinite;
1841
+ }
1842
+
1843
+ /* Status screens (success / error) */
1844
+ .hexclave-devtool .sdt-support-status {
1845
+ display: flex;
1846
+ flex-direction: column;
1847
+ align-items: center;
1848
+ padding: 32px 20px;
1849
+ border-radius: var(--sdt-radius-lg);
1850
+ text-align: center;
1851
+ gap: 6px;
1852
+ }
1853
+
1854
+ .hexclave-devtool .sdt-support-status-success {
1855
+ background: linear-gradient(180deg, var(--sdt-success-muted), transparent 80%);
1856
+ border: 1px solid rgba(34, 197, 94, 0.15);
1857
+ }
1858
+
1859
+ .hexclave-devtool .sdt-support-status-error {
1860
+ background: linear-gradient(180deg, var(--sdt-error-muted), transparent 80%);
1861
+ border: 1px solid rgba(239, 68, 68, 0.15);
1862
+ }
1863
+
1864
+ .hexclave-devtool .sdt-support-status-icon {
1865
+ width: 40px;
1866
+ height: 40px;
1867
+ border-radius: 50%;
1868
+ display: flex;
1869
+ align-items: center;
1870
+ justify-content: center;
1871
+ margin-bottom: 6px;
1872
+ }
1873
+
1874
+ .hexclave-devtool .sdt-support-status-success .sdt-support-status-icon {
1875
+ background: rgba(34, 197, 94, 0.15);
1876
+ color: var(--sdt-success);
1877
+ box-shadow: 0 0 20px rgba(34, 197, 94, 0.1);
1878
+ }
1879
+
1880
+ .hexclave-devtool .sdt-support-status-error .sdt-support-status-icon {
1881
+ background: rgba(239, 68, 68, 0.15);
1882
+ color: var(--sdt-error);
1883
+ box-shadow: 0 0 20px rgba(239, 68, 68, 0.1);
1884
+ }
1885
+
1886
+ .hexclave-devtool .sdt-support-status-title {
1887
+ font-size: 14px;
1888
+ font-weight: 600;
1889
+ color: var(--sdt-text);
1890
+ }
1891
+
1892
+ .hexclave-devtool .sdt-support-status-msg {
1893
+ font-size: 12px;
1894
+ color: var(--sdt-text-secondary);
1895
+ line-height: 1.5;
1896
+ max-width: 260px;
1897
+ }
1898
+
1899
+ /* Support channels */
1900
+ .hexclave-devtool .sdt-support-channels {
1901
+ display: flex;
1902
+ gap: 8px;
1903
+ }
1904
+
1905
+ .hexclave-devtool .sdt-support-channel {
1906
+ flex: 1;
1907
+ display: flex;
1908
+ align-items: center;
1909
+ justify-content: center;
1910
+ gap: 6px;
1911
+ padding: 8px 10px;
1912
+ background: var(--sdt-bg);
1913
+ border: 1px solid var(--sdt-border-subtle);
1914
+ border-radius: var(--sdt-radius);
1915
+ color: var(--sdt-text-secondary);
1916
+ text-decoration: none;
1917
+ font-size: 11px;
1918
+ font-weight: 500;
1919
+ transition: all 0.15s ease;
1920
+ }
1921
+
1922
+ .hexclave-devtool .sdt-support-channel:hover {
1923
+ background: var(--sdt-bg-hover);
1924
+ border-color: var(--sdt-border);
1925
+ color: var(--sdt-text);
1926
+ }
1927
+
1928
+ .hexclave-devtool .sdt-support-channel svg {
1929
+ flex-shrink: 0;
1930
+ opacity: 0.6;
1931
+ transition: opacity 0.15s ease;
1932
+ }
1933
+
1934
+ .hexclave-devtool .sdt-support-channel:hover svg {
1935
+ opacity: 1;
1936
+ }
1937
+
1938
+ /* --- Light theme: system preference fallback --- */
1939
+ @media (prefers-color-scheme: light) {
1940
+ .hexclave-devtool {
1941
+ --sdt-bg: #ffffff;
1942
+ --sdt-bg-elevated: #f8f8fa;
1943
+ --sdt-bg-hover: #f0f0f3;
1944
+ --sdt-bg-active: #e8e8ec;
1945
+ --sdt-bg-subtle: #fafafa;
1946
+ --sdt-border: #e0e0e5;
1947
+ --sdt-border-subtle: #eaeaef;
1948
+ --sdt-text: #111113;
1949
+ --sdt-text-secondary: #6b6b73;
1950
+ --sdt-text-tertiary: #9b9ba3;
1951
+ --sdt-accent: #6366f1;
1952
+ --sdt-accent-hover: #4f46e5;
1953
+ --sdt-accent-muted: rgba(99, 102, 241, 0.1);
1954
+ --sdt-success: #16a34a;
1955
+ --sdt-success-muted: rgba(22, 163, 74, 0.1);
1956
+ --sdt-warning: #ca8a04;
1957
+ --sdt-warning-muted: rgba(202, 138, 4, 0.1);
1958
+ --sdt-error: #dc2626;
1959
+ --sdt-error-muted: rgba(220, 38, 38, 0.1);
1960
+ --sdt-info: #2563eb;
1961
+ --sdt-info-muted: rgba(37, 99, 235, 0.1);
1962
+ --sdt-overlay-bg: rgba(255, 255, 255, 0.92);
1963
+ --sdt-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.12), 0 0 0 1px rgba(0, 0, 0, 0.06);
1964
+ --sdt-trigger-shadow: 0 4px 12px rgba(0, 0, 0, 0.08), 0 0 0 1px rgba(0, 0, 0, 0.06);
1965
+ }
1966
+ }
1967
+
1968
+ /* Export dialog — positioned inside the dev tool panel */
1969
+ .hexclave-devtool .sdt-share-overlay {
1970
+ position: absolute;
1971
+ inset: 0;
1972
+ z-index: 20;
1973
+ background: rgba(0, 0, 0, 0.4);
1974
+ display: flex;
1975
+ align-items: center;
1976
+ justify-content: center;
1977
+ animation: sdt-tab-fade-in 0.15s ease-out;
1978
+ border-radius: var(--sdt-radius-lg);
1979
+ }
1980
+
1981
+ .hexclave-devtool .sdt-share-dialog {
1982
+ width: 380px;
1983
+ max-width: calc(100% - 32px);
1984
+ background: var(--sdt-bg);
1985
+ border: 1px solid var(--sdt-border);
1986
+ border-radius: var(--sdt-radius-lg);
1987
+ box-shadow: var(--sdt-shadow);
1988
+ padding: 20px;
1989
+ display: flex;
1990
+ flex-direction: column;
1991
+ gap: 16px;
1992
+ }
1993
+
1994
+ .hexclave-devtool .sdt-share-header {
1995
+ display: flex;
1996
+ align-items: center;
1997
+ justify-content: space-between;
1998
+ }
1999
+
2000
+ .hexclave-devtool .sdt-share-title {
2001
+ font-size: 14px;
2002
+ font-weight: 600;
2003
+ color: var(--sdt-text);
2004
+ }
2005
+
2006
+ .hexclave-devtool .sdt-share-status {
2007
+ display: flex;
2008
+ align-items: center;
2009
+ justify-content: center;
2010
+ gap: 10px;
2011
+ padding: 20px;
2012
+ color: var(--sdt-text-secondary);
2013
+ font-size: 13px;
2014
+ }
2015
+
2016
+ .hexclave-devtool .sdt-share-url-row {
2017
+ display: flex;
2018
+ gap: 6px;
2019
+ align-items: center;
2020
+ }
2021
+
2022
+ .hexclave-devtool .sdt-share-url-row .sdt-support-input {
2023
+ flex: 1;
2024
+ font-family: var(--sdt-font-mono);
2025
+ font-size: 12px;
2026
+ }
2027
+
2028
+ .hexclave-devtool .sdt-share-copy-btn {
2029
+ display: flex;
2030
+ align-items: center;
2031
+ justify-content: center;
2032
+ width: 36px;
2033
+ height: 36px;
2034
+ flex-shrink: 0;
2035
+ background: var(--sdt-bg-elevated);
2036
+ border: 1px solid var(--sdt-border-subtle);
2037
+ border-radius: var(--sdt-radius-sm);
2038
+ color: var(--sdt-text-secondary);
2039
+ cursor: pointer;
2040
+ transition: all 0.15s ease;
2041
+ }
2042
+
2043
+ .hexclave-devtool .sdt-share-copy-btn:hover {
2044
+ background: var(--sdt-bg-hover);
2045
+ color: var(--sdt-text);
2046
+ }
2047
+
2048
+ .hexclave-devtool .sdt-share-actions {
2049
+ display: flex;
2050
+ gap: 8px;
2051
+ }
2052
+
2053
+ .hexclave-devtool .sdt-share-action-btn {
2054
+ flex: 1;
2055
+ display: flex;
2056
+ align-items: center;
2057
+ justify-content: center;
2058
+ gap: 6px;
2059
+ padding: 10px 12px;
2060
+ background: var(--sdt-bg-elevated);
2061
+ border: 1px solid var(--sdt-border-subtle);
2062
+ border-radius: var(--sdt-radius);
2063
+ color: var(--sdt-text-secondary);
2064
+ text-decoration: none;
2065
+ font-family: var(--sdt-font);
2066
+ font-size: 12px;
2067
+ font-weight: 500;
2068
+ cursor: pointer;
2069
+ transition: all 0.15s ease;
2070
+ }
2071
+
2072
+ .hexclave-devtool .sdt-share-action-btn:hover {
2073
+ background: var(--sdt-bg-hover);
2074
+ border-color: var(--sdt-border);
2075
+ color: var(--sdt-text);
2076
+ }
2077
+
2078
+ .hexclave-devtool .sdt-share-action-btn svg {
2079
+ flex-shrink: 0;
2080
+ opacity: 0.7;
2081
+ }
2082
+
2083
+ .hexclave-devtool .sdt-share-action-btn:hover svg {
2084
+ opacity: 1;
2085
+ }
2086
+
2087
+ .hexclave-devtool .sdt-share-action-btn-accent {
2088
+ background: var(--sdt-accent);
2089
+ border-color: var(--sdt-accent);
2090
+ color: white;
2091
+ }
2092
+
2093
+ .hexclave-devtool .sdt-share-action-btn-accent:hover {
2094
+ background: var(--sdt-accent-hover);
2095
+ border-color: var(--sdt-accent-hover);
2096
+ color: white;
2097
+ }
2098
+
2099
+ .hexclave-devtool .sdt-share-action-btn-accent svg {
2100
+ opacity: 1;
2101
+ }
2102
+
2103
+ /* --- AI Chat tab --- */
2104
+
2105
+ .hexclave-devtool .sdt-ai-container {
2106
+ display: flex;
2107
+ flex-direction: column;
2108
+ height: 100%;
2109
+ overflow: hidden;
2110
+ }
2111
+
2112
+ .hexclave-devtool .sdt-ai-messages {
2113
+ flex: 1;
2114
+ overflow-y: auto;
2115
+ overflow-x: hidden;
2116
+ padding: 16px;
2117
+ scroll-behavior: smooth;
2118
+ }
2119
+
2120
+ .hexclave-devtool .sdt-ai-message-list {
2121
+ display: flex;
2122
+ flex-direction: column;
2123
+ gap: 16px;
2124
+ }
2125
+
2126
+ /* --- Empty state --- */
2127
+
2128
+ .hexclave-devtool .sdt-ai-empty {
2129
+ display: flex;
2130
+ flex-direction: column;
2131
+ align-items: center;
2132
+ justify-content: center;
2133
+ height: 100%;
2134
+ gap: 12px;
2135
+ padding: 24px;
2136
+ text-align: center;
2137
+ }
2138
+
2139
+ .hexclave-devtool .sdt-ai-empty-icon {
2140
+ width: 48px;
2141
+ height: 48px;
2142
+ border-radius: 50%;
2143
+ background: var(--sdt-accent-muted);
2144
+ display: flex;
2145
+ align-items: center;
2146
+ justify-content: center;
2147
+ color: var(--sdt-accent);
2148
+ margin-bottom: 4px;
2149
+ }
2150
+
2151
+ .hexclave-devtool .sdt-ai-empty-title {
2152
+ font-size: 16px;
2153
+ font-weight: 600;
2154
+ color: var(--sdt-text);
2155
+ }
2156
+
2157
+ .hexclave-devtool .sdt-ai-empty-desc {
2158
+ font-size: 12px;
2159
+ color: var(--sdt-text-secondary);
2160
+ max-width: 320px;
2161
+ line-height: 1.5;
2162
+ }
2163
+
2164
+ .hexclave-devtool .sdt-ai-suggestions {
2165
+ display: flex;
2166
+ flex-direction: column;
2167
+ gap: 6px;
2168
+ margin-top: 8px;
2169
+ width: 100%;
2170
+ max-width: 340px;
2171
+ }
2172
+
2173
+ .hexclave-devtool .sdt-ai-suggestion {
2174
+ display: flex;
2175
+ align-items: center;
2176
+ gap: 10px;
2177
+ padding: 10px 14px;
2178
+ border-radius: var(--sdt-radius);
2179
+ background: var(--sdt-bg-elevated);
2180
+ border: 1px solid var(--sdt-border-subtle);
2181
+ color: var(--sdt-text-secondary);
2182
+ font-size: 12px;
2183
+ cursor: pointer;
2184
+ text-align: left;
2185
+ transition: all 0.15s ease;
2186
+ font-family: var(--sdt-font);
2187
+ line-height: 1.4;
2188
+ }
2189
+
2190
+ .hexclave-devtool .sdt-ai-suggestion:hover {
2191
+ background: var(--sdt-bg-hover);
2192
+ border-color: var(--sdt-border);
2193
+ color: var(--sdt-text);
2194
+ }
2195
+
2196
+ .hexclave-devtool .sdt-ai-suggestion-icon {
2197
+ font-size: 14px;
2198
+ flex-shrink: 0;
2199
+ }
2200
+
2201
+ /* --- Messages --- */
2202
+
2203
+ .hexclave-devtool .sdt-ai-msg {
2204
+ display: flex;
2205
+ gap: 10px;
2206
+ align-items: flex-start;
2207
+ }
2208
+
2209
+ .hexclave-devtool .sdt-ai-msg-user {
2210
+ justify-content: flex-end;
2211
+ }
2212
+
2213
+ .hexclave-devtool .sdt-ai-msg-assistant {
2214
+ justify-content: flex-start;
2215
+ }
2216
+
2217
+ .hexclave-devtool .sdt-ai-avatar {
2218
+ width: 26px;
2219
+ height: 26px;
2220
+ border-radius: 50%;
2221
+ display: flex;
2222
+ align-items: center;
2223
+ justify-content: center;
2224
+ flex-shrink: 0;
2225
+ margin-top: 2px;
2226
+ }
2227
+
2228
+ .hexclave-devtool .sdt-ai-avatar-user {
2229
+ background: var(--sdt-info-muted);
2230
+ color: var(--sdt-info);
2231
+ order: 2;
2232
+ }
2233
+
2234
+ .hexclave-devtool .sdt-ai-avatar-assistant {
2235
+ background: var(--sdt-accent-muted);
2236
+ color: var(--sdt-accent);
2237
+ }
2238
+
2239
+ .hexclave-devtool .sdt-ai-bubble {
2240
+ min-width: 0;
2241
+ max-width: 85%;
2242
+ border-radius: var(--sdt-radius-lg);
2243
+ padding: 10px 14px;
2244
+ }
2245
+
2246
+ .hexclave-devtool .sdt-ai-bubble-user {
2247
+ background: var(--sdt-info-muted);
2248
+ border: 1px solid rgba(59, 130, 246, 0.1);
2249
+ }
2250
+
2251
+ .hexclave-devtool .sdt-ai-bubble-user p {
2252
+ font-size: 13px;
2253
+ line-height: 1.55;
2254
+ color: var(--sdt-text);
2255
+ margin: 0;
2256
+ word-break: break-word;
2257
+ }
2258
+
2259
+ .hexclave-devtool .sdt-ai-bubble-assistant {
2260
+ background: var(--sdt-bg-elevated);
2261
+ border: 1px solid var(--sdt-border-subtle);
2262
+ }
2263
+
2264
+ /* --- Thinking dots --- */
2265
+
2266
+ .hexclave-devtool .sdt-ai-thinking {
2267
+ display: flex;
2268
+ align-items: center;
2269
+ gap: 4px;
2270
+ padding: 4px 0;
2271
+ }
2272
+
2273
+ .hexclave-devtool .sdt-ai-thinking-dot {
2274
+ width: 5px;
2275
+ height: 5px;
2276
+ border-radius: 50%;
2277
+ background: var(--sdt-accent);
2278
+ opacity: 0.5;
2279
+ animation: sdt-ai-pulse 1.2s ease-in-out infinite;
2280
+ }
2281
+
2282
+ .hexclave-devtool .sdt-ai-thinking-dot:nth-child(2) { animation-delay: 0.15s; }
2283
+ .hexclave-devtool .sdt-ai-thinking-dot:nth-child(3) { animation-delay: 0.3s; }
2284
+
2285
+ @keyframes sdt-ai-pulse {
2286
+ 0%, 80%, 100% { opacity: 0.3; transform: scale(0.85); }
2287
+ 40% { opacity: 1; transform: scale(1.1); }
2288
+ }
2289
+
2290
+ .hexclave-devtool .sdt-ai-streaming-indicator {
2291
+ display: flex;
2292
+ align-items: center;
2293
+ gap: 3px;
2294
+ margin-top: 6px;
2295
+ }
2296
+
2297
+ /* --- Markdown content inside assistant bubble --- */
2298
+
2299
+ .hexclave-devtool .sdt-ai-paragraph {
2300
+ font-size: 13px;
2301
+ line-height: 1.6;
2302
+ color: var(--sdt-text);
2303
+ margin: 0 0 10px;
2304
+ word-break: break-word;
2305
+ }
2306
+
2307
+ .hexclave-devtool .sdt-ai-paragraph:last-child { margin-bottom: 0; }
2308
+
2309
+ .hexclave-devtool .sdt-ai-bold {
2310
+ font-weight: 600;
2311
+ color: var(--sdt-text);
2312
+ }
2313
+
2314
+ .hexclave-devtool .sdt-ai-inline-code {
2315
+ display: inline;
2316
+ padding: 1.5px 5px;
2317
+ border-radius: 4px;
2318
+ font-family: var(--sdt-font-mono);
2319
+ font-size: 11.5px;
2320
+ background: var(--sdt-bg-hover);
2321
+ color: var(--sdt-text);
2322
+ border: 1px solid var(--sdt-border-subtle);
2323
+ }
2324
+
2325
+ .hexclave-devtool .sdt-ai-link {
2326
+ color: var(--sdt-info);
2327
+ text-decoration: none;
2328
+ transition: color 0.1s;
2329
+ }
2330
+
2331
+ .hexclave-devtool .sdt-ai-link:hover {
2332
+ color: var(--sdt-accent-hover);
2333
+ text-decoration: underline;
2334
+ text-underline-offset: 2px;
2335
+ }
2336
+
2337
+ .hexclave-devtool .sdt-ai-heading {
2338
+ font-weight: 600;
2339
+ color: var(--sdt-text);
2340
+ margin: 12px 0 6px;
2341
+ line-height: 1.35;
2342
+ }
2343
+
2344
+ .hexclave-devtool .sdt-ai-heading:first-child { margin-top: 0; }
2345
+
2346
+ .hexclave-devtool .sdt-ai-bubble-assistant h1.sdt-ai-heading { font-size: 15px; }
2347
+ .hexclave-devtool .sdt-ai-bubble-assistant h2.sdt-ai-heading { font-size: 13.5px; }
2348
+ .hexclave-devtool .sdt-ai-bubble-assistant h3.sdt-ai-heading { font-size: 13px; }
2349
+
2350
+ .hexclave-devtool .sdt-ai-list {
2351
+ font-size: 13px;
2352
+ line-height: 1.6;
2353
+ color: var(--sdt-text);
2354
+ margin: 0 0 10px;
2355
+ padding-left: 20px;
2356
+ }
2357
+
2358
+ .hexclave-devtool .sdt-ai-list:last-child { margin-bottom: 0; }
2359
+
2360
+ .hexclave-devtool .sdt-ai-list li {
2361
+ margin-bottom: 3px;
2362
+ padding-left: 2px;
2363
+ }
2364
+
2365
+ .hexclave-devtool .sdt-ai-list li::marker {
2366
+ color: var(--sdt-text-tertiary);
2367
+ }
2368
+
2369
+ .hexclave-devtool .sdt-ai-list-ordered {
2370
+ list-style-type: decimal;
2371
+ }
2372
+
2373
+ .hexclave-devtool .sdt-ai-tools {
2374
+ display: flex;
2375
+ flex-direction: column;
2376
+ gap: 6px;
2377
+ margin: 6px 0;
2378
+ }
2379
+
2380
+ .hexclave-devtool .sdt-ai-part-text {
2381
+ margin: 6px 0;
2382
+ }
2383
+
2384
+ .hexclave-devtool .sdt-ai-tool-card {
2385
+ border: 1px solid var(--sdt-border-subtle);
2386
+ border-radius: var(--sdt-radius);
2387
+ background: var(--sdt-bg-subtle);
2388
+ overflow: hidden;
2389
+ }
2390
+
2391
+ .hexclave-devtool .sdt-ai-tool-header {
2392
+ width: 100%;
2393
+ border: none;
2394
+ background: transparent;
2395
+ color: inherit;
2396
+ display: flex;
2397
+ align-items: center;
2398
+ gap: 8px;
2399
+ padding: 8px 10px;
2400
+ cursor: pointer;
2401
+ text-align: left;
2402
+ font-family: var(--sdt-font);
2403
+ }
2404
+
2405
+ .hexclave-devtool .sdt-ai-tool-header:hover {
2406
+ background: var(--sdt-bg-hover);
2407
+ }
2408
+
2409
+ .hexclave-devtool .sdt-ai-tool-name {
2410
+ font-size: 12px;
2411
+ font-weight: 600;
2412
+ color: var(--sdt-text);
2413
+ flex: 1;
2414
+ }
2415
+
2416
+ .hexclave-devtool .sdt-ai-tool-status {
2417
+ font-size: 10px;
2418
+ text-transform: uppercase;
2419
+ letter-spacing: 0.4px;
2420
+ font-weight: 600;
2421
+ }
2422
+
2423
+ .hexclave-devtool .sdt-ai-tool-status-running { color: var(--sdt-warning); }
2424
+ .hexclave-devtool .sdt-ai-tool-status-success { color: var(--sdt-success); }
2425
+ .hexclave-devtool .sdt-ai-tool-status-error { color: var(--sdt-error); }
2426
+
2427
+ .hexclave-devtool .sdt-ai-tool-chevron {
2428
+ color: var(--sdt-text-tertiary);
2429
+ font-size: 10px;
2430
+ transition: transform 0.15s ease;
2431
+ }
2432
+
2433
+ .hexclave-devtool .sdt-ai-tool-chevron-open {
2434
+ transform: rotate(180deg);
2435
+ }
2436
+
2437
+ .hexclave-devtool .sdt-ai-tool-body {
2438
+ border-top: 1px solid var(--sdt-border-subtle);
2439
+ padding: 8px 10px;
2440
+ display: flex;
2441
+ flex-direction: column;
2442
+ gap: 6px;
2443
+ }
2444
+
2445
+ .hexclave-devtool .sdt-ai-tool-label {
2446
+ font-size: 10px;
2447
+ text-transform: uppercase;
2448
+ letter-spacing: 0.4px;
2449
+ color: var(--sdt-text-tertiary);
2450
+ font-weight: 600;
2451
+ }
2452
+
2453
+ .hexclave-devtool .sdt-ai-tool-pre {
2454
+ margin: 0;
2455
+ padding: 8px;
2456
+ border: 1px solid var(--sdt-border-subtle);
2457
+ border-radius: var(--sdt-radius-sm);
2458
+ background: var(--sdt-bg);
2459
+ font-family: var(--sdt-font-mono);
2460
+ font-size: 11px;
2461
+ line-height: 1.5;
2462
+ color: var(--sdt-text-secondary);
2463
+ overflow-x: auto;
2464
+ white-space: pre-wrap;
2465
+ word-break: break-word;
2466
+ }
2467
+
2468
+ .hexclave-devtool .sdt-ai-tool-running {
2469
+ font-size: 11px;
2470
+ color: var(--sdt-text-secondary);
2471
+ }
2472
+
2473
+ .hexclave-devtool .sdt-ai-blockquote {
2474
+ border-left: 3px solid var(--sdt-accent);
2475
+ padding-left: 12px;
2476
+ margin: 8px 0;
2477
+ font-size: 13px;
2478
+ color: var(--sdt-text-secondary);
2479
+ font-style: italic;
2480
+ }
2481
+
2482
+ .hexclave-devtool .sdt-ai-hr {
2483
+ border: none;
2484
+ border-top: 1px solid var(--sdt-border-subtle);
2485
+ margin: 12px 0;
2486
+ }
2487
+
2488
+ /* --- Code blocks --- */
2489
+
2490
+ .hexclave-devtool .sdt-ai-code-block {
2491
+ border-radius: var(--sdt-radius);
2492
+ overflow: hidden;
2493
+ margin: 8px 0;
2494
+ border: 1px solid var(--sdt-border-subtle);
2495
+ background: var(--sdt-bg-subtle);
2496
+ }
2497
+
2498
+ .hexclave-devtool .sdt-ai-code-block:last-child { margin-bottom: 0; }
2499
+
2500
+ .hexclave-devtool .sdt-ai-code-header {
2501
+ display: flex;
2502
+ align-items: center;
2503
+ justify-content: space-between;
2504
+ padding: 5px 10px;
2505
+ border-bottom: 1px solid var(--sdt-border-subtle);
2506
+ background: var(--sdt-bg);
2507
+ }
2508
+
2509
+ .hexclave-devtool .sdt-ai-code-lang {
2510
+ font-size: 9px;
2511
+ font-weight: 600;
2512
+ text-transform: uppercase;
2513
+ letter-spacing: 0.5px;
2514
+ color: var(--sdt-text-tertiary);
2515
+ font-family: var(--sdt-font);
2516
+ }
2517
+
2518
+ .hexclave-devtool .sdt-ai-copy-btn {
2519
+ display: flex;
2520
+ align-items: center;
2521
+ justify-content: center;
2522
+ width: 22px;
2523
+ height: 22px;
2524
+ border-radius: var(--sdt-radius-sm);
2525
+ border: none;
2526
+ background: transparent;
2527
+ color: var(--sdt-text-tertiary);
2528
+ cursor: pointer;
2529
+ font-size: 12px;
2530
+ font-family: var(--sdt-font);
2531
+ transition: all 0.15s ease;
2532
+ }
2533
+
2534
+ .hexclave-devtool .sdt-ai-copy-btn:hover {
2535
+ background: var(--sdt-bg-hover);
2536
+ color: var(--sdt-text);
2537
+ }
2538
+
2539
+ .hexclave-devtool .sdt-ai-copy-btn-copied {
2540
+ color: var(--sdt-success) !important;
2541
+ }
2542
+
2543
+ .hexclave-devtool .sdt-ai-code-pre {
2544
+ margin: 0;
2545
+ padding: 10px 12px;
2546
+ overflow-x: auto;
2547
+ font-family: var(--sdt-font-mono);
2548
+ font-size: 11.5px;
2549
+ line-height: 1.6;
2550
+ color: var(--sdt-text);
2551
+ }
2552
+
2553
+ .hexclave-devtool .sdt-ai-code-pre code {
2554
+ font-family: inherit;
2555
+ background: none;
2556
+ border: none;
2557
+ padding: 0;
2558
+ }
2559
+
2560
+ /* --- Error --- */
2561
+
2562
+ .hexclave-devtool .sdt-ai-error {
2563
+ display: flex;
2564
+ align-items: flex-start;
2565
+ gap: 8px;
2566
+ padding: 10px 14px;
2567
+ margin: 8px 16px;
2568
+ border-radius: var(--sdt-radius);
2569
+ background: var(--sdt-error-muted);
2570
+ border: 1px solid rgba(239, 68, 68, 0.2);
2571
+ font-size: 12px;
2572
+ color: var(--sdt-error);
2573
+ line-height: 1.4;
2574
+ }
2575
+
2576
+ /* --- Input area --- */
2577
+
2578
+ .hexclave-devtool .sdt-ai-input-area {
2579
+ flex-shrink: 0;
2580
+ display: flex;
2581
+ align-items: center;
2582
+ gap: 8px;
2583
+ padding: 10px 14px;
2584
+ border-top: 1px solid var(--sdt-border-subtle);
2585
+ background: var(--sdt-bg);
2586
+ }
2587
+
2588
+ .hexclave-devtool .sdt-ai-new-chat {
2589
+ display: flex;
2590
+ align-items: center;
2591
+ justify-content: center;
2592
+ width: 32px;
2593
+ height: 32px;
2594
+ border-radius: var(--sdt-radius);
2595
+ border: 1px solid var(--sdt-border-subtle);
2596
+ background: var(--sdt-bg-elevated);
2597
+ color: var(--sdt-text-secondary);
2598
+ cursor: pointer;
2599
+ flex-shrink: 0;
2600
+ transition: all 0.15s ease;
2601
+ font-family: var(--sdt-font);
2602
+ }
2603
+
2604
+ .hexclave-devtool .sdt-ai-new-chat:hover {
2605
+ background: var(--sdt-bg-hover);
2606
+ border-color: var(--sdt-border);
2607
+ color: var(--sdt-text);
2608
+ }
2609
+
2610
+ .hexclave-devtool .sdt-ai-input-wrapper {
2611
+ flex: 1;
2612
+ display: flex;
2613
+ align-items: center;
2614
+ gap: 6px;
2615
+ border-radius: var(--sdt-radius);
2616
+ background: var(--sdt-bg-elevated);
2617
+ border: 1px solid var(--sdt-border-subtle);
2618
+ padding: 0 4px 0 12px;
2619
+ transition: border-color 0.15s ease;
2620
+ }
2621
+
2622
+ .hexclave-devtool .sdt-ai-input-wrapper:focus-within {
2623
+ border-color: var(--sdt-accent);
2624
+ box-shadow: 0 0 0 2px var(--sdt-accent-muted);
2625
+ }
2626
+
2627
+ .hexclave-devtool .sdt-ai-input {
2628
+ flex: 1;
2629
+ background: transparent;
2630
+ border: none;
2631
+ outline: none;
2632
+ color: var(--sdt-text);
2633
+ font-size: 13px;
2634
+ font-family: var(--sdt-font);
2635
+ padding: 8px 0;
2636
+ min-width: 0;
2637
+ }
2638
+
2639
+ .hexclave-devtool .sdt-ai-input::placeholder {
2640
+ color: var(--sdt-text-tertiary);
2641
+ }
2642
+
2643
+ .hexclave-devtool .sdt-ai-input:disabled {
2644
+ opacity: 0.5;
2645
+ }
2646
+
2647
+ .hexclave-devtool .sdt-ai-send-btn {
2648
+ display: flex;
2649
+ align-items: center;
2650
+ justify-content: center;
2651
+ width: 30px;
2652
+ height: 30px;
2653
+ border-radius: 6px;
2654
+ border: none;
2655
+ background: transparent;
2656
+ color: var(--sdt-text-tertiary);
2657
+ cursor: not-allowed;
2658
+ flex-shrink: 0;
2659
+ transition: all 0.15s ease;
2660
+ font-family: var(--sdt-font);
2661
+ }
2662
+
2663
+ .hexclave-devtool .sdt-ai-send-btn-active {
2664
+ background: var(--sdt-accent);
2665
+ color: white;
2666
+ cursor: pointer;
2667
+ }
2668
+
2669
+ .hexclave-devtool .sdt-ai-send-btn-active:hover {
2670
+ background: var(--sdt-accent-hover);
2671
+ }
2672
+
2673
+ .hexclave-devtool .sdt-ai-stop-btn,
2674
+ .hexclave-devtool .sdt-ai-stop-btn:hover {
2675
+ background: var(--sdt-error);
2676
+ color: white;
2677
+ }
2678
+
2679
+ /* Accessible focus indicator for keyboard navigation */
2680
+ .hexclave-devtool .sdt-tab:focus-visible {
2681
+ outline: 2px solid var(--sdt-accent);
2682
+ outline-offset: -2px;
2683
+ border-radius: var(--sdt-radius);
2684
+ }
2685
+
2686
+ /* Reduced motion: disable animations for users who prefer it */
2687
+ @media (prefers-reduced-motion: reduce) {
2688
+ .hexclave-devtool .sdt-panel-inner,
2689
+ .hexclave-devtool .sdt-panel-exiting,
2690
+ .hexclave-devtool .sdt-tab-content,
2691
+ .hexclave-devtool .sdt-ov-pulse-dot,
2692
+ .hexclave-devtool .sdt-ov-skeleton-pill,
2693
+ .hexclave-devtool .sdt-support-spinner,
2694
+ .hexclave-devtool .sdt-ai-thinking-dot {
2695
+ animation: none !important;
2696
+ }
2697
+
2698
+ .hexclave-devtool .sdt-tab-indicator,
2699
+ .hexclave-devtool .sdt-tab {
2700
+ transition: none !important;
2701
+ }
2702
+ }
2703
+
2704
+ /* --- Stack theme explicit overrides (take priority over system preference) --- */
2705
+ html:has(head > [data-stack-theme="light"]) .hexclave-devtool {
2706
+ --sdt-bg: #ffffff;
2707
+ --sdt-bg-elevated: #f8f8fa;
2708
+ --sdt-bg-hover: #f0f0f3;
2709
+ --sdt-bg-active: #e8e8ec;
2710
+ --sdt-bg-subtle: #fafafa;
2711
+ --sdt-border: #e0e0e5;
2712
+ --sdt-border-subtle: #eaeaef;
2713
+ --sdt-text: #111113;
2714
+ --sdt-text-secondary: #6b6b73;
2715
+ --sdt-text-tertiary: #9b9ba3;
2716
+ --sdt-accent: #6366f1;
2717
+ --sdt-accent-hover: #4f46e5;
2718
+ --sdt-accent-muted: rgba(99, 102, 241, 0.1);
2719
+ --sdt-success: #16a34a;
2720
+ --sdt-success-muted: rgba(22, 163, 74, 0.1);
2721
+ --sdt-warning: #ca8a04;
2722
+ --sdt-warning-muted: rgba(202, 138, 4, 0.1);
2723
+ --sdt-error: #dc2626;
2724
+ --sdt-error-muted: rgba(220, 38, 38, 0.1);
2725
+ --sdt-info: #2563eb;
2726
+ --sdt-info-muted: rgba(37, 99, 235, 0.1);
2727
+ --sdt-overlay-bg: rgba(255, 255, 255, 0.92);
2728
+ --sdt-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.12), 0 0 0 1px rgba(0, 0, 0, 0.06);
2729
+ --sdt-trigger-shadow: 0 4px 12px rgba(0, 0, 0, 0.08), 0 0 0 1px rgba(0, 0, 0, 0.06);
2730
+ }
2731
+
2732
+ html:has(head > [data-stack-theme="dark"]) .hexclave-devtool {
2733
+ --sdt-bg: #0a0a0b;
2734
+ --sdt-bg-elevated: #141416;
2735
+ --sdt-bg-hover: #1c1c1f;
2736
+ --sdt-bg-active: #232326;
2737
+ --sdt-bg-subtle: #111113;
2738
+ --sdt-border: #2a2a2e;
2739
+ --sdt-border-subtle: #1e1e22;
2740
+ --sdt-text: #ececef;
2741
+ --sdt-text-secondary: #8b8b93;
2742
+ --sdt-text-tertiary: #5c5c66;
2743
+ --sdt-accent: #6366f1;
2744
+ --sdt-accent-hover: #818cf8;
2745
+ --sdt-accent-muted: rgba(99, 102, 241, 0.15);
2746
+ --sdt-success: #22c55e;
2747
+ --sdt-success-muted: rgba(34, 197, 94, 0.15);
2748
+ --sdt-warning: #eab308;
2749
+ --sdt-warning-muted: rgba(234, 179, 8, 0.15);
2750
+ --sdt-error: #ef4444;
2751
+ --sdt-error-muted: rgba(239, 68, 68, 0.15);
2752
+ --sdt-info: #3b82f6;
2753
+ --sdt-info-muted: rgba(59, 130, 246, 0.15);
2754
+ --sdt-overlay-bg: rgba(17, 17, 19, 0.92);
2755
+ --sdt-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.05);
2756
+ --sdt-trigger-shadow: 0 4px 12px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.08);
2757
+ }
2758
+ `;