@deframe-sdk/components 0.1.7 → 0.1.9

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/dist/index.mjs CHANGED
@@ -3,7 +3,7 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
3
  import * as React6 from 'react';
4
4
  import React6__default, { useState, useEffect, useMemo } from 'react';
5
5
  import { motion, AnimatePresence } from 'framer-motion';
6
- import { MdCheckCircleOutline, MdErrorOutline, MdWarningAmber, MdInfoOutline, MdClose, MdOutlineSearch, MdOutlineSearchOff, MdOutlineSwapHoriz } from 'react-icons/md';
6
+ import { MdClose, MdOutlineSearch, MdOutlineSearchOff, MdOutlineSwapHoriz, MdCheckCircleOutline, MdErrorOutline, MdWarningAmber, MdInfoOutline } from 'react-icons/md';
7
7
  import { HiChevronUp, HiChevronDown, HiChevronLeft, HiXMark, HiArrowRight } from 'react-icons/hi2';
8
8
  import { IoAlertCircleOutline, IoTimeOutline, IoCheckmarkOutline } from 'react-icons/io5';
9
9
 
@@ -125,7 +125,7 @@ function PrimaryButton(_a) {
125
125
  /** layout */
126
126
  "overflow-hidden w-full flex items-center justify-center transition-all duration-200",
127
127
  /** typography */
128
- "font-[var(--deframe-widget-font-family)]",
128
+ "font-[var(--deframe-widget-font-family-primary)]",
129
129
  "[font-size:var(--deframe-widget-font-size-md)]",
130
130
  "[line-height:var(--deframe-widget-font-leading-md)]",
131
131
  "[font-weight:var(--deframe-widget-font-weight-semibold)]",
@@ -189,7 +189,7 @@ function SecondaryButton(_a) {
189
189
  /** layout */
190
190
  "overflow-hidden w-full flex items-center justify-center transition-all duration-200",
191
191
  /** typography */
192
- "font-[var(--deframe-widget-font-family)]",
192
+ "font-[var(--deframe-widget-font-family-primary)]",
193
193
  "[font-size:var(--deframe-widget-font-size-md)]",
194
194
  "[line-height:var(--deframe-widget-font-leading-md)]",
195
195
  "[font-weight:var(--deframe-widget-font-weight-semibold)]",
@@ -250,7 +250,7 @@ function TertiaryButton(_a) {
250
250
  /** layout */
251
251
  "overflow-hidden w-full flex items-center justify-center transition-all duration-200",
252
252
  /** typography */
253
- "font-[var(--deframe-widget-font-family)]",
253
+ "font-[var(--deframe-widget-font-family-primary)]",
254
254
  "[font-size:var(--deframe-widget-font-size-md)]",
255
255
  "[line-height:var(--deframe-widget-font-leading-md)]",
256
256
  "[font-weight:var(--deframe-widget-font-weight-semibold)]",
@@ -292,27 +292,139 @@ function TertiaryButton(_a) {
292
292
  })
293
293
  );
294
294
  }
295
+ function Input(_a) {
296
+ var _b = _a, { className = "" } = _b, props = __objRest(_b, ["className"]);
297
+ const baseClasses = [
298
+ "flex flex-col",
299
+ "[gap:var(--deframe-widget-size-gap-xs)]"
300
+ ].join(" ");
301
+ return /* @__PURE__ */ jsx(
302
+ "div",
303
+ __spreadValues({
304
+ "data-slot": "input",
305
+ "data-test-id": "input",
306
+ className: twMerge(baseClasses, className)
307
+ }, props)
308
+ );
309
+ }
310
+ function InputLabel(_a) {
311
+ var _b = _a, { className = "" } = _b, props = __objRest(_b, ["className"]);
312
+ const baseClasses = [
313
+ "[font-family:var(--deframe-widget-font-family-primary)]",
314
+ "[font-size:var(--deframe-widget-font-size-xs)]",
315
+ "[font-weight:var(--deframe-widget-font-weight-medium)]",
316
+ "text-[var(--deframe-widget-color-text-primary)]"
317
+ ].join(" ");
318
+ return /* @__PURE__ */ jsx(
319
+ "label",
320
+ __spreadValues({
321
+ "data-slot": "input-label",
322
+ "data-test-id": "input-label",
323
+ className: twMerge(baseClasses, className)
324
+ }, props)
325
+ );
326
+ }
327
+ function InputField(_a) {
328
+ var _b = _a, { hasError = false, disabled, className = "" } = _b, props = __objRest(_b, ["hasError", "disabled", "className"]);
329
+ const baseClasses = [
330
+ "w-full",
331
+ "[font-family:var(--deframe-widget-font-family-primary)]",
332
+ "[font-size:var(--deframe-widget-font-size-md)]",
333
+ "[font-weight:var(--deframe-widget-font-weight-regular)]",
334
+ "text-[var(--deframe-widget-color-text-primary)]",
335
+ "placeholder-[var(--deframe-widget-color-placeholder-primary)]",
336
+ "border-[length:var(--deframe-widget-size-border-xs)]",
337
+ "rounded-[var(--deframe-widget-size-radius-sm)]",
338
+ "px-[var(--deframe-widget-size-padding-x-md)]",
339
+ "py-[var(--deframe-widget-size-padding-y-sm)]",
340
+ "outline-none",
341
+ "transition-colors"
342
+ ].join(" ");
343
+ const stateClasses = {
344
+ error: "border border-[var(--deframe-widget-color-state-error)]",
345
+ disabled: [
346
+ "border",
347
+ "border-[var(--deframe-widget-color-border-primary-disabled)]",
348
+ "opacity-60",
349
+ "cursor-not-allowed"
350
+ ].join(" "),
351
+ default: "border border-[var(--deframe-widget-color-border-primary)]"
352
+ };
353
+ const stateKey = hasError ? "error" : disabled ? "disabled" : "default";
354
+ const fieldClasses = twMerge(baseClasses, stateClasses[stateKey], className);
355
+ return /* @__PURE__ */ jsx(
356
+ "input",
357
+ __spreadValues({
358
+ "data-slot": "input-field",
359
+ "data-test-id": "input-field",
360
+ "aria-invalid": hasError || void 0,
361
+ disabled,
362
+ className: fieldClasses
363
+ }, props)
364
+ );
365
+ }
295
366
  function Link(_a) {
296
367
  var _b = _a, {
297
368
  children,
298
369
  href,
299
370
  className = "",
300
- target = "_self"
371
+ target = "_blank",
372
+ disabled = false,
373
+ prefetch: _prefetch,
374
+ replace: _replace,
375
+ scroll: _scroll
301
376
  } = _b, props = __objRest(_b, [
302
377
  "children",
303
378
  "href",
304
379
  "className",
305
- "target"
380
+ "target",
381
+ "disabled",
382
+ "prefetch",
383
+ "replace",
384
+ "scroll"
306
385
  ]);
307
- const styles = {
308
- link: "text-sm font-medium font-poppins leading-5 cursor-pointer"
386
+ const baseClasses = [
387
+ "[font-family:var(--deframe-widget-font-family-primary)]",
388
+ "[font-size:var(--deframe-widget-font-size-md)]",
389
+ "[font-weight:var(--deframe-widget-font-weight-medium)]",
390
+ "[line-height:var(--deframe-widget-font-leading-lg)]"
391
+ ].join(" ");
392
+ const stateClasses = {
393
+ enabled: [
394
+ "text-[var(--deframe-widget-color-link)]",
395
+ "underline",
396
+ "cursor-pointer"
397
+ ].join(" "),
398
+ disabled: [
399
+ "text-[var(--deframe-widget-color-link-disabled)]",
400
+ "cursor-not-allowed",
401
+ "pointer-events-none"
402
+ ].join(" ")
309
403
  };
310
- const linkClasses = twMerge(styles.link, className);
404
+ const linkClasses = twMerge(
405
+ baseClasses,
406
+ stateClasses[disabled ? "disabled" : "enabled"],
407
+ className
408
+ );
409
+ if (disabled) {
410
+ return /* @__PURE__ */ jsx(
411
+ "span",
412
+ {
413
+ "data-slot": "link",
414
+ "data-test-id": "link",
415
+ "aria-disabled": true,
416
+ className: linkClasses,
417
+ children
418
+ }
419
+ );
420
+ }
311
421
  return /* @__PURE__ */ jsx(
312
422
  "a",
313
423
  __spreadProps(__spreadValues({
314
424
  href,
315
425
  target,
426
+ "data-slot": "link",
427
+ "data-test-id": "link",
316
428
  className: linkClasses,
317
429
  rel: target === "_blank" ? "noopener noreferrer" : void 0
318
430
  }, props), {
@@ -320,102 +432,155 @@ function Link(_a) {
320
432
  })
321
433
  );
322
434
  }
323
- function Input(_a) {
435
+ var Link_default = Link;
436
+ function Input2(_a) {
324
437
  var _b = _a, {
325
438
  label,
326
439
  error,
327
440
  placeholder,
328
441
  type = "text",
329
442
  repassword = "Forgot password?",
443
+ href = "/",
330
444
  disabled,
331
- className
445
+ className = ""
332
446
  } = _b, props = __objRest(_b, [
333
447
  "label",
334
448
  "error",
335
449
  "placeholder",
336
450
  "type",
337
451
  "repassword",
452
+ "href",
338
453
  "disabled",
339
454
  "className"
340
455
  ]);
341
456
  const hasError = !!error;
342
- const inputClasses = twMerge(
343
- "w-full px-4 py-2 rounded",
344
- "text-white placeholder-gray-400 text-base font-poppins",
345
- hasError ? "border-red-500" : disabled ? "border-gray-600 opacity-60" : "border-gray-500",
346
- className
347
- );
348
- const labelClasses = "block mb-1 text-xs text-white font-poppins";
349
- return /* @__PURE__ */ jsxs("div", { children: [
350
- label && /* @__PURE__ */ jsx("label", { className: labelClasses, children: label }),
457
+ return /* @__PURE__ */ jsxs(Input, { className, children: [
458
+ label && /* @__PURE__ */ jsx(InputLabel, { children: label }),
351
459
  /* @__PURE__ */ jsx(
352
- "input",
460
+ InputField,
353
461
  __spreadValues({
354
462
  type,
355
463
  placeholder,
356
464
  disabled,
357
- className: inputClasses
465
+ hasError,
466
+ "aria-label": label
358
467
  }, props)
359
468
  ),
360
- type === "password" && /* @__PURE__ */ jsx("div", { className: "text-right", children: /* @__PURE__ */ jsx(Link, { href: "#", children: repassword }) }),
361
- error && /* @__PURE__ */ jsx("p", { className: "mt-1 text-xs text-red-500", children: error })
469
+ type === "password" && /* @__PURE__ */ jsx(
470
+ "div",
471
+ {
472
+ "data-slot": "input-repassword",
473
+ "data-test-id": "input-repassword",
474
+ className: "text-right",
475
+ children: /* @__PURE__ */ jsx(Link_default, { href, disabled, children: repassword })
476
+ }
477
+ )
362
478
  ] });
363
479
  }
364
- var ListItem = ({
365
- children,
366
- className,
367
- containerClassName,
368
- onClick
369
- }) => {
480
+ function ListItem(_a) {
481
+ var _b = _a, {
482
+ children,
483
+ className,
484
+ containerClassName,
485
+ onClick
486
+ } = _b, props = __objRest(_b, [
487
+ "children",
488
+ "className",
489
+ "containerClassName",
490
+ "onClick"
491
+ ]);
492
+ const baseClasses = [
493
+ "self-stretch min-h-16 relative",
494
+ "rounded-[var(--deframe-widget-size-radius-xs)]",
495
+ "border-[length:var(--deframe-widget-size-border-xs)]",
496
+ "border-[var(--deframe-widget-color-border-primary)]",
497
+ "flex flex-col justify-center items-center",
498
+ "transition-colors",
499
+ "bg-[var(--deframe-widget-color-bg-primary)]"
500
+ ].join(" ");
501
+ const stateClasses = {
502
+ clickable: "cursor-pointer hover:border-[var(--deframe-widget-color-border-secondary)]",
503
+ static: ""
504
+ };
370
505
  const containerClasses = twMerge(
371
- "self-stretch min-h-16 relative rounded border border-border-default text-white dark:border-border-default-dark flex flex-col justify-center items-center hover:border-border-strong dark:hover:border-border-strong-dark transition-colors bg-bg-subtle dark:bg-bg-subtle-dark",
372
- onClick && "cursor-pointer",
506
+ baseClasses,
507
+ stateClasses[onClick ? "clickable" : "static"],
373
508
  containerClassName
374
509
  );
375
- return /* @__PURE__ */ jsx("div", { className: containerClasses, onClick, children: /* @__PURE__ */ jsx(
376
- "div",
377
- {
378
- className: twMerge(
379
- "self-stretch inline-flex justify-between items-center gap-md px-4 py-2 text-white",
380
- className
381
- ),
382
- children
383
- }
384
- ) });
385
- };
386
- var ListItemLeftSide = ({ children, className }) => {
510
+ const innerClasses = twMerge(
511
+ "self-stretch inline-flex justify-between items-center",
512
+ "[gap:var(--deframe-widget-size-gap-md)]",
513
+ "px-[var(--deframe-widget-size-padding-x-md)]",
514
+ "py-[var(--deframe-widget-size-padding-y-sm)]",
515
+ "text-[var(--deframe-widget-color-text-primary)]",
516
+ className
517
+ );
518
+ return /* @__PURE__ */ jsx(
519
+ "li",
520
+ __spreadProps(__spreadValues({
521
+ "data-slot": "list-item",
522
+ "data-test-id": "list-item",
523
+ className: containerClasses,
524
+ onClick,
525
+ tabIndex: onClick ? 0 : void 0,
526
+ role: onClick ? "button" : void 0,
527
+ onKeyDown: onClick ? (e) => e.key === "Enter" && onClick() : void 0
528
+ }, props), {
529
+ children: /* @__PURE__ */ jsx("div", { className: innerClasses, children })
530
+ })
531
+ );
532
+ }
533
+ function ListItemLeftSide(_a) {
534
+ var _b = _a, { children, className } = _b, props = __objRest(_b, ["children", "className"]);
535
+ const baseClasses = [
536
+ "flex justify-center items-center",
537
+ "text-[var(--deframe-widget-color-text-primary)]"
538
+ ].join(" ");
387
539
  return /* @__PURE__ */ jsx(
388
540
  "div",
389
- {
390
- className: twMerge("flex justify-center items-center text-white", className),
541
+ __spreadProps(__spreadValues({
542
+ "data-slot": "list-item-left-side",
543
+ "data-test-id": "list-item-left-side",
544
+ className: twMerge(baseClasses, className)
545
+ }, props), {
391
546
  children
392
- }
547
+ })
393
548
  );
394
- };
395
- var ListItemContent = ({ children, className }) => {
549
+ }
550
+ function ListItemContent(_a) {
551
+ var _b = _a, { children, className } = _b, props = __objRest(_b, ["children", "className"]);
552
+ const baseClasses = [
553
+ "flex-1 self-stretch inline-flex flex-col justify-center items-start overflow-hidden",
554
+ "text-[var(--deframe-widget-color-text-primary)]"
555
+ ].join(" ");
396
556
  return /* @__PURE__ */ jsx(
397
557
  "div",
398
- {
399
- className: twMerge(
400
- "flex-1 self-stretch inline-flex flex-col justify-center items-start overflow-hidden text-white",
401
- className
402
- ),
558
+ __spreadProps(__spreadValues({
559
+ "data-slot": "list-item-content",
560
+ "data-test-id": "list-item-content",
561
+ className: twMerge(baseClasses, className)
562
+ }, props), {
403
563
  children
404
- }
564
+ })
405
565
  );
406
- };
407
- var ListItemRightSide = ({ children, className }) => {
566
+ }
567
+ function ListItemRightSide(_a) {
568
+ var _b = _a, { children, className } = _b, props = __objRest(_b, ["children", "className"]);
569
+ const baseClasses = [
570
+ "flex flex-col justify-start items-end",
571
+ "text-[var(--deframe-widget-color-text-primary)]"
572
+ ].join(" ");
408
573
  return /* @__PURE__ */ jsx(
409
574
  "div",
410
- {
411
- className: twMerge(
412
- "flex flex-col justify-start items-end text-white",
413
- className
414
- ),
575
+ __spreadProps(__spreadValues({
576
+ "data-slot": "list-item-right-side",
577
+ "data-test-id": "list-item-right-side",
578
+ className: twMerge(baseClasses, className)
579
+ }, props), {
415
580
  children
416
- }
581
+ })
417
582
  );
418
- };
583
+ }
419
584
  function WalletListContainer({
420
585
  children,
421
586
  className
@@ -424,12 +589,28 @@ function WalletListContainer({
424
589
  }
425
590
  var Text = React6.forwardRef(
426
591
  (_a, ref) => {
427
- var _b = _a, { as: Component = "p", variantClass, className, children } = _b, props = __objRest(_b, ["as", "variantClass", "className", "children"]);
592
+ var _b = _a, {
593
+ children,
594
+ as: Component = "p",
595
+ className = ""
596
+ } = _b, props = __objRest(_b, [
597
+ "children",
598
+ "as",
599
+ "className"
600
+ ]);
601
+ const baseClasses = [
602
+ "[font-family:var(--deframe-widget-font-family-primary)]",
603
+ "[font-size:var(--deframe-widget-font-size-md)]",
604
+ "[line-height:var(--deframe-widget-font-leading-md)]",
605
+ "[font-weight:var(--deframe-widget-font-weight-regular)]",
606
+ "text-[color:var(--deframe-widget-color-text-primary)]"
607
+ ].join(" ");
608
+ const textClasses = twMerge(baseClasses, className);
428
609
  return React6.createElement(
429
610
  Component,
430
611
  __spreadValues({
431
612
  ref,
432
- className: twMerge("font-poppins", variantClass, className)
613
+ className: textClasses
433
614
  }, props),
434
615
  children
435
616
  );
@@ -437,52 +618,145 @@ var Text = React6.forwardRef(
437
618
  );
438
619
  Text.displayName = "Text";
439
620
  var Text_default = Text;
440
- var accentVariants = {
441
- "accent-large": "text-[15px] leading-[140%] font-semibold",
442
- "accent-medium": "text-[14px] leading-[140%] font-semibold",
443
- "accent-small": "text-[12px] leading-[140%] font-semibold"
444
- };
445
621
  var TextAccent = React6.forwardRef(
446
622
  (_a, ref) => {
447
- var _b = _a, { variant = "accent-medium", as = "span" } = _b, props = __objRest(_b, ["variant", "as"]);
623
+ var _b = _a, {
624
+ as = "span",
625
+ variant = "accent-medium",
626
+ className = ""
627
+ } = _b, props = __objRest(_b, [
628
+ "as",
629
+ "variant",
630
+ "className"
631
+ ]);
632
+ const accentVariants = {
633
+ "accent-large": [
634
+ "[font-size:var(--deframe-widget-font-size-lg)]",
635
+ "[line-height:var(--deframe-widget-font-leading-lg)]",
636
+ "[font-weight:var(--deframe-widget-font-weight-semibold)]"
637
+ ].join(" "),
638
+ "accent-medium": [
639
+ "[font-size:var(--deframe-widget-font-size-md)]",
640
+ "[line-height:var(--deframe-widget-font-leading-lg)]",
641
+ "[font-weight:var(--deframe-widget-font-weight-semibold)]"
642
+ ].join(" "),
643
+ "accent-small": [
644
+ "[font-size:var(--deframe-widget-font-size-sm)]",
645
+ "[line-height:var(--deframe-widget-font-leading-lg)]",
646
+ "[font-weight:var(--deframe-widget-font-weight-semibold)]"
647
+ ].join(" ")
648
+ };
448
649
  const variantClass = accentVariants[variant];
449
- return /* @__PURE__ */ jsx(Text_default, __spreadValues({ ref, as, variantClass }, props));
650
+ const accentClasses = twMerge(variantClass, className);
651
+ return /* @__PURE__ */ jsx(
652
+ Text_default,
653
+ __spreadValues({
654
+ ref,
655
+ as,
656
+ className: accentClasses,
657
+ "data-slot": "text-accent",
658
+ "data-test-id": "text-accent"
659
+ }, props)
660
+ );
450
661
  }
451
662
  );
452
663
  TextAccent.displayName = "TextAccent";
453
- var TextAccent_default = TextAccent;
454
- var bodyVariants = {
455
- "text-large": "text-[15px] leading-[140%] font-normal",
456
- "text-medium": "text-[14px] leading-[140%] font-normal",
457
- "text-small": "text-[12px] leading-[140%] font-normal"
458
- };
459
664
  var TextBody = React6.forwardRef(
460
665
  (_a, ref) => {
461
- var _b = _a, { variant = "text-medium", as = "p" } = _b, props = __objRest(_b, ["variant", "as"]);
666
+ var _b = _a, {
667
+ as = "p",
668
+ variant = "text-medium",
669
+ className = ""
670
+ } = _b, props = __objRest(_b, [
671
+ "as",
672
+ "variant",
673
+ "className"
674
+ ]);
675
+ const bodyVariants = {
676
+ "text-large": [
677
+ "[font-size:var(--deframe-widget-font-size-lg)]",
678
+ "[line-height:var(--deframe-widget-font-leading-lg)]",
679
+ "[font-weight:var(--deframe-widget-font-weight-regular)]"
680
+ ].join(" "),
681
+ "text-medium": [
682
+ "[font-size:var(--deframe-widget-font-size-md)]",
683
+ "[line-height:var(--deframe-widget-font-leading-lg)]",
684
+ "[font-weight:var(--deframe-widget-font-weight-regular)]"
685
+ ].join(" "),
686
+ "text-small": [
687
+ "[font-size:var(--deframe-widget-font-size-sm)]",
688
+ "[line-height:var(--deframe-widget-font-leading-lg)]",
689
+ "[font-weight:var(--deframe-widget-font-weight-regular)]"
690
+ ].join(" ")
691
+ };
462
692
  const variantClass = bodyVariants[variant];
463
- return /* @__PURE__ */ jsx(Text_default, __spreadValues({ ref, as, variantClass }, props));
693
+ const bodyClasses = twMerge(variantClass, className);
694
+ return /* @__PURE__ */ jsx(
695
+ Text_default,
696
+ __spreadValues({
697
+ ref,
698
+ as,
699
+ className: bodyClasses,
700
+ "data-slot": "text-body",
701
+ "data-test-id": "text-body"
702
+ }, props)
703
+ );
464
704
  }
465
705
  );
466
706
  TextBody.displayName = "TextBody";
467
- var TextBody_default = TextBody;
468
- var headingVariants = {
469
- "h-large": "text-[56px] leading-[100%] tracking-[0] font-extrabold",
470
- h1: "text-[40px] leading-[110%] font-extrabold",
471
- h2: "text-[28px] leading-[130%] font-extrabold",
472
- h3: "text-[22px] leading-[120%] font-extrabold",
473
- h4: "text-[18px] leading-[120%] font-extrabold",
474
- h5: "text-[16px] leading-[120%] font-bold"
475
- };
476
707
  var TextHeading = React6.forwardRef(
477
708
  (_a, ref) => {
478
- var _b = _a, { variant = "h2", as } = _b, props = __objRest(_b, ["variant", "as"]);
709
+ var _b = _a, {
710
+ as,
711
+ variant = "h2",
712
+ className = ""
713
+ } = _b, props = __objRest(_b, [
714
+ "as",
715
+ "variant",
716
+ "className"
717
+ ]);
718
+ const headingVariants = {
719
+ "h-large": [
720
+ "[font-size:var(--deframe-widget-font-size-h-large)]",
721
+ "[line-height:var(--deframe-widget-font-leading-sm)]",
722
+ "[font-weight:var(--deframe-widget-font-weight-extrabold)]"
723
+ ].join(" "),
724
+ h1: [
725
+ "[font-size:var(--deframe-widget-font-size-h1)]",
726
+ "[line-height:var(--deframe-widget-font-leading-md)]",
727
+ "[font-weight:var(--deframe-widget-font-weight-extrabold)]"
728
+ ].join(" "),
729
+ h2: [
730
+ "[font-size:var(--deframe-widget-font-size-h2)]",
731
+ "[line-height:var(--deframe-widget-font-leading-lg)]",
732
+ "[font-weight:var(--deframe-widget-font-weight-extrabold)]"
733
+ ].join(" "),
734
+ h3: [
735
+ "[font-size:var(--deframe-widget-font-size-h3)]",
736
+ "[line-height:var(--deframe-widget-font-leading-md)]",
737
+ "[font-weight:var(--deframe-widget-font-weight-bold)]"
738
+ ].join(" "),
739
+ h4: [
740
+ "[font-size:var(--deframe-widget-font-size-h4)]",
741
+ "[line-height:var(--deframe-widget-font-leading-md)]",
742
+ "[font-weight:var(--deframe-widget-font-weight-bold)]"
743
+ ].join(" "),
744
+ h5: [
745
+ "[font-size:var(--deframe-widget-font-size-h5)]",
746
+ "[line-height:var(--deframe-widget-font-leading-md)]",
747
+ "[font-weight:var(--deframe-widget-font-weight-bold)]"
748
+ ].join(" ")
749
+ };
479
750
  const variantClass = headingVariants[variant];
751
+ const headingClasses = twMerge(variantClass, className);
480
752
  return /* @__PURE__ */ jsx(
481
753
  Text_default,
482
754
  __spreadValues({
483
755
  ref,
484
756
  as: variant === "h-large" ? "h1" : variant,
485
- variantClass
757
+ className: headingClasses,
758
+ "data-slot": "text-heading",
759
+ "data-test-id": "text-heading"
486
760
  }, props)
487
761
  );
488
762
  }
@@ -491,11 +765,13 @@ TextHeading.displayName = "TextHeading";
491
765
  var TextHeading_default = TextHeading;
492
766
  function Title(_a) {
493
767
  var _b = _a, {
494
- variant = "h1"
768
+ variant = "h1",
769
+ className = ""
495
770
  } = _b, props = __objRest(_b, [
496
- "variant"
771
+ "variant",
772
+ "className"
497
773
  ]);
498
- return /* @__PURE__ */ jsx(TextHeading_default, __spreadValues({ variant }, props));
774
+ return /* @__PURE__ */ jsx(TextHeading_default, __spreadValues({ variant, className }, props));
499
775
  }
500
776
  function ConnectWalletList({
501
777
  wallets,
@@ -514,7 +790,7 @@ function ConnectWalletList({
514
790
  className: "w-10 h-10 rounded-full"
515
791
  }
516
792
  ) : wallet.icon }),
517
- /* @__PURE__ */ jsx(ListItemContent, { children: /* @__PURE__ */ jsx(Text_default, { children: wallet.name }) }),
793
+ /* @__PURE__ */ jsx(ListItemContent, { children: /* @__PURE__ */ jsx(TextBody, { variant: "text-medium", children: wallet.name }) }),
518
794
  /* @__PURE__ */ jsx(ListItemRightSide, { children: /* @__PURE__ */ jsx(
519
795
  "svg",
520
796
  {
@@ -542,32 +818,59 @@ function WalletItem({
542
818
  onClick,
543
819
  className
544
820
  }) {
821
+ const baseClasses = [
822
+ "w-full flex items-center",
823
+ "[gap:var(--deframe-widget-size-gap-md)]",
824
+ "px-[var(--deframe-widget-size-padding-x-md)]",
825
+ "py-[var(--deframe-widget-size-padding-y-sm)]",
826
+ "rounded-[var(--deframe-widget-size-radius-xs)]",
827
+ "bg-[var(--deframe-widget-color-bg-secondary)]",
828
+ "cursor-pointer",
829
+ "transition-colors",
830
+ "hover:bg-[var(--deframe-widget-color-bg-tertiary)]",
831
+ "focus:outline-none"
832
+ ].join(" ");
545
833
  return /* @__PURE__ */ jsxs(
546
834
  "button",
547
835
  {
836
+ "data-slot": "wallet-item",
837
+ "data-test-id": "wallet-item",
838
+ "aria-label": `Connect ${name} wallet`,
548
839
  onClick,
549
- className: twMerge(
550
- "w-full flex items-center gap-4 p-5",
551
- "bg-[#1E1E1E] rounded-2xl",
552
- "transition-all duration-200",
553
- "hover:bg-[#2C2C2C] active:scale-[0.98]",
554
- "focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-opacity-50",
555
- className
556
- ),
840
+ className: twMerge(baseClasses, className),
557
841
  children: [
558
- /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 w-12 h-12 rounded-full overflow-hidden bg-white flex items-center justify-center", children: typeof icon === "string" ? /* @__PURE__ */ jsx(
559
- "img",
842
+ /* @__PURE__ */ jsx(
843
+ "div",
560
844
  {
561
- src: icon,
562
- alt: name,
563
- className: "w-full h-full object-cover"
845
+ "data-slot": "wallet-item-icon",
846
+ "data-test-id": "wallet-item-icon",
847
+ className: "flex-shrink-0 w-12 h-12 rounded-[var(--deframe-widget-size-radius-full)] overflow-hidden flex items-center justify-center",
848
+ children: typeof icon === "string" ? /* @__PURE__ */ jsx(
849
+ "img",
850
+ {
851
+ src: icon,
852
+ alt: name,
853
+ className: "w-full h-full object-cover"
854
+ }
855
+ ) : icon
564
856
  }
565
- ) : icon }),
566
- /* @__PURE__ */ jsx("span", { className: "flex-1 text-left text-[15px] md:text-[17px] font-medium text-white", children: name }),
857
+ ),
858
+ /* @__PURE__ */ jsx(
859
+ TextBody,
860
+ {
861
+ "data-slot": "wallet-item-name",
862
+ "data-test-id": "wallet-item-name",
863
+ variant: "text-medium",
864
+ className: "flex-1 text-left text-[var(--deframe-widget-color-text-primary)]",
865
+ children: name
866
+ }
867
+ ),
567
868
  /* @__PURE__ */ jsx(
568
869
  "svg",
569
870
  {
570
- className: "flex-shrink-0 w-5 h-5 text-gray-400",
871
+ "data-slot": "wallet-item-chevron",
872
+ "data-test-id": "wallet-item-chevron",
873
+ className: "flex-shrink-0 w-5 h-5 text-[var(--deframe-widget-color-text-secondary)]",
571
874
  fill: "none",
572
875
  viewBox: "0 0 24 24",
573
876
  stroke: "currentColor",
@@ -1170,21 +1473,78 @@ var Skeleton = (_a) => {
1170
1473
  );
1171
1474
  };
1172
1475
  Skeleton.displayName = "Skeleton";
1173
- var variantConfig = {
1174
- info: { color: "#1890FF", icon: MdInfoOutline },
1175
- warning: { color: "#F6A700", icon: MdWarningAmber },
1176
- error: { color: "#FF4D4F", icon: MdErrorOutline },
1177
- success: { color: "#2BA176", icon: MdCheckCircleOutline }
1178
- };
1179
- var positionStyles = {
1180
- "top-right": "top-4 right-4",
1181
- "top-left": "top-4 left-4",
1182
- "top-center": "top-4 left-1/2 -translate-x-1/2",
1183
- "bottom-right": "bottom-4 right-4",
1184
- "bottom-left": "bottom-4 left-4",
1185
- "bottom-center": "bottom-4 left-1/2 -translate-x-1/2"
1186
- };
1187
- var BannerNotification = (_a) => {
1476
+ function BannerNotificationIcon(_a) {
1477
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1478
+ const baseClasses = [
1479
+ "flex items-center justify-center",
1480
+ "flex-shrink-0",
1481
+ "[font-size:var(--deframe-widget-font-size-xxl)]"
1482
+ ].join(" ");
1483
+ return /* @__PURE__ */ jsx(
1484
+ "div",
1485
+ __spreadValues({
1486
+ "data-slot": "banner-notification-icon",
1487
+ "data-test-id": "banner-notification-icon",
1488
+ className: twMerge(baseClasses, className)
1489
+ }, props)
1490
+ );
1491
+ }
1492
+ function BannerNotificationContent(_a) {
1493
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1494
+ const baseClasses = "flex-1 min-w-0 p-2";
1495
+ return /* @__PURE__ */ jsx(
1496
+ "div",
1497
+ __spreadValues({
1498
+ "data-slot": "banner-notification-content",
1499
+ "data-test-id": "banner-notification-content",
1500
+ className: twMerge(baseClasses, className)
1501
+ }, props)
1502
+ );
1503
+ }
1504
+ function BannerNotificationTitle(_a) {
1505
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1506
+ return /* @__PURE__ */ jsx(
1507
+ TextHeading,
1508
+ __spreadValues({
1509
+ variant: "h4",
1510
+ as: "p",
1511
+ "data-slot": "banner-notification-title",
1512
+ "data-test-id": "banner-notification-title",
1513
+ className: twMerge("[margin-bottom:var(--deframe-widget-size-gap-xs)] text-inherit", className)
1514
+ }, props)
1515
+ );
1516
+ }
1517
+ function BannerNotificationMessage(_a) {
1518
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1519
+ return /* @__PURE__ */ jsx(
1520
+ TextBody,
1521
+ __spreadValues({
1522
+ variant: "text-medium",
1523
+ "data-slot": "banner-notification-message",
1524
+ "data-test-id": "banner-notification-message",
1525
+ className: twMerge("text-inherit", className)
1526
+ }, props)
1527
+ );
1528
+ }
1529
+ function BannerNotificationClose(_a) {
1530
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1531
+ const baseClasses = [
1532
+ "flex-shrink-0",
1533
+ "self-start",
1534
+ "[font-size:var(--deframe-widget-font-size-xl)]",
1535
+ "transition-opacity hover:opacity-70 cursor-pointer"
1536
+ ].join(" ");
1537
+ return /* @__PURE__ */ jsx(
1538
+ "button",
1539
+ __spreadValues({
1540
+ "data-slot": "banner-notification-close",
1541
+ "data-test-id": "banner-notification-close",
1542
+ "aria-label": "Close notification",
1543
+ className: twMerge(baseClasses, className)
1544
+ }, props)
1545
+ );
1546
+ }
1547
+ function BannerNotification(_a) {
1188
1548
  var _b = _a, {
1189
1549
  type = "inline",
1190
1550
  variant = "info",
@@ -1194,6 +1554,8 @@ var BannerNotification = (_a) => {
1194
1554
  autoHideDuration = 5e3,
1195
1555
  show = true,
1196
1556
  onClose,
1557
+ showIcon = true,
1558
+ icon,
1197
1559
  className
1198
1560
  } = _b, props = __objRest(_b, [
1199
1561
  "type",
@@ -1204,15 +1566,49 @@ var BannerNotification = (_a) => {
1204
1566
  "autoHideDuration",
1205
1567
  "show",
1206
1568
  "onClose",
1569
+ "showIcon",
1570
+ "icon",
1207
1571
  "className"
1208
1572
  ]);
1573
+ const [isVisible, setIsVisible] = React6.useState(show);
1209
1574
  const [isExiting, setIsExiting] = React6.useState(false);
1210
1575
  const timerRef = React6.useRef(null);
1211
- const config = variantConfig[variant];
1212
- const IconComponent = config.icon;
1576
+ const variantInlineClasses = {
1577
+ info: "bg-[var(--deframe-widget-color-state-info)]/20 border-[var(--deframe-widget-color-state-info)]",
1578
+ warning: "bg-[var(--deframe-widget-color-state-warning)]/20 border-[var(--deframe-widget-color-state-warning)]",
1579
+ error: "bg-[var(--deframe-widget-color-state-error)]/20 border-[var(--deframe-widget-color-state-error)]",
1580
+ success: "bg-[var(--deframe-widget-color-state-success)]/20 border-[var(--deframe-widget-color-state-success)]"
1581
+ };
1582
+ const variantToastClasses = {
1583
+ info: "bg-[var(--deframe-widget-color-state-info)] border-[var(--deframe-widget-color-state-info)]",
1584
+ warning: "bg-[var(--deframe-widget-color-state-warning)] border-[var(--deframe-widget-color-state-warning)]",
1585
+ error: "bg-[var(--deframe-widget-color-state-error)] border-[var(--deframe-widget-color-state-error)]",
1586
+ success: "bg-[var(--deframe-widget-color-state-success)] border-[var(--deframe-widget-color-state-success)]"
1587
+ };
1588
+ const variantTextClasses = {
1589
+ info: "text-[var(--deframe-widget-color-state-info)]",
1590
+ warning: "text-[var(--deframe-widget-color-state-warning)]",
1591
+ error: "text-[var(--deframe-widget-color-state-error)]",
1592
+ success: "text-[var(--deframe-widget-color-state-success)]"
1593
+ };
1594
+ const variantIcons = {
1595
+ info: MdInfoOutline,
1596
+ warning: MdWarningAmber,
1597
+ error: MdErrorOutline,
1598
+ success: MdCheckCircleOutline
1599
+ };
1600
+ const positionClasses = {
1601
+ "top-right": "top-4 right-4",
1602
+ "top-left": "top-4 left-4",
1603
+ "top-center": "top-4 left-1/2 -translate-x-1/2",
1604
+ "bottom-right": "bottom-4 right-4",
1605
+ "bottom-left": "bottom-4 left-4",
1606
+ "bottom-center": "bottom-4 left-1/2 -translate-x-1/2"
1607
+ };
1213
1608
  const handleClose = () => {
1214
1609
  setIsExiting(true);
1215
1610
  setTimeout(() => {
1611
+ setIsVisible(false);
1216
1612
  if (timerRef.current) {
1217
1613
  clearTimeout(timerRef.current);
1218
1614
  timerRef.current = null;
@@ -1220,56 +1616,74 @@ var BannerNotification = (_a) => {
1220
1616
  onClose == null ? void 0 : onClose();
1221
1617
  }, 300);
1222
1618
  };
1223
- if (type === "toast" && show && autoHideDuration > 0 && !timerRef.current && !isExiting) {
1224
- timerRef.current = setTimeout(() => {
1619
+ React6.useEffect(() => {
1620
+ if (!show) {
1225
1621
  handleClose();
1226
- }, autoHideDuration);
1227
- }
1622
+ return;
1623
+ }
1624
+ setIsVisible(true);
1625
+ setIsExiting(false);
1626
+ }, [show]);
1228
1627
  React6.useEffect(() => {
1628
+ if (type === "toast" && show && autoHideDuration > 0 && !isExiting) {
1629
+ timerRef.current = setTimeout(handleClose, autoHideDuration);
1630
+ }
1229
1631
  return () => {
1230
1632
  if (timerRef.current) {
1231
1633
  clearTimeout(timerRef.current);
1232
1634
  timerRef.current = null;
1233
1635
  }
1234
1636
  };
1235
- }, []);
1236
- if (!show) return null;
1237
- const backgroundColor = type === "inline" ? `${config.color}33` : config.color;
1637
+ }, [type, show, autoHideDuration, isExiting]);
1638
+ if (!isVisible) return null;
1639
+ const v = variant;
1640
+ const t = type;
1641
+ const p = position;
1642
+ const baseClasses = [
1643
+ "flex items-center",
1644
+ "[gap:var(--deframe-widget-size-gap-md)]",
1645
+ "px-[var(--deframe-widget-size-padding-x-md)]",
1646
+ "py-[var(--deframe-widget-size-padding-y-sm)]",
1647
+ "rounded-[var(--deframe-widget-size-radius-xs)]",
1648
+ "border",
1649
+ "transition-all duration-300"
1650
+ ].join(" ");
1651
+ const typeClasses = {
1652
+ inline: variantInlineClasses[v],
1653
+ toast: [
1654
+ variantToastClasses[v],
1655
+ "fixed z-50 w-[clamp(18rem,40vw,30rem)] shadow-lg",
1656
+ positionClasses[p]
1657
+ ].join(" ")
1658
+ };
1659
+ const bannerClasses = twMerge(
1660
+ baseClasses,
1661
+ typeClasses[t],
1662
+ variantTextClasses[v],
1663
+ isExiting && "opacity-0 -translate-y-2",
1664
+ className
1665
+ );
1666
+ const IconComponent = variantIcons[v];
1667
+ const resolvedIcon = icon != null ? icon : /* @__PURE__ */ jsx(IconComponent, {});
1238
1668
  return /* @__PURE__ */ jsxs(
1239
1669
  "div",
1240
1670
  __spreadProps(__spreadValues({
1241
- className: twMerge(
1242
- "flex items-start gap-3 p-3 rounded border transition-all duration-300",
1243
- isExiting && "opacity-0 -translate-y-2",
1244
- className,
1245
- type === "toast" && "fixed z-50 w-[clamp(18rem,40vw,30rem)] shadow-lg",
1246
- type === "toast" && positionStyles[position]
1247
- ),
1248
- style: {
1249
- backgroundColor,
1250
- borderColor: config.color
1251
- },
1252
- role: "alert"
1671
+ "data-slot": "banner-notification",
1672
+ "data-test-id": "banner-notification",
1673
+ role: "alert",
1674
+ className: bannerClasses
1253
1675
  }, props), {
1254
1676
  children: [
1255
- /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 text-2xl", children: /* @__PURE__ */ jsx(IconComponent, {}) }),
1256
- /* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
1257
- title && /* @__PURE__ */ jsx("div", { className: "font-semibold text-sm mb-1", children: title }),
1258
- /* @__PURE__ */ jsx("div", { className: "text-sm", children: message })
1677
+ showIcon && /* @__PURE__ */ jsx(BannerNotificationIcon, { children: resolvedIcon }),
1678
+ /* @__PURE__ */ jsxs(BannerNotificationContent, { children: [
1679
+ title && /* @__PURE__ */ jsx(BannerNotificationTitle, { children: title }),
1680
+ /* @__PURE__ */ jsx(BannerNotificationMessage, { children: message })
1259
1681
  ] }),
1260
- /* @__PURE__ */ jsx(
1261
- "button",
1262
- {
1263
- onClick: handleClose,
1264
- className: "flex-shrink-0 text-xl transition-opacity hover:opacity-70 cursor-pointer",
1265
- "aria-label": "Close notification",
1266
- children: /* @__PURE__ */ jsx(MdClose, {})
1267
- }
1268
- )
1682
+ /* @__PURE__ */ jsx(BannerNotificationClose, { onClick: handleClose, children: /* @__PURE__ */ jsx(MdClose, {}) })
1269
1683
  ]
1270
1684
  })
1271
1685
  );
1272
- };
1686
+ }
1273
1687
  BannerNotification.displayName = "BannerNotification";
1274
1688
  var AddressDisplay = ({
1275
1689
  address,
@@ -1298,7 +1712,7 @@ var AddressDisplay = ({
1298
1712
  ),
1299
1713
  children: [
1300
1714
  /* @__PURE__ */ jsx(
1301
- TextBody_default,
1715
+ TextBody,
1302
1716
  {
1303
1717
  className: twMerge(
1304
1718
  "block w-full whitespace-nowrap overflow-hidden",
@@ -1371,7 +1785,7 @@ var SummaryDetails = ({
1371
1785
  open: defaultOpen,
1372
1786
  children: [
1373
1787
  /* @__PURE__ */ jsx("summary", { className: twMerge("cursor-pointer block ", summaryClassName), children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
1374
- /* @__PURE__ */ jsx(TextBody_default, { className: "text-white font-medium", children: title }),
1788
+ /* @__PURE__ */ jsx(TextBody, { className: "text-white font-medium", children: title }),
1375
1789
  /* @__PURE__ */ jsx(
1376
1790
  "svg",
1377
1791
  {
@@ -1402,7 +1816,7 @@ var SummaryDetails = ({
1402
1816
  ),
1403
1817
  children: items.map((item, index) => /* @__PURE__ */ jsxs("div", { className: "flex justify-between py-2", children: [
1404
1818
  /* @__PURE__ */ jsx(
1405
- TextBody_default,
1819
+ TextBody,
1406
1820
  {
1407
1821
  variant: "text-small",
1408
1822
  className: twMerge("text-text-tertiary dark:text-text-tertiary-dark", item.labelClassName),
@@ -1410,7 +1824,7 @@ var SummaryDetails = ({
1410
1824
  }
1411
1825
  ),
1412
1826
  typeof item.value === "string" ? /* @__PURE__ */ jsx(
1413
- TextBody_default,
1827
+ TextBody,
1414
1828
  {
1415
1829
  variant: "text-small",
1416
1830
  className: twMerge("text-text-primary dark:text-text-primary-dark font-medium", item.valueClassName),
@@ -1930,7 +2344,7 @@ var DetailsHeader = ({ title, onBack, className, backAriaLabel = "Back" }) => {
1930
2344
  children: /* @__PURE__ */ jsx(HiChevronLeft, { className: "w-6 h-6 text-text-tertiary dark:text-text-tertiary-dark" })
1931
2345
  }
1932
2346
  ),
1933
- /* @__PURE__ */ jsx("div", { className: "flex-1 flex items-center", children: /* @__PURE__ */ jsx(TextHeading_default, { variant: "h-large", children: title }) })
2347
+ /* @__PURE__ */ jsx("div", { className: "flex-1 flex items-center", children: /* @__PURE__ */ jsx(TextHeading, { variant: "h-large", children: title }) })
1934
2348
  ] });
1935
2349
  };
1936
2350
  var CloseButton = ({ onClick, testId, ariaLabel = "Close", className }) => {
@@ -2237,7 +2651,7 @@ var SwapNetworkSelectorView = ({
2237
2651
  }) => {
2238
2652
  const baseClasses = "flex flex-row items-center gap-xs";
2239
2653
  return /* @__PURE__ */ jsxs("div", { "data-test-id": testId, className: twMerge(baseClasses, className), children: [
2240
- /* @__PURE__ */ jsx(TextBody_default, { as: "span", variant: "text-small", className: "tracking-wide text-text-tertiary dark:text-text-tertiary-dark", children: directionLabel }),
2654
+ /* @__PURE__ */ jsx(TextBody, { as: "span", variant: "text-small", className: "tracking-wide text-text-tertiary dark:text-text-tertiary-dark", children: directionLabel }),
2241
2655
  /* @__PURE__ */ jsxs(
2242
2656
  "button",
2243
2657
  {
@@ -2262,7 +2676,7 @@ var SwapQuoteHeaderView = ({
2262
2676
  }) => {
2263
2677
  const baseClasses = "border-b border-border-default dark:border-border-default-dark pb-sm";
2264
2678
  return /* @__PURE__ */ jsx("div", { "data-test-id": "swap-quote-header", className: twMerge(baseClasses, className), children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
2265
- /* @__PURE__ */ jsx(TextBody_default, { as: "span", variant: "text-small", className: "font-semibold text-text-secondary dark:text-text-secondary-dark inline-flex items-center", children: label }),
2679
+ /* @__PURE__ */ jsx(TextBody, { as: "span", variant: "text-small", className: "font-semibold text-text-secondary dark:text-text-secondary-dark inline-flex items-center", children: label }),
2266
2680
  /* @__PURE__ */ jsx("div", { className: "flex items-center gap-md", children: timerElement })
2267
2681
  ] }) });
2268
2682
  };
@@ -2331,7 +2745,7 @@ var SwapOutputAmountView = ({
2331
2745
  className
2332
2746
  }) => {
2333
2747
  const baseClasses = "text-h2-mobile font-extrabold text-right w-full min-w-[120px] text-text-primary dark:text-text-primary-dark";
2334
- return /* @__PURE__ */ jsx("div", { "data-test-id": "swap-flow-output-amount", className: twMerge(baseClasses, className), children: isLoading ? /* @__PURE__ */ jsx(TextBody_default, { as: "span", variant: "text-small", className: "text-text-disabled dark:text-text-disabled-dark inline-flex items-center", children: loadingElement != null ? loadingElement : searchingQuoteLabel }) : displayOutput });
2748
+ return /* @__PURE__ */ jsx("div", { "data-test-id": "swap-flow-output-amount", className: twMerge(baseClasses, className), children: isLoading ? /* @__PURE__ */ jsx(TextBody, { as: "span", variant: "text-small", className: "text-text-disabled dark:text-text-disabled-dark inline-flex items-center", children: loadingElement != null ? loadingElement : searchingQuoteLabel }) : displayOutput });
2335
2749
  };
2336
2750
  var SwapQuoteErrorsView = ({
2337
2751
  hasQuoteError,
@@ -2408,8 +2822,8 @@ var SwapTokenSelectorView = ({
2408
2822
  children: [
2409
2823
  /* @__PURE__ */ jsx("div", { className: "flex items-center gap-sm flex-1", children: token ? /* @__PURE__ */ jsxs(Fragment, { children: [
2410
2824
  token.logoURI ? /* @__PURE__ */ jsx("img", { src: token.logoURI, alt: token.symbol, className: "w-6 h-6 rounded-full" }) : /* @__PURE__ */ jsx("div", { className: "w-6 h-6 rounded-full bg-bg-raised dark:bg-bg-raised-dark text-text-secondary dark:text-text-secondary-dark flex items-center justify-center text-[10px] font-semibold", children: (token.symbol || "").slice(0, 3).toUpperCase() }),
2411
- /* @__PURE__ */ jsx(TextBody_default, { as: "span", className: "text-text-primary dark:text-text-primary-dark", children: token.symbol })
2412
- ] }) : /* @__PURE__ */ jsx(TextBody_default, { as: "span", className: "text-text-secondary dark:text-text-secondary-dark", children: selectTokenLabel }) }),
2825
+ /* @__PURE__ */ jsx(TextBody, { as: "span", className: "text-text-primary dark:text-text-primary-dark", children: token.symbol })
2826
+ ] }) : /* @__PURE__ */ jsx(TextBody, { as: "span", className: "text-text-secondary dark:text-text-secondary-dark", children: selectTokenLabel }) }),
2413
2827
  /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center w-[18px] h-[18px]", children: /* @__PURE__ */ jsx(HiChevronDown, { className: "w-3 h-3 text-text-tertiary dark:text-text-tertiary-dark" }) })
2414
2828
  ]
2415
2829
  }
@@ -2482,14 +2896,14 @@ var ChooseAStrategyActionsheetView = ({
2482
2896
  /* @__PURE__ */ jsx(Navbar, { children: /* @__PURE__ */ jsx(CloseButton, { onClick: onClose, ariaLabel: closeAriaLabel }) }),
2483
2897
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col flex-1 w-full p-6 overflow-hidden", children: [
2484
2898
  /* @__PURE__ */ jsxs("div", { className: "flex-shrink-0", children: [
2485
- /* @__PURE__ */ jsx(TextHeading_default, { children: resolvedYieldLabel }),
2899
+ /* @__PURE__ */ jsx(TextHeading, { children: resolvedYieldLabel }),
2486
2900
  /* @__PURE__ */ jsx("br", {})
2487
2901
  ] }),
2488
2902
  /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-2 w-full mt-4 overflow-y-auto flex-1 min-h-0", children: /* @__PURE__ */ jsxs(ListItem, { className: "flex-shrink-0", onClick: onStrategyClick, children: [
2489
2903
  /* @__PURE__ */ jsx(ListItemLeftSide, { children: /* @__PURE__ */ jsx("img", { src: logoUrl, alt: assetName, className: "w-10 h-10 rounded-full" }) }),
2490
2904
  /* @__PURE__ */ jsxs(ListItemContent, { className: "gap-1", children: [
2491
- /* @__PURE__ */ jsx(TextBody_default, { children: resolvedYieldLabel }),
2492
- /* @__PURE__ */ jsx(TextBody_default, { variant: "text-small", children: Badge })
2905
+ /* @__PURE__ */ jsx(TextBody, { children: resolvedYieldLabel }),
2906
+ /* @__PURE__ */ jsx(TextBody, { variant: "text-small", children: Badge })
2493
2907
  ] }),
2494
2908
  /* @__PURE__ */ jsx(ListItemRightSide, { children: /* @__PURE__ */ jsxs("div", { className: "flex justify-center items-center gap-1", children: [
2495
2909
  /* @__PURE__ */ jsxs("span", { className: "text-state-success", children: [
@@ -2522,9 +2936,9 @@ var StrategyDetailsView = ({
2522
2936
  /* @__PURE__ */ jsx("div", { "data-test-id": "strategy-details-content", className: "flex-1 min-h-0 overflow-y-auto p-md py-lg pb-24", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-lg min-h-full", children: [
2523
2937
  /* @__PURE__ */ jsxs("div", { className: "inline-flex flex-col items-start gap-sm", children: [
2524
2938
  /* @__PURE__ */ jsx("img", { "data-test-id": "strategy-logo", src: logoUrl, alt: title, className: "w-20 h-20 rounded-full" }),
2525
- /* @__PURE__ */ jsx(TextHeading_default, { variant: "h5", children: title })
2939
+ /* @__PURE__ */ jsx(TextHeading, { variant: "h5", children: title })
2526
2940
  ] }),
2527
- /* @__PURE__ */ jsx(TextBody_default, { variant: "text-small", children: description }),
2941
+ /* @__PURE__ */ jsx(TextBody, { variant: "text-small", children: description }),
2528
2942
  /* @__PURE__ */ jsx(
2529
2943
  SummaryDetails,
2530
2944
  {
@@ -2615,9 +3029,9 @@ var SearchEmptyState = ({
2615
3029
  return /* @__PURE__ */ jsx("div", { className: "w-full py-md bg-bg-default dark:bg-bg-default-dark rounded-lg flex flex-col justify-center items-center gap-sm h-full", children: /* @__PURE__ */ jsxs("div", { className: "w-full flex flex-col justify-center items-center gap-md py-20", children: [
2616
3030
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col justify-center items-center gap-md text-center", children: [
2617
3031
  /* @__PURE__ */ jsx("div", { className: "w-20 h-20 bg-bg-muted dark:bg-bg-muted-dark rounded-full flex justify-center items-center", children: /* @__PURE__ */ jsx(MdOutlineSearchOff, { className: "w-10 h-10 text-text-tertiary dark:text-text-tertiary-dark" }) }),
2618
- /* @__PURE__ */ jsx(TextHeading_default, { variant: "h3", children: title })
3032
+ /* @__PURE__ */ jsx(TextHeading, { variant: "h3", children: title })
2619
3033
  ] }),
2620
- /* @__PURE__ */ jsx("div", { className: "self-stretch text-center", children: /* @__PURE__ */ jsx(TextBody_default, { variant: "text-small", children: description }) })
3034
+ /* @__PURE__ */ jsx("div", { className: "self-stretch text-center", children: /* @__PURE__ */ jsx(TextBody, { variant: "text-small", children: description }) })
2621
3035
  ] }) });
2622
3036
  };
2623
3037
  var CollapsibleSection = ({
@@ -2650,9 +3064,9 @@ var CollapsibleSection = ({
2650
3064
  "aria-expanded": isOpen,
2651
3065
  "aria-label": `${isOpen ? collapseText : expandText} ${title}`,
2652
3066
  children: [
2653
- /* @__PURE__ */ jsx("div", { className: "flex items-center gap-xs", children: /* @__PURE__ */ jsx(TextBody_default, { className: "text-white font-medium", children: title }) }),
3067
+ /* @__PURE__ */ jsx("div", { className: "flex items-center gap-xs", children: /* @__PURE__ */ jsx(TextBody, { className: "text-white font-medium", children: title }) }),
2654
3068
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-xs", children: [
2655
- subtitle && /* @__PURE__ */ jsx(TextBody_default, { variant: "text-small", children: subtitle }),
3069
+ subtitle && /* @__PURE__ */ jsx(TextBody, { variant: "text-small", children: subtitle }),
2656
3070
  /* @__PURE__ */ jsx(
2657
3071
  motion.svg,
2658
3072
  {
@@ -2714,7 +3128,7 @@ var TransactionScreen = ({
2714
3128
  /* @__PURE__ */ jsxs("div", { className: "flex-1 overflow-y-auto px-md py-lg flex flex-col gap-lg", children: [
2715
3129
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-md pt-lg", children: [
2716
3130
  /* @__PURE__ */ jsx(TransactionScreenIcon, { type: iconType, gradient: iconGradient }),
2717
- /* @__PURE__ */ jsx(TextHeading_default, { variant: "h-large", children: title }),
3131
+ /* @__PURE__ */ jsx(TextHeading, { variant: "h-large", children: title }),
2718
3132
  /* @__PURE__ */ jsx("div", { className: "text-text-md-mobile font-poppins text-text-secondary dark:text-text-secondary-dark text-center", style: { maxWidth: "350px" }, children: description })
2719
3133
  ] }),
2720
3134
  children,
@@ -2744,7 +3158,7 @@ var TransactionScreenInvestmentCard = ({
2744
3158
  /* @__PURE__ */ jsxs("div", { className: "text-text-sm-mobile font-poppins text-text-secondary dark:text-text-secondary-dark", children: [
2745
3159
  apyLabel,
2746
3160
  " ",
2747
- /* @__PURE__ */ jsx(TextBody_default, { as: "span", className: "text-state-success", children: apyValue })
3161
+ /* @__PURE__ */ jsx(TextBody, { as: "span", className: "text-state-success", children: apyValue })
2748
3162
  ] })
2749
3163
  ] }),
2750
3164
  /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-sm", children: [
@@ -3318,7 +3732,7 @@ var ChooseAnAssetSwapView = ({
3318
3732
  /* @__PURE__ */ jsx(Navbar, { children: /* @__PURE__ */ jsx(CloseButton, { testId: `swap-token-actionsheet-close-${actionSheetId}`, onClick: onClose }) }),
3319
3733
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col flex-1 w-full p-6 overflow-hidden", children: [
3320
3734
  /* @__PURE__ */ jsxs("div", { className: "flex-shrink-0", children: [
3321
- /* @__PURE__ */ jsx(TextHeading_default, { children: labels.title }),
3735
+ /* @__PURE__ */ jsx(TextHeading, { children: labels.title }),
3322
3736
  /* @__PURE__ */ jsx("br", {}),
3323
3737
  /* @__PURE__ */ jsx(
3324
3738
  SearchInput,
@@ -3334,7 +3748,7 @@ var ChooseAnAssetSwapView = ({
3334
3748
  ] }),
3335
3749
  searchValue && displayedTokens.length === 0 && !isFetching ? /* @__PURE__ */ jsx(SearchEmptyState, { title: labels.searchEmptyTitle, description: labels.searchEmptyDescription }) : /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 w-full mt-4 overflow-y-auto flex-1 min-h-0", children: [
3336
3750
  isFetching && /* @__PURE__ */ jsx("div", { className: "flex justify-center items-center w-full py-4", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
3337
- /* @__PURE__ */ jsx(TextBody_default, { variant: "text-small", className: "text-text-secondary dark:text-text-secondary-dark", children: labels.searchingText }),
3751
+ /* @__PURE__ */ jsx(TextBody, { variant: "text-small", className: "text-text-secondary dark:text-text-secondary-dark", children: labels.searchingText }),
3338
3752
  /* @__PURE__ */ jsx(LoadingDots, {})
3339
3753
  ] }) }),
3340
3754
  displayedTokens.map((token, index) => {
@@ -3353,12 +3767,12 @@ var ChooseAnAssetSwapView = ({
3353
3767
  children: [
3354
3768
  /* @__PURE__ */ jsx(ListItemLeftSide, { children: /* @__PURE__ */ jsx("img", { src: token.logoURI || "", alt: token.name, className: "w-10 h-10 rounded-full" }) }),
3355
3769
  /* @__PURE__ */ jsxs(ListItemContent, { children: [
3356
- /* @__PURE__ */ jsx(TextBody_default, { children: token.name }),
3357
- /* @__PURE__ */ jsx(TextBody_default, { variant: "text-small", children: token.symbol })
3770
+ /* @__PURE__ */ jsx(TextBody, { children: token.name }),
3771
+ /* @__PURE__ */ jsx(TextBody, { variant: "text-small", children: token.symbol })
3358
3772
  ] }),
3359
3773
  /* @__PURE__ */ jsxs(ListItemRightSide, { children: [
3360
- /* @__PURE__ */ jsx(TextBody_default, { children: formattedBalance }),
3361
- /* @__PURE__ */ jsx(TextBody_default, { variant: "text-small", children: formatCurrencyValue(Number(balance == null ? void 0 : balance.amountInUSD) || 0) })
3774
+ /* @__PURE__ */ jsx(TextBody, { children: formattedBalance }),
3775
+ /* @__PURE__ */ jsx(TextBody, { variant: "text-small", children: formatCurrencyValue(Number(balance == null ? void 0 : balance.amountInUSD) || 0) })
3362
3776
  ] })
3363
3777
  ]
3364
3778
  },
@@ -3373,6 +3787,6 @@ var ChooseAnAssetSwapView = ({
3373
3787
  ) });
3374
3788
  };
3375
3789
 
3376
- export { ActionButton, ActionSheet, AddressDisplay, BackgroundContainer, BannerNotification, ChooseAStrategyActionsheetView, ChooseAnAssetSwapView, CloseButton, CollapsibleInfoRow, CollapsibleSection, ConnectWalletList, Currency, DeframeComponentsProvider, DetailsHeader, Currency as Fiat, FlexCol, FlexRow, HighRiskBadge, HistoryDepositDetailsView, HistoryWithdrawDetailsView, InfoLabel, InfoRow, InfoRowIconLabel, InfoRowIconValue, InfoRowWithIcon, InfoValue, Input, Link, ListItem, ListItemContent, ListItemLeftSide, ListItemRightSide, LoadingDots, LowRiskBadge, MediumRiskBadge, Navbar, PercentageButton, PrimaryButton, ProgressIndicator, ScrollableContent, SearchEmptyState, SearchInput, SecondaryButton, SectionCard, Select, SelectContent, SelectItem, SelectTrigger, Skeleton, StepDisplay, StepStatusIcon, StepStatusText, StrategyDetailsView, SummaryDetails, SummaryDetailsCryptoControlV2, SwapAmountInputView, SwapCrossChainProcessingView, SwapNetworkSelectorView, SwapOutputAmountView, SwapProcessingView, SwapQuoteBlockchainCostsView, SwapQuoteErrorsView, SwapQuoteHeaderView, SwapSignatureWarningView, SwapSlippageToleranceButtonsView, SwapSuccessView, SwapTokenSelectorView, SwapTransactionFailedView, Tabs, TabsContent, TabsList, TabsTrigger, TertiaryButton, Text_default as Text, TextAccent_default as TextAccent, TextBody_default as TextBody, TextHeading_default as TextHeading, Title, TokenWithChainBadge, TransactionProcessingDetails, TransactionScreen, TransactionScreenIcon, TransactionScreenInvestmentCard, WalletItem, ConnectWalletList as WalletList, WalletListContainer, cryptocontrolThemeColors, darkThemeColors, defaultThemeColors, themeToCSS };
3790
+ export { ActionButton, ActionSheet, AddressDisplay, BackgroundContainer, BannerNotification, ChooseAStrategyActionsheetView, ChooseAnAssetSwapView, CloseButton, CollapsibleInfoRow, CollapsibleSection, ConnectWalletList, Currency, DeframeComponentsProvider, DetailsHeader, Currency as Fiat, FlexCol, FlexRow, HighRiskBadge, HistoryDepositDetailsView, HistoryWithdrawDetailsView, InfoLabel, InfoRow, InfoRowIconLabel, InfoRowIconValue, InfoRowWithIcon, InfoValue, Input2 as Input, Link, ListItem, ListItemContent, ListItemLeftSide, ListItemRightSide, LoadingDots, LowRiskBadge, MediumRiskBadge, Navbar, PercentageButton, PrimaryButton, ProgressIndicator, ScrollableContent, SearchEmptyState, SearchInput, SecondaryButton, SectionCard, Select, SelectContent, SelectItem, SelectTrigger, Skeleton, StepDisplay, StepStatusIcon, StepStatusText, StrategyDetailsView, SummaryDetails, SummaryDetailsCryptoControlV2, SwapAmountInputView, SwapCrossChainProcessingView, SwapNetworkSelectorView, SwapOutputAmountView, SwapProcessingView, SwapQuoteBlockchainCostsView, SwapQuoteErrorsView, SwapQuoteHeaderView, SwapSignatureWarningView, SwapSlippageToleranceButtonsView, SwapSuccessView, SwapTokenSelectorView, SwapTransactionFailedView, Tabs, TabsContent, TabsList, TabsTrigger, TertiaryButton, Text_default as Text, TextAccent, TextBody, TextHeading, Title, TokenWithChainBadge, TransactionProcessingDetails, TransactionScreen, TransactionScreenIcon, TransactionScreenInvestmentCard, WalletItem, ConnectWalletList as WalletList, WalletListContainer, cryptocontrolThemeColors, darkThemeColors, defaultThemeColors, themeToCSS };
3377
3791
  //# sourceMappingURL=index.mjs.map
3378
3792
  //# sourceMappingURL=index.mjs.map