@hfunlabs/hypurr-connect 0.1.19 → 0.1.21

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hfunlabs/hypurr-connect",
3
- "version": "0.1.19",
3
+ "version": "0.1.21",
4
4
  "type": "module",
5
5
  "packageManager": "pnpm@10.10.0",
6
6
  "main": "./dist/index.js",
@@ -21,7 +21,8 @@
21
21
  "src"
22
22
  ],
23
23
  "sideEffects": [
24
- "**/*.css"
24
+ "**/*.css",
25
+ "./dist/index.js"
25
26
  ],
26
27
  "scripts": {
27
28
  "build": "pnpm build:css && tsup",
@@ -354,6 +354,23 @@ export function HypurrConnectProvider({
354
354
  localStorage.removeItem(LEGACY_TELEGRAM_STORAGE_KEY);
355
355
  }, []);
356
356
 
357
+ // Eagerly fetch the modal fonts on mount. They're declared via @import in the
358
+ // injected stylesheet but browsers only fetch a webfont when visible text
359
+ // first uses it — that lazy fetch makes scores/labels flash the system
360
+ // fallback and render inconsistently across views. Loading them up front
361
+ // keeps the bold mono numbers consistent.
362
+ useEffect(() => {
363
+ if (typeof document === "undefined" || !document.fonts) return;
364
+ for (const face of [
365
+ "500 1em 'Google Sans Code'",
366
+ "700 1em 'Google Sans Code'",
367
+ "600 1em Inter",
368
+ "700 1em Inter",
369
+ ]) {
370
+ void document.fonts.load(face).catch(() => {});
371
+ }
372
+ }, []);
373
+
357
374
  useEffect(() => {
358
375
  const params = new URLSearchParams(window.location.search);
359
376
  const token = params.get("token");
@@ -353,7 +353,7 @@ export function UserProfileModal({
353
353
  }, [displayName, onNotify]);
354
354
 
355
355
  return (
356
- <>
356
+ <div className="hypurr-connect" style={{ display: "contents" }}>
357
357
  <AnimatePresence>
358
358
  {isOpen && (
359
359
  <>
@@ -841,7 +841,7 @@ export function UserProfileModal({
841
841
  onNotify={onNotify}
842
842
  accentColor={colors.accent}
843
843
  />
844
- </>
844
+ </div>
845
845
  );
846
846
  }
847
847
 
@@ -1069,7 +1069,7 @@ function IconBtn({
1069
1069
  ? (hoverBackgroundColor ?? "transparent")
1070
1070
  : "transparent",
1071
1071
  border: "none",
1072
- color: hovered ? color : profileColors.disabled,
1072
+ color: hovered ? color : profileColors.muted,
1073
1073
  cursor: "pointer",
1074
1074
  display: "flex",
1075
1075
  alignItems: "center",
@@ -18,12 +18,9 @@ import { useIsMobile } from "./useIsMobile";
18
18
  import { UserProfileModal, type SlippageOption } from "./UserProfileModal";
19
19
  import { getAgentExpiryTitle } from "./agentWallet";
20
20
  import {
21
- Bot,
22
21
  Copy,
23
22
  Crown,
24
- Eye,
25
23
  Folder,
26
- KeyRound,
27
24
  LayoutDashboard,
28
25
  LogOut,
29
26
  Plus,
@@ -202,36 +199,6 @@ const formatCompactAddress = (addr: string | undefined) => {
202
199
  return `${addr.slice(0, 4)}...${addr.slice(-2)}`;
203
200
  };
204
201
 
205
- type WalletTypeMeta = {
206
- label: string;
207
- color: string;
208
- icon: ReactNode;
209
- };
210
-
211
- function getWalletTypeMeta(wallet: DropdownWallet): WalletTypeMeta {
212
- if (wallet.isAgent) {
213
- return {
214
- label: "Agent wallet",
215
- color: "#38bdf8",
216
- icon: <Bot size={12} />,
217
- };
218
- }
219
-
220
- if (wallet.isReadOnly) {
221
- return {
222
- label: "Read-only wallet",
223
- color: "#a78bfa",
224
- icon: <Eye size={12} />,
225
- };
226
- }
227
-
228
- return {
229
- label: "Private-key wallet",
230
- color: "#34d399",
231
- icon: <KeyRound size={12} />,
232
- };
233
- }
234
-
235
202
  const rootStyle: CSSProperties = {
236
203
  position: "absolute",
237
204
  right: 0,
@@ -245,6 +212,17 @@ const rootStyle: CSSProperties = {
245
212
  overflow: "hidden",
246
213
  };
247
214
 
215
+ // Scoped scrollbar styling so the dropdown looks the same on every host site
216
+ // (matches alpha-trade). Inline styles can't target ::-webkit-scrollbar, so
217
+ // inject a scoped <style>; Firefox uses the standard props on the element.
218
+ const SCROLLBAR_CLASS = "hpc-wallet-scroll";
219
+ const scrollbarCss = `
220
+ .${SCROLLBAR_CLASS}::-webkit-scrollbar { width: 6px; height: 6px; }
221
+ .${SCROLLBAR_CLASS}::-webkit-scrollbar-track { background: #0b0e11; }
222
+ .${SCROLLBAR_CLASS}::-webkit-scrollbar-thumb { background: #374151; border-radius: 3px; }
223
+ .${SCROLLBAR_CLASS}::-webkit-scrollbar-thumb:hover { background: #4b5563; }
224
+ `;
225
+
248
226
  const sectionBorder = "1px solid rgb(var(--line))";
249
227
 
250
228
  const sectionHeaderStyle: CSSProperties = {
@@ -341,7 +319,6 @@ export function WalletSelectorDropdown({
341
319
  depth={depth}
342
320
  isSelected={isSelected}
343
321
  label={label}
344
- walletType={getWalletTypeMeta(wallet)}
345
322
  compactAddress={compactAddress}
346
323
  onSelect={() => {
347
324
  selectWallet(wallet.id);
@@ -371,7 +348,7 @@ export function WalletSelectorDropdown({
371
348
  };
372
349
 
373
350
  return (
374
- <>
351
+ <div className="hypurr-connect" style={{ display: "contents" }}>
375
352
  <AnimatePresence>
376
353
  {isOpen && (
377
354
  <motion.div
@@ -381,6 +358,7 @@ export function WalletSelectorDropdown({
381
358
  exit={{ opacity: 0, scale: 0.95 }}
382
359
  transition={{ duration: 0.15, ease: "easeOut" }}
383
360
  >
361
+ <style>{scrollbarCss}</style>
384
362
  {/* Profile header */}
385
363
  <button
386
364
  onClick={openProfile}
@@ -537,10 +515,13 @@ export function WalletSelectorDropdown({
537
515
  <div style={{ borderBottom: sectionBorder }}>
538
516
  <div style={sectionHeaderStyle}>Wallets</div>
539
517
  <div
518
+ className={SCROLLBAR_CLASS}
540
519
  style={{
541
520
  maxHeight: 256,
542
521
  overflowY: "auto",
543
522
  paddingBottom: 4,
523
+ scrollbarWidth: "thin",
524
+ scrollbarColor: "#374151 #0b0e11",
544
525
  }}
545
526
  >
546
527
  {walletListEntries.map((entry) => {
@@ -678,7 +659,7 @@ export function WalletSelectorDropdown({
678
659
  }
679
660
  onNotify={onNotify}
680
661
  />
681
- </>
662
+ </div>
682
663
  );
683
664
  }
684
665
 
@@ -716,7 +697,6 @@ function WalletRow({
716
697
  depth,
717
698
  isSelected,
718
699
  label,
719
- walletType,
720
700
  compactAddress,
721
701
  onSelect,
722
702
  onShowPortfolio,
@@ -728,7 +708,6 @@ function WalletRow({
728
708
  depth: number;
729
709
  isSelected: boolean;
730
710
  label: string | null;
731
- walletType: WalletTypeMeta;
732
711
  compactAddress: string;
733
712
  onSelect: () => void;
734
713
  onShowPortfolio?: () => void;
@@ -794,19 +773,6 @@ function WalletRow({
794
773
  padding: 0,
795
774
  }}
796
775
  >
797
- <span
798
- title={walletType.label}
799
- aria-label={walletType.label}
800
- style={{
801
- display: "inline-flex",
802
- alignItems: "center",
803
- justifyContent: "center",
804
- flexShrink: 0,
805
- color: isAgentExpired ? walletTextColor : walletType.color,
806
- }}
807
- >
808
- {walletType.icon}
809
- </span>
810
776
  {label ? (
811
777
  <>
812
778
  <span
package/src/styles.css CHANGED
@@ -1 +1 @@
1
- .hypurr-connect .btn-raised{background-color:rgb(var(--btn-bg));background-image:linear-gradient(to bottom,rgb(var(--btn-bevel)/.03),transparent);box-shadow:inset 0 1px 0 rgb(var(--btn-bevel)/.1),inset 0 -1px 0 rgba(0,0,0,.35),inset 0 0 0 1px rgb(var(--btn-ring));color:rgb(var(--btn-fg));transition:background-color .15s,color .15s,background-image .15s,box-shadow .15s}.hypurr-connect .btn-raised:hover:not(:disabled){background-color:rgb(var(--surface-btn-hover));background-image:linear-gradient(to bottom,rgb(var(--btn-bevel)/.04),transparent);box-shadow:inset 0 1px 0 rgb(var(--btn-bevel)/.14),inset 0 -1px 0 rgba(0,0,0,.4),inset 0 0 0 1px rgb(var(--surface-bd-hover));color:rgb(var(--content-tertiary))}.hypurr-connect .btn-raised-active{background-color:rgb(var(--surface-btn-active));background-image:linear-gradient(to bottom,rgb(var(--btn-bevel)/.05),transparent);box-shadow:inset 0 1px 0 rgb(var(--btn-bevel)/.18),inset 0 -1px 0 rgba(0,0,0,.45),inset 0 0 0 1px rgb(var(--surface-bd-active)),0 1px 2px rgba(0,0,0,.5);color:rgb(var(--content))}.hypurr-connect .btn-raised-accent,.hypurr-connect .btn-raised-active{transition:background-color .15s,color .15s,background-image .15s,box-shadow .15s}.hypurr-connect .btn-raised-accent{background-color:rgb(var(--accent-btn-bg));background-image:linear-gradient(to bottom,rgb(var(--btn-bevel)/.03),transparent);box-shadow:inset 0 1px 0 rgb(var(--btn-bevel)/.1),inset 0 -1px 0 rgb(var(--accent-btn-inset)/.75);color:rgb(var(--accent-btn-fg))}.hypurr-connect .btn-raised-accent:hover:not(:disabled){background-color:rgb(var(--accent-btn-bg-hover));background-image:linear-gradient(to bottom,rgb(var(--btn-bevel)/.04),transparent);box-shadow:inset 0 1px 0 rgb(var(--btn-bevel)/.14),inset 0 -1px 0 rgb(var(--accent-btn-inset)/.8);color:rgb(var(--accent-btn-fg-hover))}.hypurr-connect .btn-raised-disabled{background-color:rgb(var(--btn-bg));background-image:linear-gradient(to bottom,rgb(var(--btn-bevel)/.02),transparent);box-shadow:inset 0 1px 0 rgb(var(--btn-bevel)/.05),inset 0 -1px 0 rgba(0,0,0,.25),inset 0 0 0 1px rgb(var(--btn-ring)/.6);color:rgb(var(--content-faint));cursor:not-allowed;transition:background-color .15s,color .15s,background-image .15s,box-shadow .15s}.light .hypurr-connect .btn-raised{background-image:linear-gradient(to bottom,#fff,rgb(var(--surface-btn)));box-shadow:0 1px 2px rgba(15,23,42,.08),0 1px 1px rgba(15,23,42,.04),inset 0 0 0 1px rgb(var(--surface-bd))}.light .hypurr-connect .btn-raised:hover:not(:disabled){background-image:linear-gradient(to bottom,#fff,rgb(var(--surface-btn-hover)));box-shadow:0 2px 6px rgba(15,23,42,.12),0 1px 2px rgba(15,23,42,.06),inset 0 0 0 1px rgb(var(--surface-bd-hover))}.light .hypurr-connect .btn-raised-active{background-image:none;background-color:rgb(var(--surface-btn-active));box-shadow:inset 0 1px 2px rgba(15,23,42,.12),inset 0 0 0 1px rgb(var(--surface-bd-active))}.light .hypurr-connect .btn-raised-disabled{background-image:none;box-shadow:inset 0 0 0 1px rgb(var(--surface-bd))}.light .hypurr-connect .btn-raised-accent{box-shadow:0 1px 2px rgba(124,58,237,.18),inset 0 0 0 1px rgba(124,58,237,.22)}.light .hypurr-connect .btn-raised-accent:hover:not(:disabled){box-shadow:0 2px 6px rgba(124,58,237,.24),inset 0 0 0 1px rgba(124,58,237,.28)}.hypurr-connect .input{background-color:rgb(var(--input-bg));box-shadow:inset 0 2px 4px rgba(0,0,0,.5),inset 0 -1px 0 rgb(var(--btn-bevel)/.05),inset 0 0 0 1px rgb(var(--input-ring));color:rgb(var(--content));transition:box-shadow .15s,background-color .15s}.hypurr-connect .input::-moz-placeholder{color:rgb(var(--content-faint));opacity:1}.hypurr-connect .input::placeholder{color:rgb(var(--content-faint));opacity:1}.hypurr-connect .input:focus,.hypurr-connect .input:focus-within{background-color:rgb(var(--input-bg-focus));box-shadow:inset 0 2px 4px rgba(0,0,0,.45),inset 0 -1px 0 rgb(var(--btn-bevel)/.06),inset 0 0 0 1px rgb(var(--input-ring-focus))}.hypurr-connect .input-error,.hypurr-connect .input-error:focus,.hypurr-connect .input-error:focus-within{box-shadow:inset 0 2px 4px rgba(0,0,0,.5),inset 0 -1px 0 rgb(var(--btn-bevel)/.05),inset 0 0 0 1px hsla(0,91%,71%,.7)}.light .hypurr-connect .input{box-shadow:inset 0 2px 3px rgba(15,23,42,.08),inset 0 0 0 1px rgb(var(--input-ring))}.light .hypurr-connect .input:focus,.light .hypurr-connect .input:focus-within{box-shadow:inset 0 2px 4px rgba(15,23,42,.1),inset 0 0 0 1px rgb(var(--input-ring-focus))}.light .hypurr-connect .input-error,.light .hypurr-connect .input-error:focus,.light .hypurr-connect .input-error:focus-within{box-shadow:inset 0 2px 3px rgba(15,23,42,.08),inset 0 0 0 1px rgba(220,38,38,.7)}.hypurr-connect .\!visible{visibility:visible!important}.hypurr-connect .visible{visibility:visible}.hypurr-connect .fixed{position:fixed}.hypurr-connect .absolute{position:absolute}.hypurr-connect .relative{position:relative}.hypurr-connect .inset-0{inset:0}.hypurr-connect .right-2{right:.5rem}.hypurr-connect .right-6{right:1.5rem}.hypurr-connect .top-1\/2{top:50%}.hypurr-connect .z-\[100\]{z-index:100}.hypurr-connect .z-\[101\]{z-index:101}.hypurr-connect .z-\[110\]{z-index:110}.hypurr-connect .z-\[111\]{z-index:111}.hypurr-connect .mb-1\.5{margin-bottom:.375rem}.hypurr-connect .mb-2{margin-bottom:.5rem}.hypurr-connect .mt-0\.5{margin-top:.125rem}.hypurr-connect .mt-1{margin-top:.25rem}.hypurr-connect .mt-1\.5{margin-top:.375rem}.hypurr-connect .block{display:block}.hypurr-connect .inline-block{display:inline-block}.hypurr-connect .inline{display:inline}.hypurr-connect .flex{display:flex}.hypurr-connect .inline-flex{display:inline-flex}.hypurr-connect .grid{display:grid}.hypurr-connect .contents{display:contents}.hypurr-connect .hidden{display:none}.hypurr-connect .h-8{height:2rem}.hypurr-connect .w-8{width:2rem}.hypurr-connect .w-full{width:100%}.hypurr-connect .min-w-0{min-width:0}.hypurr-connect .max-w-md{max-width:28rem}.hypurr-connect .flex-1{flex:1 1 0%}.hypurr-connect .flex-shrink-0{flex-shrink:0}.hypurr-connect .-translate-y-1\/2{--tw-translate-y:-50%}.hypurr-connect .-translate-y-1\/2,.hypurr-connect .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hypurr-connect .grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.hypurr-connect .items-start{align-items:flex-start}.hypurr-connect .items-center{align-items:center}.hypurr-connect .justify-center{justify-content:center}.hypurr-connect .justify-between{justify-content:space-between}.hypurr-connect .gap-1\.5{gap:.375rem}.hypurr-connect .gap-2{gap:.5rem}.hypurr-connect .gap-3{gap:.75rem}.hypurr-connect :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.hypurr-connect :is(.space-y-3>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.hypurr-connect :is(.space-y-4>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.hypurr-connect .overflow-hidden{overflow:hidden}.hypurr-connect .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hypurr-connect .break-all{word-break:break-all}.hypurr-connect .rounded{border-radius:.25rem}.hypurr-connect .rounded-lg{border-radius:.5rem}.hypurr-connect .rounded-md{border-radius:.375rem}.hypurr-connect .border{border-width:1px}.hypurr-connect .border-b{border-bottom-width:1px}.hypurr-connect .border-amber-500\/25{border-color:rgb(var(--amber-500)/.25)}.hypurr-connect .border-line{--tw-border-opacity:1;border-color:rgb(var(--line)/var(--tw-border-opacity,1))}.hypurr-connect .border-line-strong{--tw-border-opacity:1;border-color:rgb(var(--line-strong)/var(--tw-border-opacity,1))}.hypurr-connect .border-surface-bd{--tw-border-opacity:1;border-color:rgb(var(--surface-bd)/var(--tw-border-opacity,1))}.hypurr-connect .border-surface-bd-active{--tw-border-opacity:1;border-color:rgb(var(--surface-bd-active)/var(--tw-border-opacity,1))}.hypurr-connect .border-trade-down\/20{border-color:rgb(var(--trade-down)/.2)}.hypurr-connect .bg-amber-500\/\[0\.08\]{background-color:rgb(var(--amber-500)/.08)}.hypurr-connect .bg-overlay\/70{background-color:rgb(var(--overlay)/.7)}.hypurr-connect .bg-surface-btn{--tw-bg-opacity:1;background-color:rgb(var(--surface-btn)/var(--tw-bg-opacity,1))}.hypurr-connect .bg-surface-btn-active{--tw-bg-opacity:1;background-color:rgb(var(--surface-btn-active)/var(--tw-bg-opacity,1))}.hypurr-connect .bg-surface-btn-hover{--tw-bg-opacity:1;background-color:rgb(var(--surface-btn-hover)/var(--tw-bg-opacity,1))}.hypurr-connect .bg-surface-modal{--tw-bg-opacity:1;background-color:rgb(var(--surface-modal)/var(--tw-bg-opacity,1))}.hypurr-connect .bg-trade-down\/\[0\.08\]{background-color:rgb(var(--trade-down)/.08)}.hypurr-connect .p-1\.5{padding:.375rem}.hypurr-connect .p-3{padding:.75rem}.hypurr-connect .p-4{padding:1rem}.hypurr-connect .px-2{padding-left:.5rem;padding-right:.5rem}.hypurr-connect .px-3{padding-left:.75rem;padding-right:.75rem}.hypurr-connect .px-6{padding-left:1.5rem;padding-right:1.5rem}.hypurr-connect .py-1{padding-top:.25rem;padding-bottom:.25rem}.hypurr-connect .py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.hypurr-connect .py-2{padding-top:.5rem;padding-bottom:.5rem}.hypurr-connect .py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.hypurr-connect .py-5{padding-top:1.25rem}.hypurr-connect .pb-5,.hypurr-connect .py-5{padding-bottom:1.25rem}.hypurr-connect .pb-6{padding-bottom:1.5rem}.hypurr-connect .pr-11{padding-right:2.75rem}.hypurr-connect .pt-5{padding-top:1.25rem}.hypurr-connect .pt-6{padding-top:1.5rem}.hypurr-connect .font-mono{font-family:Google Sans Code,Roboto Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.hypurr-connect .font-sans{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.hypurr-connect .text-base{font-size:12.5px;line-height:1rem}.hypurr-connect .text-lg{font-size:14px;line-height:1.25rem}.hypurr-connect .font-medium{font-weight:500}.hypurr-connect .uppercase{text-transform:uppercase}.hypurr-connect .tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.hypurr-connect .tracking-\[0\.1em\]{letter-spacing:.1em}.hypurr-connect .text-amber-200{--tw-text-opacity:1;color:rgb(var(--amber-200)/var(--tw-text-opacity,1))}.hypurr-connect .text-amber-400{--tw-text-opacity:1;color:rgb(var(--amber-400)/var(--tw-text-opacity,1))}.hypurr-connect .text-content{--tw-text-opacity:1;color:rgb(var(--content)/var(--tw-text-opacity,1))}.hypurr-connect .text-content-faint{--tw-text-opacity:1;color:rgb(var(--content-faint)/var(--tw-text-opacity,1))}.hypurr-connect .text-content-muted{--tw-text-opacity:1;color:rgb(var(--content-muted)/var(--tw-text-opacity,1))}.hypurr-connect .text-content-subtle{--tw-text-opacity:1;color:rgb(var(--content-subtle)/var(--tw-text-opacity,1))}.hypurr-connect .text-trade-down{--tw-text-opacity:1;color:rgb(var(--trade-down)/var(--tw-text-opacity,1))}.hypurr-connect .text-trade-up{--tw-text-opacity:1;color:rgb(var(--trade-up)/var(--tw-text-opacity,1))}.hypurr-connect .placeholder-content-faint::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(var(--content-faint)/var(--tw-placeholder-opacity,1))}.hypurr-connect .placeholder-content-faint::placeholder{--tw-placeholder-opacity:1;color:rgb(var(--content-faint)/var(--tw-placeholder-opacity,1))}.hypurr-connect .shadow-modal{--tw-shadow:var(--shadow-modal);--tw-shadow-colored:var(--shadow-modal);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hypurr-connect .outline{outline-style:solid}.hypurr-connect .blur{--tw-blur:blur(8px)}.hypurr-connect .blur,.hypurr-connect .drop-shadow{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.hypurr-connect .drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px rgba(0,0,0,.1)) drop-shadow(0 1px 1px rgba(0,0,0,.06))}.hypurr-connect .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.hypurr-connect .backdrop-blur-sm{--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.hypurr-connect .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.hypurr-connect .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{--surface-btn:13 18 25;--surface-btn-hover:21 23 26;--surface-btn-active:30 33 36;--surface-bd:38 42 48;--surface-bd-hover:68 69 72;--surface-bd-active:75 77 80;--surface-modal:14 18 24;--surface-dropdown:17 24 32;--surface-base:11 14 17;--surface-deep:9 11 14;--surface-raised:17 24 39;--surface-elevated:31 41 55;--surface-inset:55 65 81;--surface-inverse:255 255 255;--content:243 244 246;--content-secondary:229 231 235;--content-tertiary:209 213 219;--content-muted:170 177 193;--content-subtle:125 133 151;--content-faint:107 114 128;--content-disabled:55 65 81;--line:31 41 55;--line-strong:55 65 81;--line-subtle:17 24 39;--line-inverse:255 255 255;--overlay:0 0 0;--accent:168 85 247;--trade-up:52 211 153;--trade-down:248 113 113;--purple-400:216 180 254;--purple-500:185 125 241;--blue-500:90 153 255;--green-400:83 203 127;--amber-200:253 230 138;--amber-400:251 191 36;--amber-500:245 158 11;--btn-bg:13 18 25;--btn-fg:170 177 193;--btn-ring:38 42 48;--btn-bevel:255 255 255;--accent-btn-bg:37 28 57;--accent-btn-bg-hover:52 35 80;--accent-btn-fg:216 180 254;--accent-btn-fg-hover:233 213 255;--accent-btn-inset:15 5 35;--input-bg:18 23 31;--input-bg-focus:26 33 44;--input-ring:45 53 64;--input-ring-focus:59 69 82;--shadow-modal:0 25px 50px -12px rgba(0,0,0,.6);--shadow-dropdown:0 8px 40px rgba(0,0,0,.85)}.light{--surface-btn:244 246 249;--surface-btn-hover:236 239 243;--surface-btn-active:226 230 236;--surface-bd:214 220 228;--surface-bd-hover:194 201 211;--surface-bd-active:168 176 191;--surface-modal:255 255 255;--surface-dropdown:255 255 255;--surface-base:245 244 249;--surface-deep:233 236 242;--surface-raised:255 255 255;--surface-elevated:228 231 237;--surface-inset:225 229 235;--surface-inverse:17 24 39;--content:17 24 39;--content-secondary:31 41 55;--content-tertiary:55 65 81;--content-muted:91 101 115;--content-subtle:107 114 128;--content-faint:148 163 184;--content-disabled:179 185 196;--line:222 226 234;--line-strong:205 211 220;--line-subtle:238 240 243;--line-inverse:17 24 39;--overlay:0 0 0;--accent:147 51 234;--trade-up:5 150 105;--trade-down:220 38 38;--purple-400:124 58 237;--purple-500:109 40 217;--blue-500:37 99 235;--green-400:22 163 74;--amber-200:161 98 7;--amber-400:180 83 9;--amber-500:180 83 9;--btn-bg:255 255 255;--btn-fg:71 85 105;--btn-ring:217 221 228;--btn-bevel:15 23 42;--accent-btn-bg:243 232 255;--accent-btn-bg-hover:233 213 255;--accent-btn-fg:109 40 217;--accent-btn-fg-hover:88 28 135;--accent-btn-inset:147 51 234;--input-bg:238 240 246;--input-bg-focus:230 232 240;--input-ring:200 206 218;--input-ring-focus:168 175 192;--shadow-modal:0 16px 40px -12px rgba(15,23,42,.24),0 4px 12px -4px rgba(15,23,42,.12);--shadow-dropdown:0 12px 28px -8px rgba(15,23,42,.2),0 2px 8px -2px rgba(15,23,42,.1)}.hypurr-connect .hover\:border-surface-bd-hover:hover{--tw-border-opacity:1;border-color:rgb(var(--surface-bd-hover)/var(--tw-border-opacity,1))}.hypurr-connect .hover\:bg-surface-btn-hover:hover{--tw-bg-opacity:1;background-color:rgb(var(--surface-btn-hover)/var(--tw-bg-opacity,1))}.hypurr-connect .hover\:text-content:hover{--tw-text-opacity:1;color:rgb(var(--content)/var(--tw-text-opacity,1))}.hypurr-connect .hover\:text-content-tertiary:hover{--tw-text-opacity:1;color:rgb(var(--content-tertiary)/var(--tw-text-opacity,1))}.hypurr-connect .focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.hypurr-connect .disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.hypurr-connect .disabled\:opacity-40:disabled{opacity:.4}.hypurr-connect .disabled\:opacity-50:disabled{opacity:.5}
1
+ @import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Google+Sans+Code:wght@400;500;600;700&display=swap");.hypurr-connect .btn-raised{background-color:rgb(var(--btn-bg));background-image:linear-gradient(to bottom,rgb(var(--btn-bevel)/.03),transparent);box-shadow:inset 0 1px 0 rgb(var(--btn-bevel)/.1),inset 0 -1px 0 rgba(0,0,0,.35),inset 0 0 0 1px rgb(var(--btn-ring));color:rgb(var(--btn-fg));transition:background-color .15s,color .15s,background-image .15s,box-shadow .15s}.hypurr-connect .btn-raised:hover:not(:disabled){background-color:rgb(var(--surface-btn-hover));background-image:linear-gradient(to bottom,rgb(var(--btn-bevel)/.04),transparent);box-shadow:inset 0 1px 0 rgb(var(--btn-bevel)/.14),inset 0 -1px 0 rgba(0,0,0,.4),inset 0 0 0 1px rgb(var(--surface-bd-hover));color:rgb(var(--content-tertiary))}.hypurr-connect .btn-raised-active{background-color:rgb(var(--surface-btn-active));background-image:linear-gradient(to bottom,rgb(var(--btn-bevel)/.05),transparent);box-shadow:inset 0 1px 0 rgb(var(--btn-bevel)/.18),inset 0 -1px 0 rgba(0,0,0,.45),inset 0 0 0 1px rgb(var(--surface-bd-active)),0 1px 2px rgba(0,0,0,.5);color:rgb(var(--content))}.hypurr-connect .btn-raised-accent,.hypurr-connect .btn-raised-active{transition:background-color .15s,color .15s,background-image .15s,box-shadow .15s}.hypurr-connect .btn-raised-accent{background-color:rgb(var(--accent-btn-bg));background-image:linear-gradient(to bottom,rgb(var(--btn-bevel)/.03),transparent);box-shadow:inset 0 1px 0 rgb(var(--btn-bevel)/.1),inset 0 -1px 0 rgb(var(--accent-btn-inset)/.75);color:rgb(var(--accent-btn-fg))}.hypurr-connect .btn-raised-accent:hover:not(:disabled){background-color:rgb(var(--accent-btn-bg-hover));background-image:linear-gradient(to bottom,rgb(var(--btn-bevel)/.04),transparent);box-shadow:inset 0 1px 0 rgb(var(--btn-bevel)/.14),inset 0 -1px 0 rgb(var(--accent-btn-inset)/.8);color:rgb(var(--accent-btn-fg-hover))}.hypurr-connect .btn-raised-disabled{background-color:rgb(var(--btn-bg));background-image:linear-gradient(to bottom,rgb(var(--btn-bevel)/.02),transparent);box-shadow:inset 0 1px 0 rgb(var(--btn-bevel)/.05),inset 0 -1px 0 rgba(0,0,0,.25),inset 0 0 0 1px rgb(var(--btn-ring)/.6);color:rgb(var(--content-faint));cursor:not-allowed;transition:background-color .15s,color .15s,background-image .15s,box-shadow .15s}.light .hypurr-connect .btn-raised{background-image:linear-gradient(to bottom,#fff,rgb(var(--surface-btn)));box-shadow:0 1px 2px rgba(15,23,42,.08),0 1px 1px rgba(15,23,42,.04),inset 0 0 0 1px rgb(var(--surface-bd))}.light .hypurr-connect .btn-raised:hover:not(:disabled){background-image:linear-gradient(to bottom,#fff,rgb(var(--surface-btn-hover)));box-shadow:0 2px 6px rgba(15,23,42,.12),0 1px 2px rgba(15,23,42,.06),inset 0 0 0 1px rgb(var(--surface-bd-hover))}.light .hypurr-connect .btn-raised-active{background-image:none;background-color:rgb(var(--surface-btn-active));box-shadow:inset 0 1px 2px rgba(15,23,42,.12),inset 0 0 0 1px rgb(var(--surface-bd-active))}.light .hypurr-connect .btn-raised-disabled{background-image:none;box-shadow:inset 0 0 0 1px rgb(var(--surface-bd))}.light .hypurr-connect .btn-raised-accent{box-shadow:0 1px 2px rgba(124,58,237,.18),inset 0 0 0 1px rgba(124,58,237,.22)}.light .hypurr-connect .btn-raised-accent:hover:not(:disabled){box-shadow:0 2px 6px rgba(124,58,237,.24),inset 0 0 0 1px rgba(124,58,237,.28)}.hypurr-connect .input{background-color:rgb(var(--input-bg));box-shadow:inset 0 2px 4px rgba(0,0,0,.5),inset 0 -1px 0 rgb(var(--btn-bevel)/.05),inset 0 0 0 1px rgb(var(--input-ring));color:rgb(var(--content));transition:box-shadow .15s,background-color .15s}.hypurr-connect .input::-moz-placeholder{color:rgb(var(--content-faint));opacity:1}.hypurr-connect .input::placeholder{color:rgb(var(--content-faint));opacity:1}.hypurr-connect .input:focus,.hypurr-connect .input:focus-within{background-color:rgb(var(--input-bg-focus));box-shadow:inset 0 2px 4px rgba(0,0,0,.45),inset 0 -1px 0 rgb(var(--btn-bevel)/.06),inset 0 0 0 1px rgb(var(--input-ring-focus))}.hypurr-connect .input-error,.hypurr-connect .input-error:focus,.hypurr-connect .input-error:focus-within{box-shadow:inset 0 2px 4px rgba(0,0,0,.5),inset 0 -1px 0 rgb(var(--btn-bevel)/.05),inset 0 0 0 1px hsla(0,91%,71%,.7)}.light .hypurr-connect .input{box-shadow:inset 0 2px 3px rgba(15,23,42,.08),inset 0 0 0 1px rgb(var(--input-ring))}.light .hypurr-connect .input:focus,.light .hypurr-connect .input:focus-within{box-shadow:inset 0 2px 4px rgba(15,23,42,.1),inset 0 0 0 1px rgb(var(--input-ring-focus))}.light .hypurr-connect .input-error,.light .hypurr-connect .input-error:focus,.light .hypurr-connect .input-error:focus-within{box-shadow:inset 0 2px 3px rgba(15,23,42,.08),inset 0 0 0 1px rgba(220,38,38,.7)}.hypurr-connect .\!visible{visibility:visible!important}.hypurr-connect .visible{visibility:visible}.hypurr-connect .fixed{position:fixed}.hypurr-connect .absolute{position:absolute}.hypurr-connect .relative{position:relative}.hypurr-connect .inset-0{inset:0}.hypurr-connect .right-2{right:.5rem}.hypurr-connect .right-6{right:1.5rem}.hypurr-connect .top-1\/2{top:50%}.hypurr-connect .z-\[100\]{z-index:100}.hypurr-connect .z-\[101\]{z-index:101}.hypurr-connect .z-\[110\]{z-index:110}.hypurr-connect .z-\[111\]{z-index:111}.hypurr-connect .mb-1\.5{margin-bottom:.375rem}.hypurr-connect .mb-2{margin-bottom:.5rem}.hypurr-connect .mt-0\.5{margin-top:.125rem}.hypurr-connect .mt-1{margin-top:.25rem}.hypurr-connect .mt-1\.5{margin-top:.375rem}.hypurr-connect .block{display:block}.hypurr-connect .inline-block{display:inline-block}.hypurr-connect .inline{display:inline}.hypurr-connect .flex{display:flex}.hypurr-connect .inline-flex{display:inline-flex}.hypurr-connect .grid{display:grid}.hypurr-connect .contents{display:contents}.hypurr-connect .hidden{display:none}.hypurr-connect .h-8{height:2rem}.hypurr-connect .w-8{width:2rem}.hypurr-connect .w-full{width:100%}.hypurr-connect .min-w-0{min-width:0}.hypurr-connect .max-w-md{max-width:28rem}.hypurr-connect .flex-1{flex:1 1 0%}.hypurr-connect .flex-shrink-0{flex-shrink:0}.hypurr-connect .-translate-y-1\/2{--tw-translate-y:-50%}.hypurr-connect .-translate-y-1\/2,.hypurr-connect .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hypurr-connect .grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.hypurr-connect .items-start{align-items:flex-start}.hypurr-connect .items-center{align-items:center}.hypurr-connect .justify-center{justify-content:center}.hypurr-connect .justify-between{justify-content:space-between}.hypurr-connect .gap-1\.5{gap:.375rem}.hypurr-connect .gap-2{gap:.5rem}.hypurr-connect .gap-3{gap:.75rem}.hypurr-connect :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.hypurr-connect :is(.space-y-3>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.hypurr-connect :is(.space-y-4>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.hypurr-connect .overflow-hidden{overflow:hidden}.hypurr-connect .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hypurr-connect .break-all{word-break:break-all}.hypurr-connect .rounded{border-radius:.25rem}.hypurr-connect .rounded-lg{border-radius:.5rem}.hypurr-connect .rounded-md{border-radius:.375rem}.hypurr-connect .border{border-width:1px}.hypurr-connect .border-b{border-bottom-width:1px}.hypurr-connect .border-amber-500\/25{border-color:rgb(var(--amber-500)/.25)}.hypurr-connect .border-line{--tw-border-opacity:1;border-color:rgb(var(--line)/var(--tw-border-opacity,1))}.hypurr-connect .border-line-strong{--tw-border-opacity:1;border-color:rgb(var(--line-strong)/var(--tw-border-opacity,1))}.hypurr-connect .border-surface-bd{--tw-border-opacity:1;border-color:rgb(var(--surface-bd)/var(--tw-border-opacity,1))}.hypurr-connect .border-surface-bd-active{--tw-border-opacity:1;border-color:rgb(var(--surface-bd-active)/var(--tw-border-opacity,1))}.hypurr-connect .border-trade-down\/20{border-color:rgb(var(--trade-down)/.2)}.hypurr-connect .bg-amber-500\/\[0\.08\]{background-color:rgb(var(--amber-500)/.08)}.hypurr-connect .bg-overlay\/70{background-color:rgb(var(--overlay)/.7)}.hypurr-connect .bg-surface-btn{--tw-bg-opacity:1;background-color:rgb(var(--surface-btn)/var(--tw-bg-opacity,1))}.hypurr-connect .bg-surface-btn-active{--tw-bg-opacity:1;background-color:rgb(var(--surface-btn-active)/var(--tw-bg-opacity,1))}.hypurr-connect .bg-surface-btn-hover{--tw-bg-opacity:1;background-color:rgb(var(--surface-btn-hover)/var(--tw-bg-opacity,1))}.hypurr-connect .bg-surface-modal{--tw-bg-opacity:1;background-color:rgb(var(--surface-modal)/var(--tw-bg-opacity,1))}.hypurr-connect .bg-trade-down\/\[0\.08\]{background-color:rgb(var(--trade-down)/.08)}.hypurr-connect .p-1\.5{padding:.375rem}.hypurr-connect .p-3{padding:.75rem}.hypurr-connect .p-4{padding:1rem}.hypurr-connect .px-2{padding-left:.5rem;padding-right:.5rem}.hypurr-connect .px-3{padding-left:.75rem;padding-right:.75rem}.hypurr-connect .px-6{padding-left:1.5rem;padding-right:1.5rem}.hypurr-connect .py-1{padding-top:.25rem;padding-bottom:.25rem}.hypurr-connect .py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.hypurr-connect .py-2{padding-top:.5rem;padding-bottom:.5rem}.hypurr-connect .py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.hypurr-connect .py-5{padding-top:1.25rem}.hypurr-connect .pb-5,.hypurr-connect .py-5{padding-bottom:1.25rem}.hypurr-connect .pb-6{padding-bottom:1.5rem}.hypurr-connect .pr-11{padding-right:2.75rem}.hypurr-connect .pt-5{padding-top:1.25rem}.hypurr-connect .pt-6{padding-top:1.5rem}.hypurr-connect .font-mono{font-family:Google Sans Code,Roboto Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.hypurr-connect .font-sans{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.hypurr-connect .text-base{font-size:12.5px;line-height:1rem}.hypurr-connect .text-lg{font-size:14px;line-height:1.25rem}.hypurr-connect .font-medium{font-weight:500}.hypurr-connect .uppercase{text-transform:uppercase}.hypurr-connect .tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.hypurr-connect .tracking-\[0\.1em\]{letter-spacing:.1em}.hypurr-connect .text-amber-200{--tw-text-opacity:1;color:rgb(var(--amber-200)/var(--tw-text-opacity,1))}.hypurr-connect .text-amber-400{--tw-text-opacity:1;color:rgb(var(--amber-400)/var(--tw-text-opacity,1))}.hypurr-connect .text-content{--tw-text-opacity:1;color:rgb(var(--content)/var(--tw-text-opacity,1))}.hypurr-connect .text-content-faint{--tw-text-opacity:1;color:rgb(var(--content-faint)/var(--tw-text-opacity,1))}.hypurr-connect .text-content-muted{--tw-text-opacity:1;color:rgb(var(--content-muted)/var(--tw-text-opacity,1))}.hypurr-connect .text-content-subtle{--tw-text-opacity:1;color:rgb(var(--content-subtle)/var(--tw-text-opacity,1))}.hypurr-connect .text-trade-down{--tw-text-opacity:1;color:rgb(var(--trade-down)/var(--tw-text-opacity,1))}.hypurr-connect .text-trade-up{--tw-text-opacity:1;color:rgb(var(--trade-up)/var(--tw-text-opacity,1))}.hypurr-connect .placeholder-content-faint::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(var(--content-faint)/var(--tw-placeholder-opacity,1))}.hypurr-connect .placeholder-content-faint::placeholder{--tw-placeholder-opacity:1;color:rgb(var(--content-faint)/var(--tw-placeholder-opacity,1))}.hypurr-connect .shadow-modal{--tw-shadow:var(--shadow-modal);--tw-shadow-colored:var(--shadow-modal);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hypurr-connect .outline{outline-style:solid}.hypurr-connect .blur{--tw-blur:blur(8px)}.hypurr-connect .blur,.hypurr-connect .drop-shadow{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.hypurr-connect .drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px rgba(0,0,0,.1)) drop-shadow(0 1px 1px rgba(0,0,0,.06))}.hypurr-connect .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.hypurr-connect .backdrop-blur-sm{--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.hypurr-connect .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.hypurr-connect .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.hypurr-connect{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}:root{--surface-btn:13 18 25;--surface-btn-hover:21 23 26;--surface-btn-active:30 33 36;--surface-bd:38 42 48;--surface-bd-hover:68 69 72;--surface-bd-active:75 77 80;--surface-modal:14 18 24;--surface-dropdown:17 24 32;--surface-base:11 14 17;--surface-deep:9 11 14;--surface-raised:17 24 39;--surface-elevated:31 41 55;--surface-inset:55 65 81;--surface-inverse:255 255 255;--content:243 244 246;--content-secondary:229 231 235;--content-tertiary:209 213 219;--content-muted:170 177 193;--content-subtle:125 133 151;--content-faint:107 114 128;--content-disabled:55 65 81;--line:31 41 55;--line-strong:55 65 81;--line-subtle:17 24 39;--line-inverse:255 255 255;--overlay:0 0 0;--accent:168 85 247;--trade-up:52 211 153;--trade-down:248 113 113;--purple-400:216 180 254;--purple-500:185 125 241;--blue-500:90 153 255;--green-400:83 203 127;--amber-200:253 230 138;--amber-400:251 191 36;--amber-500:245 158 11;--btn-bg:13 18 25;--btn-fg:170 177 193;--btn-ring:38 42 48;--btn-bevel:255 255 255;--accent-btn-bg:37 28 57;--accent-btn-bg-hover:52 35 80;--accent-btn-fg:216 180 254;--accent-btn-fg-hover:233 213 255;--accent-btn-inset:15 5 35;--input-bg:18 23 31;--input-bg-focus:26 33 44;--input-ring:45 53 64;--input-ring-focus:59 69 82;--shadow-modal:0 25px 50px -12px rgba(0,0,0,.6);--shadow-dropdown:0 8px 40px rgba(0,0,0,.85)}.light{--surface-btn:244 246 249;--surface-btn-hover:236 239 243;--surface-btn-active:226 230 236;--surface-bd:214 220 228;--surface-bd-hover:194 201 211;--surface-bd-active:168 176 191;--surface-modal:255 255 255;--surface-dropdown:255 255 255;--surface-base:245 244 249;--surface-deep:233 236 242;--surface-raised:255 255 255;--surface-elevated:228 231 237;--surface-inset:225 229 235;--surface-inverse:17 24 39;--content:17 24 39;--content-secondary:31 41 55;--content-tertiary:55 65 81;--content-muted:91 101 115;--content-subtle:107 114 128;--content-faint:148 163 184;--content-disabled:179 185 196;--line:222 226 234;--line-strong:205 211 220;--line-subtle:238 240 243;--line-inverse:17 24 39;--overlay:0 0 0;--accent:147 51 234;--trade-up:5 150 105;--trade-down:220 38 38;--purple-400:124 58 237;--purple-500:109 40 217;--blue-500:37 99 235;--green-400:22 163 74;--amber-200:161 98 7;--amber-400:180 83 9;--amber-500:180 83 9;--btn-bg:255 255 255;--btn-fg:71 85 105;--btn-ring:217 221 228;--btn-bevel:15 23 42;--accent-btn-bg:243 232 255;--accent-btn-bg-hover:233 213 255;--accent-btn-fg:109 40 217;--accent-btn-fg-hover:88 28 135;--accent-btn-inset:147 51 234;--input-bg:238 240 246;--input-bg-focus:230 232 240;--input-ring:200 206 218;--input-ring-focus:168 175 192;--shadow-modal:0 16px 40px -12px rgba(15,23,42,.24),0 4px 12px -4px rgba(15,23,42,.12);--shadow-dropdown:0 12px 28px -8px rgba(15,23,42,.2),0 2px 8px -2px rgba(15,23,42,.1)}.hypurr-connect .hover\:border-surface-bd-hover:hover{--tw-border-opacity:1;border-color:rgb(var(--surface-bd-hover)/var(--tw-border-opacity,1))}.hypurr-connect .hover\:bg-surface-btn-hover:hover{--tw-bg-opacity:1;background-color:rgb(var(--surface-btn-hover)/var(--tw-bg-opacity,1))}.hypurr-connect .hover\:text-content:hover{--tw-text-opacity:1;color:rgb(var(--content)/var(--tw-text-opacity,1))}.hypurr-connect .hover\:text-content-tertiary:hover{--tw-text-opacity:1;color:rgb(var(--content-tertiary)/var(--tw-text-opacity,1))}.hypurr-connect .focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.hypurr-connect .disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.hypurr-connect .disabled\:opacity-40:disabled{opacity:.4}.hypurr-connect .disabled\:opacity-50:disabled{opacity:.5}
package/src/tailwind.css CHANGED
@@ -1,6 +1,19 @@
1
+ /* Fonts the modals reference (sans: Inter, mono: Google Sans Code) so the
2
+ package is self-contained and doesn't rely on the host loading them. */
3
+ @import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Google+Sans+Code:wght@400;500;600;700&display=swap");
4
+
1
5
  @tailwind components;
2
6
  @tailwind utilities;
3
7
 
8
+ /* Render the modals with the platform-default (subpixel) smoothing instead of
9
+ inheriting a host's `-webkit-font-smoothing: antialiased`, which renders text
10
+ thinner on macOS and makes the bold scores/numbers look lighter than intended.
11
+ Scoped to `.hypurr-connect` (the modal wrapper) and inherited by its subtree. */
12
+ .hypurr-connect {
13
+ -webkit-font-smoothing: auto;
14
+ -moz-osx-font-smoothing: auto;
15
+ }
16
+
4
17
  /* ============================================================================
5
18
  Theme tokens. Values are space-separated RGB channels so Tailwind opacity
6
19
  modifiers (e.g. bg-surface-modal/70) work. `:root` is the default (dark)