@hexclave/next 1.0.14 → 1.0.16

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 (220) hide show
  1. package/dist/clickmap/clickmap-core.d.ts +15 -0
  2. package/dist/clickmap/clickmap-core.d.ts.map +1 -0
  3. package/dist/clickmap/clickmap-core.js +1527 -0
  4. package/dist/clickmap/clickmap-core.js.map +1 -0
  5. package/dist/clickmap/clickmap-styles.d.ts +5 -0
  6. package/dist/clickmap/clickmap-styles.d.ts.map +1 -0
  7. package/dist/clickmap/clickmap-styles.js +1095 -0
  8. package/dist/clickmap/clickmap-styles.js.map +1 -0
  9. package/dist/clickmap/index.d.ts +16 -0
  10. package/dist/clickmap/index.d.ts.map +1 -0
  11. package/dist/clickmap/index.js +74 -0
  12. package/dist/clickmap/index.js.map +1 -0
  13. package/dist/components/api-key-dialogs.d.ts +1 -1
  14. package/dist/components/api-key-dialogs.js +5 -5
  15. package/dist/components/credential-sign-in.js +3 -3
  16. package/dist/components/credential-sign-up.js +5 -5
  17. package/dist/components/elements/sidebar-layout.js +1 -1
  18. package/dist/components/elements/user-avatar.js +1 -1
  19. package/dist/components/magic-link-sign-in.js +5 -5
  20. package/dist/components/message-cards/known-error-message-card.d.ts +1 -1
  21. package/dist/components/message-cards/predefined-message-card.js +1 -1
  22. package/dist/components/passkey-button.js +1 -1
  23. package/dist/components/profile-image-editor.js +1 -1
  24. package/dist/components/team-icon.js +1 -1
  25. package/dist/components/team-switcher.js +2 -2
  26. package/dist/components/user-button.js +1 -1
  27. package/dist/components-page/account-settings/active-sessions/active-sessions-page.js +1 -1
  28. package/dist/components-page/account-settings/editable-text.js +1 -1
  29. package/dist/components-page/account-settings/email-and-auth/emails-section.js +3 -3
  30. package/dist/components-page/account-settings/email-and-auth/mfa-section.js +1 -1
  31. package/dist/components-page/account-settings/email-and-auth/password-section.js +3 -3
  32. package/dist/components-page/account-settings/teams/team-api-keys-section.js +1 -1
  33. package/dist/components-page/account-settings/teams/team-creation-page.js +3 -3
  34. package/dist/components-page/account-settings/teams/team-member-invitation-section.js +4 -4
  35. package/dist/components-page/account-settings.js +3 -3
  36. package/dist/components-page/auth-page.js +2 -2
  37. package/dist/components-page/cli-auth-confirm.js +2 -2
  38. package/dist/components-page/cli-auth-confirm.test.js +1 -1
  39. package/dist/components-page/email-verification.js +1 -1
  40. package/dist/components-page/forgot-password.d.ts.map +1 -1
  41. package/dist/components-page/forgot-password.js +6 -7
  42. package/dist/components-page/forgot-password.js.map +1 -1
  43. package/dist/components-page/hexclave-handler-client.d.ts +1 -1
  44. package/dist/components-page/hexclave-handler-client.js +2 -2
  45. package/dist/components-page/magic-link-callback.js +1 -1
  46. package/dist/components-page/mfa.js +7 -22
  47. package/dist/components-page/mfa.js.map +1 -1
  48. package/dist/components-page/oauth-callback.js +2 -2
  49. package/dist/components-page/onboarding.js +4 -4
  50. package/dist/components-page/password-reset.d.ts.map +1 -1
  51. package/dist/components-page/password-reset.js +12 -14
  52. package/dist/components-page/password-reset.js.map +1 -1
  53. package/dist/components-page/team-creation.js +5 -5
  54. package/dist/dev-tool/dev-tool-core.d.ts.map +1 -1
  55. package/dist/dev-tool/dev-tool-core.js +258 -262
  56. package/dist/dev-tool/dev-tool-core.js.map +1 -1
  57. package/dist/dev-tool/dev-tool-styles.d.ts +1 -1
  58. package/dist/dev-tool/dev-tool-styles.d.ts.map +1 -1
  59. package/dist/dev-tool/dev-tool-styles.js +13 -143
  60. package/dist/dev-tool/dev-tool-styles.js.map +1 -1
  61. package/dist/dev-tool/index.d.ts.map +1 -1
  62. package/dist/dev-tool/index.js +4 -11
  63. package/dist/dev-tool/index.js.map +1 -1
  64. package/dist/esm/clickmap/clickmap-core.d.ts +15 -0
  65. package/dist/esm/clickmap/clickmap-core.d.ts.map +1 -0
  66. package/dist/esm/clickmap/clickmap-core.js +1525 -0
  67. package/dist/esm/clickmap/clickmap-core.js.map +1 -0
  68. package/dist/esm/clickmap/clickmap-styles.d.ts +5 -0
  69. package/dist/esm/clickmap/clickmap-styles.d.ts.map +1 -0
  70. package/dist/esm/clickmap/clickmap-styles.js +1093 -0
  71. package/dist/esm/clickmap/clickmap-styles.js.map +1 -0
  72. package/dist/esm/clickmap/index.d.ts +16 -0
  73. package/dist/esm/clickmap/index.d.ts.map +1 -0
  74. package/dist/esm/clickmap/index.js +72 -0
  75. package/dist/esm/clickmap/index.js.map +1 -0
  76. package/dist/esm/components/api-key-dialogs.d.ts +1 -1
  77. package/dist/esm/components/api-key-dialogs.js +5 -5
  78. package/dist/esm/components/credential-sign-in.js +3 -3
  79. package/dist/esm/components/credential-sign-up.js +5 -5
  80. package/dist/esm/components/elements/sidebar-layout.js +1 -1
  81. package/dist/esm/components/elements/user-avatar.js +1 -1
  82. package/dist/esm/components/magic-link-sign-in.js +5 -5
  83. package/dist/esm/components/message-cards/predefined-message-card.js +1 -1
  84. package/dist/esm/components/passkey-button.js +1 -1
  85. package/dist/esm/components/profile-image-editor.js +1 -1
  86. package/dist/esm/components/team-icon.js +1 -1
  87. package/dist/esm/components/team-switcher.js +2 -2
  88. package/dist/esm/components/user-button.js +1 -1
  89. package/dist/esm/components-page/account-settings/active-sessions/active-sessions-page.js +1 -1
  90. package/dist/esm/components-page/account-settings/editable-text.js +1 -1
  91. package/dist/esm/components-page/account-settings/email-and-auth/emails-section.js +3 -3
  92. package/dist/esm/components-page/account-settings/email-and-auth/mfa-section.js +1 -1
  93. package/dist/esm/components-page/account-settings/email-and-auth/password-section.js +3 -3
  94. package/dist/esm/components-page/account-settings/teams/team-api-keys-section.js +1 -1
  95. package/dist/esm/components-page/account-settings/teams/team-creation-page.js +3 -3
  96. package/dist/esm/components-page/account-settings/teams/team-member-invitation-section.js +4 -4
  97. package/dist/esm/components-page/account-settings.d.ts +1 -1
  98. package/dist/esm/components-page/account-settings.js +3 -3
  99. package/dist/esm/components-page/auth-page.js +2 -2
  100. package/dist/esm/components-page/cli-auth-confirm.js +2 -2
  101. package/dist/esm/components-page/cli-auth-confirm.test.js +1 -1
  102. package/dist/esm/components-page/email-verification.js +1 -1
  103. package/dist/esm/components-page/forgot-password.d.ts.map +1 -1
  104. package/dist/esm/components-page/forgot-password.js +6 -7
  105. package/dist/esm/components-page/forgot-password.js.map +1 -1
  106. package/dist/esm/components-page/hexclave-handler-client.d.ts +1 -1
  107. package/dist/esm/components-page/hexclave-handler-client.js +2 -2
  108. package/dist/esm/components-page/magic-link-callback.js +1 -1
  109. package/dist/esm/components-page/mfa.js +7 -22
  110. package/dist/esm/components-page/mfa.js.map +1 -1
  111. package/dist/esm/components-page/oauth-callback.js +2 -2
  112. package/dist/esm/components-page/onboarding.js +4 -4
  113. package/dist/esm/components-page/password-reset.d.ts.map +1 -1
  114. package/dist/esm/components-page/password-reset.js +11 -13
  115. package/dist/esm/components-page/password-reset.js.map +1 -1
  116. package/dist/esm/components-page/team-creation.js +5 -5
  117. package/dist/esm/dev-tool/dev-tool-core.d.ts.map +1 -1
  118. package/dist/esm/dev-tool/dev-tool-core.js +35 -39
  119. package/dist/esm/dev-tool/dev-tool-core.js.map +1 -1
  120. package/dist/esm/dev-tool/dev-tool-styles.d.ts +1 -1
  121. package/dist/esm/dev-tool/dev-tool-styles.d.ts.map +1 -1
  122. package/dist/esm/dev-tool/dev-tool-styles.js +13 -143
  123. package/dist/esm/dev-tool/dev-tool-styles.js.map +1 -1
  124. package/dist/esm/dev-tool/index.d.ts.map +1 -1
  125. package/dist/esm/dev-tool/index.js +1 -8
  126. package/dist/esm/dev-tool/index.js.map +1 -1
  127. package/dist/esm/generated/global-css.d.ts +1 -1
  128. package/dist/esm/generated/global-css.js +1 -1
  129. package/dist/esm/generated/global-css.js.map +1 -1
  130. package/dist/esm/generated/quetzal-translations.d.ts +2 -2
  131. package/dist/esm/in-page-ui/base-styles.d.ts +5 -0
  132. package/dist/esm/in-page-ui/base-styles.d.ts.map +1 -0
  133. package/dist/esm/in-page-ui/base-styles.js +166 -0
  134. package/dist/esm/in-page-ui/base-styles.js.map +1 -0
  135. package/dist/esm/in-page-ui/dom.d.ts +15 -0
  136. package/dist/esm/in-page-ui/dom.d.ts.map +1 -0
  137. package/dist/esm/in-page-ui/dom.js +44 -0
  138. package/dist/esm/in-page-ui/dom.js.map +1 -0
  139. package/dist/esm/lib/auth.js +2 -2
  140. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts +6 -2
  141. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +1 -1
  142. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.js +21 -1
  143. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.js.map +1 -1
  144. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.d.ts +1 -1
  145. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +1 -1
  146. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.js +4 -2
  147. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -1
  148. package/dist/esm/lib/hexclave-app/apps/implementations/common.js +2 -2
  149. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.d.ts +13 -0
  150. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.d.ts.map +1 -1
  151. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.js +146 -14
  152. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.js.map +1 -1
  153. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.test.js +221 -0
  154. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.test.js.map +1 -1
  155. package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.d.ts +2 -2
  156. package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.js +1 -1
  157. package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.d.ts +5 -0
  158. package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.d.ts.map +1 -1
  159. package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.js.map +1 -1
  160. package/dist/esm/lib/hexclave-app/users/index.d.ts +1 -1
  161. package/dist/esm/providers/theme-provider.js +1 -1
  162. package/dist/esm/providers/translation-provider.js +1 -1
  163. package/dist/generated/global-css.d.ts +1 -1
  164. package/dist/generated/global-css.js +1 -1
  165. package/dist/generated/global-css.js.map +1 -1
  166. package/dist/generated/quetzal-translations.d.ts +2 -2
  167. package/dist/in-page-ui/base-styles.d.ts +5 -0
  168. package/dist/in-page-ui/base-styles.d.ts.map +1 -0
  169. package/dist/in-page-ui/base-styles.js +168 -0
  170. package/dist/in-page-ui/base-styles.js.map +1 -0
  171. package/dist/in-page-ui/dom.d.ts +15 -0
  172. package/dist/in-page-ui/dom.d.ts.map +1 -0
  173. package/dist/in-page-ui/dom.js +51 -0
  174. package/dist/in-page-ui/dom.js.map +1 -0
  175. package/dist/index.d.ts +1 -1
  176. package/dist/integrations/convex/component/convex.config.d.ts +1 -1
  177. package/dist/lib/auth.js +2 -2
  178. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts +5 -1
  179. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +1 -1
  180. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.js +21 -1
  181. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.js.map +1 -1
  182. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +1 -1
  183. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.js +4 -2
  184. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -1
  185. package/dist/lib/hexclave-app/apps/implementations/common.js +2 -2
  186. package/dist/lib/hexclave-app/apps/implementations/event-tracker.d.ts +13 -0
  187. package/dist/lib/hexclave-app/apps/implementations/event-tracker.d.ts.map +1 -1
  188. package/dist/lib/hexclave-app/apps/implementations/event-tracker.js +146 -14
  189. package/dist/lib/hexclave-app/apps/implementations/event-tracker.js.map +1 -1
  190. package/dist/lib/hexclave-app/apps/implementations/event-tracker.test.js +221 -0
  191. package/dist/lib/hexclave-app/apps/implementations/event-tracker.test.js.map +1 -1
  192. package/dist/lib/hexclave-app/apps/implementations/server-app-impl.d.ts +1 -1
  193. package/dist/lib/hexclave-app/apps/implementations/server-app-impl.js +1 -1
  194. package/dist/lib/hexclave-app/apps/interfaces/admin-app.d.ts +5 -0
  195. package/dist/lib/hexclave-app/apps/interfaces/admin-app.d.ts.map +1 -1
  196. package/dist/lib/hexclave-app/apps/interfaces/admin-app.js.map +1 -1
  197. package/dist/lib/hexclave-app/apps/interfaces/server-app.d.ts +1 -1
  198. package/dist/lib/hexclave-app/common.d.ts +1 -1
  199. package/dist/providers/hexclave-provider-client.d.ts +1 -1
  200. package/dist/providers/theme-provider.js +1 -1
  201. package/dist/providers/translation-provider.js +1 -1
  202. package/dist/{storage-CKzvsBxG.d.ts → storage-ksajV_p6.d.ts} +1 -1
  203. package/dist/{storage-CKzvsBxG.d.ts.map → storage-ksajV_p6.d.ts.map} +1 -1
  204. package/package.json +4 -4
  205. package/src/clickmap/clickmap-core.ts +1997 -0
  206. package/src/clickmap/clickmap-styles.ts +1102 -0
  207. package/src/clickmap/index.ts +95 -0
  208. package/src/components-page/forgot-password.tsx +1 -2
  209. package/src/components-page/mfa.tsx +12 -21
  210. package/src/components-page/password-reset.tsx +4 -6
  211. package/src/dev-tool/dev-tool-core.ts +38 -65
  212. package/src/dev-tool/dev-tool-styles.ts +13 -142
  213. package/src/dev-tool/index.ts +1 -14
  214. package/src/in-page-ui/base-styles.ts +171 -0
  215. package/src/in-page-ui/dom.ts +80 -0
  216. package/src/lib/hexclave-app/apps/implementations/admin-app-impl.ts +23 -1
  217. package/src/lib/hexclave-app/apps/implementations/client-app-impl.ts +7 -0
  218. package/src/lib/hexclave-app/apps/implementations/event-tracker.test.ts +287 -0
  219. package/src/lib/hexclave-app/apps/implementations/event-tracker.ts +226 -16
  220. package/src/lib/hexclave-app/apps/interfaces/admin-app.ts +3 -0
@@ -0,0 +1,1093 @@
1
+ import { getInPageUiBaseCSS } from "../in-page-ui/base-styles.js";
2
+
3
+ //#region src/clickmap/clickmap-styles.ts
4
+ const clickmapCSS = getInPageUiBaseCSS(".hexclave-clickmap") + `
5
+ /* Bottom-centered floating panel (the clickmap's only chrome) */
6
+ .hexclave-clickmap .sdt-hm-panel {
7
+ position: fixed;
8
+ left: 50%;
9
+ bottom: 18px;
10
+ z-index: 2147483647;
11
+ width: min(680px, calc(100vw - 24px));
12
+ max-width: calc(100vw - 24px);
13
+ max-height: calc(100vh - 36px);
14
+ transform: translateX(-50%);
15
+ display: flex;
16
+ flex-direction: column;
17
+ overflow: visible;
18
+ }
19
+
20
+ .hexclave-clickmap .sdt-hm-panel-inner {
21
+ display: flex;
22
+ flex-direction: column;
23
+ width: 100%;
24
+ animation: sdt-hm-panel-enter 0.2s ease-out;
25
+ }
26
+
27
+ @keyframes sdt-hm-panel-enter {
28
+ from {
29
+ opacity: 0;
30
+ transform: scale(0.95) translateY(8px);
31
+ }
32
+ to {
33
+ opacity: 1;
34
+ transform: scale(1) translateY(0);
35
+ }
36
+ }
37
+
38
+ /* --- Clickmaps --- */
39
+
40
+ .hexclave-clickmap .sdt-hm {
41
+ height: auto;
42
+ display: flex;
43
+ flex-direction: column;
44
+ gap: 8px;
45
+ overflow: visible;
46
+ background: transparent;
47
+ }
48
+
49
+ /* One spacing rhythm across the pill: a tight 2px base gap so adjacent
50
+ controls read as clusters, with the wider between-group separation
51
+ coming only from the metrics block's own padding (and the title's
52
+ trailing padding). Item-level whitespace inside ghost icon buttons
53
+ already provides the rest of the breathing room. */
54
+ .hexclave-clickmap .sdt-hm-toolbar {
55
+ position: relative;
56
+ z-index: 4;
57
+ display: flex;
58
+ align-items: center;
59
+ gap: 2px;
60
+ min-height: 44px;
61
+ padding: 6px 8px;
62
+ border: 1px solid var(--sdt-border);
63
+ border-radius: 999px;
64
+ background: var(--sdt-overlay-bg);
65
+ box-shadow: 0 18px 48px rgba(0, 0, 0, 0.24);
66
+ backdrop-filter: blur(18px);
67
+ }
68
+
69
+ .hexclave-clickmap .sdt-hm-toolbar-title {
70
+ flex-shrink: 0;
71
+ padding: 0 6px 0 2px;
72
+ font-size: 13px;
73
+ font-weight: 650;
74
+ color: var(--sdt-text);
75
+ line-height: 1.1;
76
+ }
77
+
78
+ .hexclave-clickmap .sdt-hm-toolbar-filters {
79
+ flex: 1;
80
+ min-width: 0;
81
+ display: flex;
82
+ align-items: center;
83
+ gap: 6px;
84
+ }
85
+
86
+ .hexclave-clickmap .sdt-hm-toolbar-filters .sdt-hm-filter-input {
87
+ height: 28px;
88
+ border-radius: 999px;
89
+ font-size: 11.5px;
90
+ }
91
+
92
+ .hexclave-clickmap .sdt-hm-toolbar-filters > .sdt-hm-filter-input {
93
+ flex-shrink: 0;
94
+ width: auto;
95
+ max-width: 120px;
96
+ padding-right: 4px;
97
+ }
98
+
99
+ .hexclave-clickmap .sdt-hm-toolbar-url {
100
+ position: relative;
101
+ flex: 1;
102
+ min-width: 0;
103
+ display: flex;
104
+ align-items: center;
105
+ /* The revert/info ghost buttons hug the input they belong to. */
106
+ gap: 2px;
107
+ }
108
+
109
+ .hexclave-clickmap .sdt-hm-toolbar-url .sdt-hm-filter-input {
110
+ flex: 1;
111
+ }
112
+
113
+ .hexclave-clickmap .sdt-hm-mode {
114
+ flex-shrink: 0;
115
+ display: inline-flex;
116
+ align-items: center;
117
+ gap: 2px;
118
+ padding: 2px;
119
+ border-radius: 999px;
120
+ background: var(--sdt-bg-elevated);
121
+ border: 1px solid var(--sdt-border-subtle);
122
+ }
123
+
124
+ .hexclave-clickmap .sdt-hm-mode-btn {
125
+ min-width: 24px;
126
+ height: 20px;
127
+ display: inline-flex;
128
+ align-items: center;
129
+ justify-content: center;
130
+ border: 0;
131
+ border-radius: 999px;
132
+ background: transparent;
133
+ color: var(--sdt-text-tertiary);
134
+ padding: 0 7px;
135
+ font: inherit;
136
+ font-family: var(--sdt-font-mono, ui-monospace, monospace);
137
+ font-size: 11px;
138
+ font-weight: 600;
139
+ cursor: pointer;
140
+ }
141
+
142
+ .hexclave-clickmap .sdt-hm-mode-btn:not(.sdt-hm-mode-btn-active):hover {
143
+ color: var(--sdt-text);
144
+ }
145
+
146
+ .hexclave-clickmap .sdt-hm-mode-btn-active {
147
+ background: var(--sdt-accent);
148
+ color: white;
149
+ }
150
+
151
+ .hexclave-clickmap .sdt-hm-filter-input-error,
152
+ .hexclave-clickmap .sdt-hm-filter-input-error:focus {
153
+ border-color: var(--sdt-error);
154
+ }
155
+
156
+ .hexclave-clickmap .sdt-hm-filter-info {
157
+ flex-shrink: 0;
158
+ width: 20px;
159
+ height: 20px;
160
+ display: inline-flex;
161
+ align-items: center;
162
+ justify-content: center;
163
+ border: 0;
164
+ border-radius: 999px;
165
+ background: transparent;
166
+ color: var(--sdt-text-tertiary);
167
+ cursor: pointer;
168
+ padding: 0;
169
+ }
170
+
171
+ .hexclave-clickmap .sdt-hm-filter-info:hover,
172
+ .hexclave-clickmap .sdt-hm-filter-info[aria-expanded="true"] {
173
+ background: var(--sdt-bg-hover);
174
+ color: var(--sdt-text);
175
+ }
176
+
177
+ .hexclave-clickmap .sdt-hm-url-help {
178
+ display: none;
179
+ position: absolute;
180
+ bottom: calc(100% + 10px);
181
+ right: 0;
182
+ z-index: 6;
183
+ width: 320px;
184
+ max-width: min(320px, calc(100vw - 32px));
185
+ box-sizing: border-box;
186
+ padding: 14px;
187
+ border: 1px solid var(--sdt-border);
188
+ border-radius: var(--sdt-radius-lg);
189
+ background: var(--sdt-bg);
190
+ box-shadow: 0 18px 48px rgba(0, 0, 0, 0.28);
191
+ backdrop-filter: blur(18px);
192
+ cursor: default;
193
+ }
194
+
195
+ .hexclave-clickmap .sdt-hm-url-help-open {
196
+ display: block;
197
+ }
198
+
199
+ .hexclave-clickmap .sdt-hm-url-help-title {
200
+ font-size: 12px;
201
+ font-weight: 650;
202
+ color: var(--sdt-text);
203
+ margin-bottom: 6px;
204
+ }
205
+
206
+ .hexclave-clickmap .sdt-hm-url-help-body {
207
+ font-size: 11.5px;
208
+ line-height: 1.5;
209
+ color: var(--sdt-text-secondary);
210
+ }
211
+
212
+ .hexclave-clickmap .sdt-hm-url-help-rows {
213
+ display: flex;
214
+ flex-direction: column;
215
+ gap: 6px;
216
+ margin-top: 12px;
217
+ padding-top: 12px;
218
+ border-top: 1px solid var(--sdt-border-subtle);
219
+ }
220
+
221
+ .hexclave-clickmap .sdt-hm-url-help-row {
222
+ display: flex;
223
+ align-items: baseline;
224
+ gap: 10px;
225
+ }
226
+
227
+ .hexclave-clickmap .sdt-hm-url-help-code {
228
+ flex-shrink: 0;
229
+ border-radius: var(--sdt-radius);
230
+ background: var(--sdt-bg-elevated);
231
+ border: 1px solid var(--sdt-border-subtle);
232
+ padding: 1px 6px;
233
+ font-family: var(--sdt-font-mono, ui-monospace, monospace);
234
+ font-size: 11px;
235
+ color: var(--sdt-text);
236
+ white-space: nowrap;
237
+ }
238
+
239
+ .hexclave-clickmap .sdt-hm-url-help-desc {
240
+ font-size: 11px;
241
+ line-height: 1.4;
242
+ color: var(--sdt-text-secondary);
243
+ }
244
+
245
+ .hexclave-clickmap .sdt-hm-toolbar-metrics {
246
+ flex-shrink: 0;
247
+ display: flex;
248
+ align-items: center;
249
+ gap: 8px;
250
+ /* Side padding is what separates the metrics group from the url field
251
+ on its left and the toggle cluster on its right. */
252
+ padding: 0 8px;
253
+ }
254
+
255
+ .hexclave-clickmap .sdt-hm-toolbar-metric {
256
+ display: inline-flex;
257
+ align-items: center;
258
+ gap: 4px;
259
+ color: var(--sdt-text-secondary);
260
+ }
261
+
262
+ .hexclave-clickmap .sdt-hm-toolbar-metric-value {
263
+ font-size: 12px;
264
+ font-weight: 700;
265
+ color: var(--sdt-text);
266
+ font-variant-numeric: tabular-nums;
267
+ }
268
+
269
+ .hexclave-clickmap .sdt-hm-toolbar-metric-icon {
270
+ display: inline-flex;
271
+ align-items: center;
272
+ color: var(--sdt-text-tertiary);
273
+ }
274
+
275
+ .hexclave-clickmap .sdt-hm-icon-btn {
276
+ width: 28px;
277
+ height: 28px;
278
+ display: inline-flex;
279
+ align-items: center;
280
+ justify-content: center;
281
+ flex-shrink: 0;
282
+ border: 0;
283
+ border-radius: 999px;
284
+ background: transparent;
285
+ color: var(--sdt-text-secondary);
286
+ cursor: pointer;
287
+ }
288
+
289
+ .hexclave-clickmap .sdt-hm-icon-btn:hover {
290
+ background: var(--sdt-bg-hover);
291
+ color: var(--sdt-text);
292
+ }
293
+
294
+ /* Presses must always target the button itself: the chevron svg is replaced
295
+ when the panel toggles, and a press whose mousedown landed on a since-
296
+ detached svg never produces a click. */
297
+ .hexclave-clickmap .sdt-hm-icon-btn svg {
298
+ pointer-events: none;
299
+ }
300
+
301
+ /* Styled tooltips for toolbar controls, driven by a data-sdt-tip attribute
302
+ instead of native title so they match the overlay theme and also show on
303
+ keyboard focus. The hover transition-delay acts as a hover-intent gate so
304
+ tooltips don't flash while the pointer crosses the toolbar; hover-out has
305
+ no delay, so they dismiss instantly. */
306
+ .hexclave-clickmap [data-sdt-tip] {
307
+ position: relative;
308
+ }
309
+
310
+ .hexclave-clickmap [data-sdt-tip]::after {
311
+ content: attr(data-sdt-tip);
312
+ position: absolute;
313
+ bottom: calc(100% + 8px);
314
+ left: 50%;
315
+ transform: translateX(-50%) translateY(2px);
316
+ padding: 4px 8px;
317
+ border: 1px solid var(--sdt-border);
318
+ border-radius: var(--sdt-radius);
319
+ background: var(--sdt-overlay-bg);
320
+ backdrop-filter: blur(18px);
321
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.24);
322
+ color: var(--sdt-text);
323
+ font-size: 11px;
324
+ font-weight: 600;
325
+ line-height: 1.2;
326
+ white-space: nowrap;
327
+ pointer-events: none;
328
+ opacity: 0;
329
+ transition: opacity 0.12s ease, transform 0.12s ease;
330
+ z-index: 3;
331
+ }
332
+
333
+ .hexclave-clickmap [data-sdt-tip]:hover::after,
334
+ .hexclave-clickmap [data-sdt-tip]:focus-visible::after {
335
+ opacity: 1;
336
+ transform: translateX(-50%) translateY(0);
337
+ transition-delay: 0.35s;
338
+ }
339
+
340
+ /* The info button's tooltip would sit on top of its own help popover. */
341
+ .hexclave-clickmap .sdt-hm-filter-info[aria-expanded="true"]::after {
342
+ opacity: 0;
343
+ }
344
+
345
+ .hexclave-clickmap .sdt-hm-details {
346
+ display: none;
347
+ position: relative;
348
+ z-index: 1;
349
+ max-height: min(460px, calc(100vh - 98px));
350
+ overflow: hidden;
351
+ border: 1px solid var(--sdt-border);
352
+ border-radius: var(--sdt-radius-lg);
353
+ background: var(--sdt-bg);
354
+ box-shadow: 0 18px 48px rgba(0, 0, 0, 0.22);
355
+ }
356
+
357
+ .hexclave-clickmap .sdt-hm-expanded .sdt-hm-details {
358
+ display: flex;
359
+ flex-direction: column;
360
+ }
361
+
362
+ .hexclave-clickmap .sdt-hm-head {
363
+ flex-shrink: 0;
364
+ display: flex;
365
+ flex-direction: column;
366
+ gap: 14px;
367
+ padding: 16px;
368
+ border-bottom: 1px solid var(--sdt-border-subtle);
369
+ }
370
+
371
+ .hexclave-clickmap .sdt-hm-filters {
372
+ display: flex;
373
+ flex-direction: column;
374
+ gap: 12px;
375
+ }
376
+
377
+ .hexclave-clickmap .sdt-hm-filter-row {
378
+ display: grid;
379
+ grid-template-columns: repeat(2, minmax(0, 1fr));
380
+ gap: 12px;
381
+ }
382
+
383
+ .hexclave-clickmap .sdt-hm-seg {
384
+ position: relative;
385
+ display: flex;
386
+ align-items: stretch;
387
+ gap: 2px;
388
+ height: 30px;
389
+ padding: 3px;
390
+ border-radius: var(--sdt-radius);
391
+ border: 1px solid var(--sdt-border-subtle);
392
+ background: var(--sdt-bg-elevated);
393
+ box-sizing: border-box;
394
+ }
395
+
396
+ .hexclave-clickmap .sdt-hm-seg-thumb {
397
+ position: absolute;
398
+ top: 3px;
399
+ left: 0;
400
+ bottom: 3px;
401
+ width: 0;
402
+ border-radius: calc(var(--sdt-radius) - 2px);
403
+ background: var(--sdt-bg);
404
+ border: 1px solid var(--sdt-border);
405
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
406
+ transform: translateX(0);
407
+ transition: transform 220ms cubic-bezier(0.22, 1, 0.36, 1), width 220ms cubic-bezier(0.22, 1, 0.36, 1);
408
+ pointer-events: none;
409
+ }
410
+
411
+ .hexclave-clickmap .sdt-hm-seg-btn {
412
+ position: relative;
413
+ z-index: 1;
414
+ flex: 1 1 0;
415
+ min-width: 0;
416
+ border: 0;
417
+ background: transparent;
418
+ color: var(--sdt-text-tertiary);
419
+ font: inherit;
420
+ font-family: var(--sdt-font);
421
+ font-size: 11px;
422
+ font-weight: 600;
423
+ line-height: 1;
424
+ padding: 0 4px;
425
+ border-radius: calc(var(--sdt-radius) - 2px);
426
+ cursor: pointer;
427
+ white-space: nowrap;
428
+ overflow: hidden;
429
+ text-overflow: ellipsis;
430
+ transition: color 160ms ease;
431
+ }
432
+
433
+ .hexclave-clickmap .sdt-hm-seg-btn:hover {
434
+ color: var(--sdt-text-secondary);
435
+ }
436
+
437
+ .hexclave-clickmap .sdt-hm-seg-btn[aria-checked="true"] {
438
+ color: var(--sdt-text);
439
+ }
440
+
441
+ .hexclave-clickmap .sdt-hm-seg-btn:focus-visible {
442
+ outline: 2px solid var(--sdt-accent);
443
+ outline-offset: -2px;
444
+ }
445
+
446
+ @media (prefers-reduced-motion: reduce) {
447
+ .hexclave-clickmap .sdt-hm-seg-thumb {
448
+ transition: none;
449
+ }
450
+ }
451
+
452
+ .hexclave-clickmap .sdt-hm-filter-field {
453
+ display: flex;
454
+ flex-direction: column;
455
+ gap: 5px;
456
+ min-width: 0;
457
+ }
458
+
459
+ .hexclave-clickmap .sdt-hm-filter-label-row {
460
+ display: flex;
461
+ align-items: center;
462
+ justify-content: space-between;
463
+ gap: 6px;
464
+ min-height: 13px;
465
+ }
466
+
467
+ .hexclave-clickmap .sdt-hm-filter-label {
468
+ font-size: 10px;
469
+ font-weight: 600;
470
+ text-transform: uppercase;
471
+ letter-spacing: 0.04em;
472
+ color: var(--sdt-text-tertiary);
473
+ }
474
+
475
+ .hexclave-clickmap .sdt-hm-filter-reset {
476
+ display: none;
477
+ flex-shrink: 0;
478
+ width: 20px;
479
+ height: 20px;
480
+ align-items: center;
481
+ justify-content: center;
482
+ border: 0;
483
+ border-radius: 999px;
484
+ background: transparent;
485
+ padding: 0;
486
+ color: var(--sdt-accent);
487
+ cursor: pointer;
488
+ }
489
+
490
+ .hexclave-clickmap .sdt-hm-filter-reset:hover {
491
+ background: var(--sdt-bg-hover);
492
+ color: var(--sdt-accent-hover);
493
+ }
494
+
495
+ .hexclave-clickmap .sdt-hm-filter-reset-visible {
496
+ display: inline-flex;
497
+ }
498
+
499
+ .hexclave-clickmap .sdt-hm-filter-input {
500
+ height: 30px;
501
+ border-radius: var(--sdt-radius);
502
+ border: 1px solid var(--sdt-border-subtle);
503
+ background: var(--sdt-bg-elevated);
504
+ color: var(--sdt-text);
505
+ padding: 0 9px;
506
+ font: inherit;
507
+ font-size: 12px;
508
+ font-family: var(--sdt-font);
509
+ min-width: 0;
510
+ width: 100%;
511
+ box-sizing: border-box;
512
+ }
513
+
514
+ .hexclave-clickmap .sdt-hm-filter-input:focus {
515
+ outline: none;
516
+ border-color: var(--sdt-accent);
517
+ }
518
+
519
+ .hexclave-clickmap .sdt-hm-actions {
520
+ display: flex;
521
+ align-items: stretch;
522
+ gap: 10px;
523
+ }
524
+
525
+ .hexclave-clickmap .sdt-hm-actions .sdt-hm-btn {
526
+ height: auto;
527
+ flex-shrink: 0;
528
+ white-space: nowrap;
529
+ padding: 0 16px;
530
+ }
531
+
532
+ .hexclave-clickmap .sdt-hm-btn {
533
+ height: 30px;
534
+ border-radius: var(--sdt-radius);
535
+ border: 1px solid var(--sdt-border-subtle);
536
+ background: var(--sdt-bg-elevated);
537
+ color: var(--sdt-text-secondary);
538
+ padding: 0 10px;
539
+ font: inherit;
540
+ font-size: 12px;
541
+ cursor: pointer;
542
+ transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
543
+ }
544
+
545
+ .hexclave-clickmap .sdt-hm-btn:hover {
546
+ background: var(--sdt-bg-hover);
547
+ color: var(--sdt-text);
548
+ transition: none;
549
+ }
550
+
551
+ .hexclave-clickmap .sdt-hm-btn-primary {
552
+ background: var(--sdt-accent);
553
+ border-color: var(--sdt-accent);
554
+ color: white;
555
+ }
556
+
557
+ .hexclave-clickmap .sdt-hm-btn-primary:hover {
558
+ background: var(--sdt-accent);
559
+ border-color: var(--sdt-accent);
560
+ color: white;
561
+ transition: none;
562
+ }
563
+
564
+ .hexclave-clickmap .sdt-hm-btn-sm {
565
+ height: 24px;
566
+ flex-shrink: 0;
567
+ border-radius: 999px;
568
+ padding: 0 10px;
569
+ font-size: 11px;
570
+ font-weight: 600;
571
+ white-space: nowrap;
572
+ }
573
+
574
+ .hexclave-clickmap .sdt-hm-btn:disabled {
575
+ opacity: 0.45;
576
+ pointer-events: none;
577
+ }
578
+
579
+ /* Dead-clicks-only filter toggle (toolbar icon button + expanded-panel
580
+ button). Active state borrows the error tint used by the dead chips so
581
+ the mode reads as "you are looking at failures". */
582
+ .hexclave-clickmap .sdt-hm-dead-toggle {
583
+ display: inline-flex;
584
+ align-items: center;
585
+ justify-content: center;
586
+ gap: 6px;
587
+ }
588
+
589
+ .hexclave-clickmap .sdt-hm-dead-toggle-icon {
590
+ display: inline-flex;
591
+ align-items: center;
592
+ }
593
+
594
+ .hexclave-clickmap .sdt-hm-dead-toggle-active,
595
+ .hexclave-clickmap .sdt-hm-dead-toggle-active:hover {
596
+ background: var(--sdt-error-muted);
597
+ border-color: var(--sdt-error);
598
+ color: var(--sdt-error);
599
+ transition: none;
600
+ }
601
+
602
+ /* Toolbar overlay toggle while the overlay is hidden: tinted so the off
603
+ state reads at a glance, eye-off icon carries the meaning. */
604
+ .hexclave-clickmap .sdt-hm-overlay-mini-off,
605
+ .hexclave-clickmap .sdt-hm-overlay-mini-off:hover {
606
+ background: var(--sdt-accent-muted);
607
+ color: var(--sdt-accent-hover);
608
+ }
609
+
610
+ .hexclave-clickmap .sdt-hm-stats {
611
+ flex: 1;
612
+ min-width: 0;
613
+ display: grid;
614
+ grid-template-columns: repeat(3, minmax(0, 1fr));
615
+ gap: 8px;
616
+ }
617
+
618
+ .hexclave-clickmap .sdt-hm-stat {
619
+ min-width: 0;
620
+ display: flex;
621
+ flex-direction: column;
622
+ gap: 2px;
623
+ border-radius: var(--sdt-radius);
624
+ background: var(--sdt-bg-elevated);
625
+ padding: 7px 10px;
626
+ }
627
+
628
+ .hexclave-clickmap .sdt-hm-stat-label {
629
+ font-size: 9.5px;
630
+ font-weight: 600;
631
+ text-transform: uppercase;
632
+ letter-spacing: 0.04em;
633
+ color: var(--sdt-text-tertiary);
634
+ }
635
+
636
+ .hexclave-clickmap .sdt-hm-stat-value {
637
+ font-size: 15px;
638
+ font-weight: 650;
639
+ color: var(--sdt-text);
640
+ font-variant-numeric: tabular-nums;
641
+ }
642
+
643
+ /* No top padding on the scroller: the sticky list header pins at top 0,
644
+ and scroller padding reads as a see-through strip above it while the
645
+ list scrolls (Chromium offsets sticky insets by the scroll container's
646
+ padding). The status line below carries the 12px instead. */
647
+ .hexclave-clickmap .sdt-hm-body {
648
+ flex: 1;
649
+ min-height: 0;
650
+ overflow: auto;
651
+ display: flex;
652
+ flex-direction: column;
653
+ gap: 10px;
654
+ padding: 0 16px 14px;
655
+ }
656
+
657
+ .hexclave-clickmap .sdt-hm-token-status {
658
+ color: var(--sdt-text-secondary);
659
+ padding: 12px 2px 0;
660
+ font-size: 11.5px;
661
+ line-height: 1.45;
662
+ }
663
+
664
+ .hexclave-clickmap .sdt-hm-token-status-error {
665
+ color: var(--sdt-error);
666
+ }
667
+
668
+ .hexclave-clickmap .sdt-hm-viewport-warning {
669
+ display: none;
670
+ gap: 8px;
671
+ padding: 10px;
672
+ border-radius: var(--sdt-radius);
673
+ border: 1px solid rgba(234, 179, 8, 0.24);
674
+ background: var(--sdt-warning-muted);
675
+ color: var(--sdt-text);
676
+ }
677
+
678
+ .hexclave-clickmap .sdt-hm-viewport-warning-visible {
679
+ display: flex;
680
+ flex-direction: column;
681
+ }
682
+
683
+ .hexclave-clickmap .sdt-hm-viewport-warning-title {
684
+ font-size: 12px;
685
+ font-weight: 650;
686
+ color: var(--sdt-text);
687
+ line-height: 1.2;
688
+ }
689
+
690
+ .hexclave-clickmap .sdt-hm-viewport-warning-body {
691
+ font-size: 11.5px;
692
+ line-height: 1.45;
693
+ color: var(--sdt-text-secondary);
694
+ }
695
+
696
+ .hexclave-clickmap .sdt-hm-viewport-warning-actions {
697
+ display: flex;
698
+ flex-wrap: wrap;
699
+ gap: 8px;
700
+ }
701
+
702
+ .hexclave-clickmap .sdt-hm-viewport-warning-action {
703
+ min-width: 0;
704
+ display: inline-flex;
705
+ align-items: center;
706
+ gap: 6px;
707
+ border-radius: var(--sdt-radius);
708
+ border: 1px solid var(--sdt-border-subtle);
709
+ background: var(--sdt-bg-elevated);
710
+ padding: 4px 5px 4px 8px;
711
+ }
712
+
713
+ .hexclave-clickmap .sdt-hm-viewport-warning-label {
714
+ font-size: 10px;
715
+ font-weight: 600;
716
+ text-transform: uppercase;
717
+ letter-spacing: 0.04em;
718
+ color: var(--sdt-text-tertiary);
719
+ }
720
+
721
+ .hexclave-clickmap .sdt-hm-viewport-warning-code {
722
+ font-family: var(--sdt-font-mono);
723
+ font-size: 11.5px;
724
+ font-weight: 650;
725
+ color: var(--sdt-text);
726
+ font-variant-numeric: tabular-nums;
727
+ }
728
+
729
+ .hexclave-clickmap .sdt-hm-copy-btn {
730
+ height: 22px;
731
+ border: 1px solid var(--sdt-border-subtle);
732
+ border-radius: 999px;
733
+ background: var(--sdt-bg);
734
+ color: var(--sdt-text-secondary);
735
+ padding: 0 8px;
736
+ font: inherit;
737
+ font-size: 10.5px;
738
+ font-weight: 600;
739
+ cursor: pointer;
740
+ transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
741
+ }
742
+
743
+ .hexclave-clickmap .sdt-hm-copy-btn:hover {
744
+ background: var(--sdt-bg-hover);
745
+ border-color: var(--sdt-border);
746
+ color: var(--sdt-text);
747
+ transition: none;
748
+ }
749
+
750
+ .hexclave-clickmap .sdt-hm-list {
751
+ display: flex;
752
+ flex-direction: column;
753
+ gap: 2px;
754
+ }
755
+
756
+ /* Datagrid-style header above the element list. Sticky inside the
757
+ scrolling body (full-bleed via negative margins) so select-all and the
758
+ bulk show/hide actions stay reachable while the list scrolls. The 24px
759
+ left padding lines its master checkbox up with the row checkboxes
760
+ (16px body padding + 8px row padding). */
761
+ .hexclave-clickmap .sdt-hm-list-header {
762
+ display: none;
763
+ position: sticky;
764
+ top: 0;
765
+ z-index: 2;
766
+ align-items: center;
767
+ gap: 8px;
768
+ margin: 0 -16px;
769
+ padding: 8px 24px;
770
+ background: var(--sdt-bg);
771
+ border-bottom: 1px solid var(--sdt-border-subtle);
772
+ }
773
+
774
+ .hexclave-clickmap .sdt-hm-list-header-visible {
775
+ display: flex;
776
+ }
777
+
778
+ .hexclave-clickmap .sdt-hm-list-header-summary {
779
+ flex: 1;
780
+ min-width: 0;
781
+ overflow: hidden;
782
+ text-overflow: ellipsis;
783
+ white-space: nowrap;
784
+ font-size: 11px;
785
+ font-weight: 600;
786
+ color: var(--sdt-text-secondary);
787
+ font-variant-numeric: tabular-nums;
788
+ }
789
+
790
+ /* Element search, compacted to header height. Shrinks before the summary
791
+ does, but never below a usable width. */
792
+ .hexclave-clickmap .sdt-hm-list-header .sdt-hm-filter-input {
793
+ flex: 0 1 220px;
794
+ width: auto;
795
+ min-width: 90px;
796
+ height: 24px;
797
+ border-radius: 999px;
798
+ font-size: 11px;
799
+ padding: 0 10px;
800
+ }
801
+
802
+ .hexclave-clickmap .sdt-hm-empty {
803
+ display: flex;
804
+ align-items: center;
805
+ justify-content: center;
806
+ min-height: 140px;
807
+ border-radius: var(--sdt-radius);
808
+ border: 1px dashed var(--sdt-border);
809
+ color: var(--sdt-text-tertiary);
810
+ font-size: 12px;
811
+ text-align: center;
812
+ padding: 0 16px;
813
+ }
814
+
815
+ .hexclave-clickmap .sdt-hm-row {
816
+ width: 100%;
817
+ display: grid;
818
+ grid-template-columns: 16px minmax(42px, auto) minmax(0, 1fr) 24px;
819
+ align-items: center;
820
+ gap: 10px;
821
+ border: 0;
822
+ border-radius: var(--sdt-radius);
823
+ background: transparent;
824
+ color: var(--sdt-text);
825
+ padding: 8px;
826
+ text-align: left;
827
+ cursor: pointer;
828
+ font-family: var(--sdt-font);
829
+ user-select: none;
830
+ }
831
+
832
+ .hexclave-clickmap .sdt-hm-row:hover {
833
+ background: var(--sdt-bg-hover);
834
+ transition: none;
835
+ }
836
+
837
+ .hexclave-clickmap .sdt-hm-row:focus-visible {
838
+ outline: 2px solid var(--sdt-accent);
839
+ outline-offset: 2px;
840
+ }
841
+
842
+ .hexclave-clickmap .sdt-hm-row-muted {
843
+ opacity: 0.52;
844
+ }
845
+
846
+ .hexclave-clickmap .sdt-hm-row-highlighted {
847
+ background: rgba(250, 204, 21, 0.12);
848
+ }
849
+
850
+ /* Declared after -highlighted and with a :hover pair so the selection tint
851
+ wins over both the lead-highlight wash and the plain hover background. */
852
+ .hexclave-clickmap .sdt-hm-row-selected,
853
+ .hexclave-clickmap .sdt-hm-row-selected:hover {
854
+ background: var(--sdt-accent-muted);
855
+ }
856
+
857
+ /* Row checkbox (also reused as the list header's master checkbox). A
858
+ button with role=checkbox instead of a native input so it can render the
859
+ overlay-themed check/indeterminate icons. */
860
+ .hexclave-clickmap .sdt-hm-row-check {
861
+ display: inline-flex;
862
+ align-items: center;
863
+ justify-content: center;
864
+ width: 16px;
865
+ height: 16px;
866
+ flex-shrink: 0;
867
+ border: 1px solid var(--sdt-border);
868
+ border-radius: calc(var(--sdt-radius) - 3px);
869
+ background: var(--sdt-bg-elevated);
870
+ color: white;
871
+ appearance: none;
872
+ padding: 0;
873
+ cursor: pointer;
874
+ }
875
+
876
+ .hexclave-clickmap .sdt-hm-row-check:hover {
877
+ border-color: var(--sdt-accent);
878
+ }
879
+
880
+ .hexclave-clickmap .sdt-hm-row-check[aria-checked="true"],
881
+ .hexclave-clickmap .sdt-hm-row-check[aria-checked="mixed"] {
882
+ background: var(--sdt-accent);
883
+ border-color: var(--sdt-accent);
884
+ }
885
+
886
+ .hexclave-clickmap .sdt-hm-row-check:focus-visible {
887
+ outline: 2px solid var(--sdt-accent);
888
+ outline-offset: 2px;
889
+ }
890
+
891
+ .hexclave-clickmap .sdt-hm-row-check svg {
892
+ pointer-events: none;
893
+ }
894
+
895
+ .hexclave-clickmap .sdt-hm-row-count {
896
+ display: inline-flex;
897
+ align-items: center;
898
+ justify-content: center;
899
+ height: 24px;
900
+ border-radius: calc(var(--sdt-radius) - 2px);
901
+ background: var(--sdt-accent-muted);
902
+ color: var(--sdt-accent-hover);
903
+ padding: 0 7px;
904
+ font-size: 12px;
905
+ font-weight: 700;
906
+ font-variant-numeric: tabular-nums;
907
+ font-family: var(--sdt-font);
908
+ }
909
+
910
+ .hexclave-clickmap .sdt-hm-row-muted .sdt-hm-row-count {
911
+ background: var(--sdt-bg-elevated);
912
+ color: var(--sdt-text-tertiary);
913
+ }
914
+
915
+ .hexclave-clickmap .sdt-hm-row-eye {
916
+ display: inline-flex;
917
+ align-items: center;
918
+ justify-content: center;
919
+ width: 24px;
920
+ height: 24px;
921
+ border: 1px solid var(--sdt-border-subtle);
922
+ border-radius: calc(var(--sdt-radius) - 2px);
923
+ background: var(--sdt-bg-elevated);
924
+ color: var(--sdt-text-secondary);
925
+ appearance: none;
926
+ padding: 0;
927
+ cursor: pointer;
928
+ opacity: 0;
929
+ pointer-events: none;
930
+ }
931
+
932
+ .hexclave-clickmap .sdt-hm-row:hover .sdt-hm-row-eye,
933
+ .hexclave-clickmap .sdt-hm-row:focus-within .sdt-hm-row-eye,
934
+ .hexclave-clickmap .sdt-hm-row-muted .sdt-hm-row-eye {
935
+ opacity: 1;
936
+ pointer-events: auto;
937
+ }
938
+
939
+ .hexclave-clickmap .sdt-hm-row-eye:hover {
940
+ background: var(--sdt-bg-hover);
941
+ border-color: var(--sdt-border);
942
+ color: var(--sdt-text);
943
+ transition: none;
944
+ }
945
+
946
+ .hexclave-clickmap .sdt-hm-row-eye:focus-visible {
947
+ outline: 2px solid var(--sdt-accent);
948
+ outline-offset: 2px;
949
+ }
950
+
951
+ .hexclave-clickmap .sdt-hm-row-meta {
952
+ min-width: 0;
953
+ display: flex;
954
+ flex-direction: column;
955
+ gap: 1px;
956
+ }
957
+
958
+ .hexclave-clickmap .sdt-hm-row-label-row {
959
+ display: flex;
960
+ align-items: center;
961
+ gap: 6px;
962
+ min-width: 0;
963
+ }
964
+
965
+ .hexclave-clickmap .sdt-hm-row-label {
966
+ overflow: hidden;
967
+ text-overflow: ellipsis;
968
+ white-space: nowrap;
969
+ min-width: 0;
970
+ font-size: 12px;
971
+ font-weight: 600;
972
+ }
973
+
974
+ .hexclave-clickmap .sdt-hm-row-dead {
975
+ display: none;
976
+ flex: none;
977
+ align-items: center;
978
+ height: 16px;
979
+ border-radius: calc(var(--sdt-radius) - 3px);
980
+ background: var(--sdt-error-muted);
981
+ color: var(--sdt-error);
982
+ padding: 0 5px;
983
+ font-size: 10px;
984
+ font-weight: 700;
985
+ font-variant-numeric: tabular-nums;
986
+ white-space: nowrap;
987
+ }
988
+
989
+ .hexclave-clickmap .sdt-hm-row-dead-visible {
990
+ display: inline-flex;
991
+ }
992
+
993
+ .hexclave-clickmap .sdt-hm-row-selector {
994
+ overflow: hidden;
995
+ text-overflow: ellipsis;
996
+ white-space: nowrap;
997
+ font-family: var(--sdt-font-mono);
998
+ font-size: 10.5px;
999
+ color: var(--sdt-text-tertiary);
1000
+ }
1001
+
1002
+ .sdt-hm-overlay-root {
1003
+ position: fixed;
1004
+ inset: 0;
1005
+ z-index: 2147483646;
1006
+ pointer-events: none;
1007
+ --resize-dur: 320ms;
1008
+ --resize-ease: cubic-bezier(0.22, 1, 0.36, 1);
1009
+ }
1010
+
1011
+ .sdt-hm-overlay-root .sdt-hm-marker {
1012
+ position: fixed;
1013
+ transform: translate(-50%, -50%);
1014
+ min-width: 28px;
1015
+ height: 24px;
1016
+ border-radius: 999px;
1017
+ padding: 0 8px;
1018
+ display: flex;
1019
+ align-items: center;
1020
+ justify-content: center;
1021
+ border: 0;
1022
+ color: rgba(10, 10, 11, 0.92);
1023
+ font: 700 12px/1 var(--sdt-font, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
1024
+ font-variant-numeric: tabular-nums;
1025
+ cursor: pointer;
1026
+ pointer-events: auto;
1027
+ transition: opacity 0.15s ease, transform 0.15s ease, filter 0.15s ease;
1028
+ }
1029
+
1030
+ .sdt-hm-overlay-root .sdt-hm-marker:hover {
1031
+ transform: translate(-50%, -50%) scale(1.06);
1032
+ transition: none;
1033
+ }
1034
+
1035
+ .sdt-hm-overlay-root .sdt-hm-marker-muted {
1036
+ opacity: 0.18;
1037
+ filter: saturate(0.25);
1038
+ text-decoration: line-through;
1039
+ }
1040
+
1041
+ .sdt-hm-overlay-root .sdt-hm-marker-highlighted {
1042
+ transform: translate(-50%, -50%) scale(1.08);
1043
+ }
1044
+
1045
+ .sdt-hm-overlay-root .sdt-hm-outline {
1046
+ position: fixed;
1047
+ border: 1px solid;
1048
+ border-radius: 4px;
1049
+ background: rgba(99, 102, 241, 0.04);
1050
+ transition: opacity 0.15s ease, background 0.15s ease, border-color 0.15s ease;
1051
+ }
1052
+
1053
+ .sdt-hm-overlay-root .sdt-hm-outline-muted {
1054
+ opacity: 0;
1055
+ }
1056
+
1057
+ .sdt-hm-overlay-root .sdt-hm-outline-highlighted {
1058
+ border-color: rgba(250, 204, 21, 0.92) !important;
1059
+ }
1060
+
1061
+ .sdt-hm-overlay-root .sdt-hm-highlight {
1062
+ position: fixed;
1063
+ border-radius: 5px;
1064
+ background: rgba(250, 204, 21, 0.28);
1065
+ box-shadow: 0 0 0 1px rgba(250, 204, 21, 0.7), 0 0 0 9999px rgba(0, 0, 0, 0.04);
1066
+ opacity: 0;
1067
+ will-change: top, left, width, height;
1068
+ transition: opacity 0.18s ease;
1069
+ }
1070
+
1071
+ .sdt-hm-overlay-root .sdt-hm-highlight-visible {
1072
+ opacity: 1;
1073
+ }
1074
+
1075
+ .sdt-hm-overlay-root .sdt-hm-highlight-animating {
1076
+ transition:
1077
+ top var(--resize-dur) var(--resize-ease),
1078
+ left var(--resize-dur) var(--resize-ease),
1079
+ width var(--resize-dur) var(--resize-ease),
1080
+ height var(--resize-dur) var(--resize-ease),
1081
+ opacity 0.18s ease;
1082
+ }
1083
+
1084
+ @media (prefers-reduced-motion: reduce) {
1085
+ .sdt-hm-overlay-root .sdt-hm-highlight-animating {
1086
+ transition: opacity 0.18s ease;
1087
+ }
1088
+ }
1089
+ `;
1090
+
1091
+ //#endregion
1092
+ export { clickmapCSS };
1093
+ //# sourceMappingURL=clickmap-styles.js.map