@thenamespace/ens-components 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/index.css +1792 -1
  2. package/dist/index.css.map +1 -1
  3. package/dist/index.d.ts +7168 -290
  4. package/dist/index.js +1732 -48
  5. package/dist/index.js.map +1 -1
  6. package/dist/styles.js +1 -1
  7. package/dist/types/components/atoms/icon/custom/SearchIcon.d.ts +6 -0
  8. package/dist/types/components/ens-names-register-component/ENSNamesRegisterComponent.d.ts +17 -0
  9. package/dist/types/components/ens-names-register-component/sub-components/CostSummary.d.ts +10 -0
  10. package/dist/types/components/ens-names-register-component/sub-components/Header.d.ts +7 -0
  11. package/dist/types/components/ens-names-register-component/sub-components/NameSearch.d.ts +9 -0
  12. package/dist/types/components/ens-names-register-component/sub-components/ProgressBar.d.ts +5 -0
  13. package/dist/types/components/ens-names-register-component/sub-components/RegistrationForm.d.ts +15 -0
  14. package/dist/types/components/ens-names-register-component/sub-components/RegistrationProcess.d.ts +17 -0
  15. package/dist/types/components/ens-names-register-component/sub-components/StepItem.d.ts +11 -0
  16. package/dist/types/components/ens-names-register-component/sub-components/SuccessScreen.d.ts +13 -0
  17. package/dist/types/components/ens-names-register-component/sub-components/Timer.d.ts +6 -0
  18. package/dist/types/components/ens-offchain-register-modal/EnsOffChainRegisterModal.d.ts +18 -0
  19. package/dist/types/components/ens-offchain-register-modal/sub-components/InitialStep.d.ts +9 -0
  20. package/dist/types/components/ens-offchain-register-modal/sub-components/OffchainRegistrationProcess.d.ts +18 -0
  21. package/dist/types/components/ens-offchain-register-modal/sub-components/OffchainSuccessScreen.d.ts +8 -0
  22. package/dist/types/components/ens-onchain-register-modal/EnsOnChainRegisterModal.d.ts +30 -0
  23. package/dist/types/components/ens-onchain-register-modal/sub-components/ConfirmationStep.d.ts +18 -0
  24. package/dist/types/components/ens-onchain-register-modal/sub-components/InitialStep.d.ts +10 -0
  25. package/dist/types/components/ens-onchain-register-modal/sub-components/OnchainSuccessScreen.d.ts +6 -0
  26. package/dist/types/components/ens-onchain-register-modal/sub-components/RegistrationStep.d.ts +22 -0
  27. package/dist/types/components/index.d.ts +3 -0
  28. package/dist/types/hooks/useWeb3Clients.d.ts +4 -4
  29. package/package.json +2 -1
package/dist/index.js CHANGED
@@ -264,7 +264,7 @@ const createLucideIcon = (iconName, iconNode) => {
264
264
  */
265
265
 
266
266
 
267
- const __iconNode$l = [
267
+ const __iconNode$r = [
268
268
  [
269
269
  "path",
270
270
  {
@@ -273,7 +273,7 @@ const __iconNode$l = [
273
273
  }
274
274
  ]
275
275
  ];
276
- const Book = createLucideIcon("book", __iconNode$l);
276
+ const Book = createLucideIcon("book", __iconNode$r);
277
277
 
278
278
  /**
279
279
  * @license lucide-react v0.542.0 - ISC
@@ -283,7 +283,7 @@ const Book = createLucideIcon("book", __iconNode$l);
283
283
  */
284
284
 
285
285
 
286
- const __iconNode$k = [
286
+ const __iconNode$q = [
287
287
  [
288
288
  "path",
289
289
  {
@@ -294,7 +294,7 @@ const __iconNode$k = [
294
294
  ["path", { d: "m3.3 7 8.7 5 8.7-5", key: "g66t2b" }],
295
295
  ["path", { d: "M12 22V12", key: "d0xqtd" }]
296
296
  ];
297
- const Box = createLucideIcon("box", __iconNode$k);
297
+ const Box = createLucideIcon("box", __iconNode$q);
298
298
 
299
299
  /**
300
300
  * @license lucide-react v0.542.0 - ISC
@@ -304,12 +304,67 @@ const Box = createLucideIcon("box", __iconNode$k);
304
304
  */
305
305
 
306
306
 
307
- const __iconNode$j = [
307
+ const __iconNode$p = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
308
+ const Check = createLucideIcon("check", __iconNode$p);
309
+
310
+ /**
311
+ * @license lucide-react v0.542.0 - ISC
312
+ *
313
+ * This source code is licensed under the ISC license.
314
+ * See the LICENSE file in the root directory of this source tree.
315
+ */
316
+
317
+
318
+ const __iconNode$o = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
319
+ const ChevronDown = createLucideIcon("chevron-down", __iconNode$o);
320
+
321
+ /**
322
+ * @license lucide-react v0.542.0 - ISC
323
+ *
324
+ * This source code is licensed under the ISC license.
325
+ * See the LICENSE file in the root directory of this source tree.
326
+ */
327
+
328
+
329
+ const __iconNode$n = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
330
+ const ChevronLeft = createLucideIcon("chevron-left", __iconNode$n);
331
+
332
+ /**
333
+ * @license lucide-react v0.542.0 - ISC
334
+ *
335
+ * This source code is licensed under the ISC license.
336
+ * See the LICENSE file in the root directory of this source tree.
337
+ */
338
+
339
+
340
+ const __iconNode$m = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
341
+ const ChevronRight = createLucideIcon("chevron-right", __iconNode$m);
342
+
343
+ /**
344
+ * @license lucide-react v0.542.0 - ISC
345
+ *
346
+ * This source code is licensed under the ISC license.
347
+ * See the LICENSE file in the root directory of this source tree.
348
+ */
349
+
350
+
351
+ const __iconNode$l = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
352
+ const ChevronUp = createLucideIcon("chevron-up", __iconNode$l);
353
+
354
+ /**
355
+ * @license lucide-react v0.542.0 - ISC
356
+ *
357
+ * This source code is licensed under the ISC license.
358
+ * See the LICENSE file in the root directory of this source tree.
359
+ */
360
+
361
+
362
+ const __iconNode$k = [
308
363
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
309
364
  ["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
310
365
  ["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
311
366
  ];
312
- const CircleAlert = createLucideIcon("circle-alert", __iconNode$j);
367
+ const CircleAlert = createLucideIcon("circle-alert", __iconNode$k);
313
368
 
314
369
  /**
315
370
  * @license lucide-react v0.542.0 - ISC
@@ -319,11 +374,11 @@ const CircleAlert = createLucideIcon("circle-alert", __iconNode$j);
319
374
  */
320
375
 
321
376
 
322
- const __iconNode$i = [
377
+ const __iconNode$j = [
323
378
  ["path", { d: "M21.801 10A10 10 0 1 1 17 3.335", key: "yps3ct" }],
324
379
  ["path", { d: "m9 11 3 3L22 4", key: "1pflzl" }]
325
380
  ];
326
- const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$i);
381
+ const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$j);
327
382
 
328
383
  /**
329
384
  * @license lucide-react v0.542.0 - ISC
@@ -333,7 +388,7 @@ const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$i);
333
388
  */
334
389
 
335
390
 
336
- const __iconNode$h = [
391
+ const __iconNode$i = [
337
392
  ["path", { d: "M12 2a10 10 0 0 1 7.38 16.75", key: "175t95" }],
338
393
  ["path", { d: "M12 8v8", key: "napkw2" }],
339
394
  ["path", { d: "M16 12H8", key: "1fr5h0" }],
@@ -342,7 +397,7 @@ const __iconNode$h = [
342
397
  ["path", { d: "M4.636 5.235a10 10 0 0 1 .891-.857", key: "1szpfk" }],
343
398
  ["path", { d: "M8.644 21.42a10 10 0 0 0 7.631-.38", key: "9yhvd4" }]
344
399
  ];
345
- const CircleFadingPlus = createLucideIcon("circle-fading-plus", __iconNode$h);
400
+ const CircleFadingPlus = createLucideIcon("circle-fading-plus", __iconNode$i);
346
401
 
347
402
  /**
348
403
  * @license lucide-react v0.542.0 - ISC
@@ -352,12 +407,12 @@ const CircleFadingPlus = createLucideIcon("circle-fading-plus", __iconNode$h);
352
407
  */
353
408
 
354
409
 
355
- const __iconNode$g = [
410
+ const __iconNode$h = [
356
411
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
357
412
  ["circle", { cx: "12", cy: "10", r: "3", key: "ilqhr7" }],
358
413
  ["path", { d: "M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662", key: "154egf" }]
359
414
  ];
360
- const CircleUser = createLucideIcon("circle-user", __iconNode$g);
415
+ const CircleUser = createLucideIcon("circle-user", __iconNode$h);
361
416
 
362
417
  /**
363
418
  * @license lucide-react v0.542.0 - ISC
@@ -367,12 +422,12 @@ const CircleUser = createLucideIcon("circle-user", __iconNode$g);
367
422
  */
368
423
 
369
424
 
370
- const __iconNode$f = [
425
+ const __iconNode$g = [
371
426
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
372
427
  ["path", { d: "m15 9-6 6", key: "1uzhvr" }],
373
428
  ["path", { d: "m9 9 6 6", key: "z0biqf" }]
374
429
  ];
375
- const CircleX = createLucideIcon("circle-x", __iconNode$f);
430
+ const CircleX = createLucideIcon("circle-x", __iconNode$g);
376
431
 
377
432
  /**
378
433
  * @license lucide-react v0.542.0 - ISC
@@ -382,11 +437,11 @@ const CircleX = createLucideIcon("circle-x", __iconNode$f);
382
437
  */
383
438
 
384
439
 
385
- const __iconNode$e = [
440
+ const __iconNode$f = [
386
441
  ["path", { d: "M12 6v6l4 2", key: "mmk7yg" }],
387
442
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
388
443
  ];
389
- const Clock = createLucideIcon("clock", __iconNode$e);
444
+ const Clock = createLucideIcon("clock", __iconNode$f);
390
445
 
391
446
  /**
392
447
  * @license lucide-react v0.542.0 - ISC
@@ -396,11 +451,11 @@ const Clock = createLucideIcon("clock", __iconNode$e);
396
451
  */
397
452
 
398
453
 
399
- const __iconNode$d = [
454
+ const __iconNode$e = [
400
455
  ["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }],
401
456
  ["path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2", key: "zix9uf" }]
402
457
  ];
403
- const Copy = createLucideIcon("copy", __iconNode$d);
458
+ const Copy = createLucideIcon("copy", __iconNode$e);
404
459
 
405
460
  /**
406
461
  * @license lucide-react v0.542.0 - ISC
@@ -410,12 +465,12 @@ const Copy = createLucideIcon("copy", __iconNode$d);
410
465
  */
411
466
 
412
467
 
413
- const __iconNode$c = [
468
+ const __iconNode$d = [
414
469
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
415
470
  ["path", { d: "M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20", key: "13o1zl" }],
416
471
  ["path", { d: "M2 12h20", key: "9i4pu4" }]
417
472
  ];
418
- const Globe = createLucideIcon("globe", __iconNode$c);
473
+ const Globe = createLucideIcon("globe", __iconNode$d);
419
474
 
420
475
  /**
421
476
  * @license lucide-react v0.542.0 - ISC
@@ -425,12 +480,12 @@ const Globe = createLucideIcon("globe", __iconNode$c);
425
480
  */
426
481
 
427
482
 
428
- const __iconNode$b = [
483
+ const __iconNode$c = [
429
484
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
430
485
  ["circle", { cx: "9", cy: "9", r: "2", key: "af1f0g" }],
431
486
  ["path", { d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21", key: "1xmnt7" }]
432
487
  ];
433
- const Image = createLucideIcon("image", __iconNode$b);
488
+ const Image = createLucideIcon("image", __iconNode$c);
434
489
 
435
490
  /**
436
491
  * @license lucide-react v0.542.0 - ISC
@@ -440,12 +495,12 @@ const Image = createLucideIcon("image", __iconNode$b);
440
495
  */
441
496
 
442
497
 
443
- const __iconNode$a = [
498
+ const __iconNode$b = [
444
499
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
445
500
  ["path", { d: "M12 16v-4", key: "1dtifu" }],
446
501
  ["path", { d: "M12 8h.01", key: "e9boi3" }]
447
502
  ];
448
- const Info = createLucideIcon("info", __iconNode$a);
503
+ const Info = createLucideIcon("info", __iconNode$b);
449
504
 
450
505
  /**
451
506
  * @license lucide-react v0.542.0 - ISC
@@ -455,12 +510,12 @@ const Info = createLucideIcon("info", __iconNode$a);
455
510
  */
456
511
 
457
512
 
458
- const __iconNode$9 = [
513
+ const __iconNode$a = [
459
514
  ["path", { d: "m16 17 5-5-5-5", key: "1bji2h" }],
460
515
  ["path", { d: "M21 12H9", key: "dn1m92" }],
461
516
  ["path", { d: "M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4", key: "1uf3rs" }]
462
517
  ];
463
- const LogOut = createLucideIcon("log-out", __iconNode$9);
518
+ const LogOut = createLucideIcon("log-out", __iconNode$a);
464
519
 
465
520
  /**
466
521
  * @license lucide-react v0.542.0 - ISC
@@ -470,11 +525,11 @@ const LogOut = createLucideIcon("log-out", __iconNode$9);
470
525
  */
471
526
 
472
527
 
473
- const __iconNode$8 = [
528
+ const __iconNode$9 = [
474
529
  ["path", { d: "m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7", key: "132q7q" }],
475
530
  ["rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", key: "izxlao" }]
476
531
  ];
477
- const Mail = createLucideIcon("mail", __iconNode$8);
532
+ const Mail = createLucideIcon("mail", __iconNode$9);
478
533
 
479
534
  /**
480
535
  * @license lucide-react v0.542.0 - ISC
@@ -484,7 +539,7 @@ const Mail = createLucideIcon("mail", __iconNode$8);
484
539
  */
485
540
 
486
541
 
487
- const __iconNode$7 = [
542
+ const __iconNode$8 = [
488
543
  [
489
544
  "path",
490
545
  {
@@ -494,7 +549,7 @@ const __iconNode$7 = [
494
549
  ],
495
550
  ["circle", { cx: "12", cy: "10", r: "3", key: "ilqhr7" }]
496
551
  ];
497
- const MapPin = createLucideIcon("map-pin", __iconNode$7);
552
+ const MapPin = createLucideIcon("map-pin", __iconNode$8);
498
553
 
499
554
  /**
500
555
  * @license lucide-react v0.542.0 - ISC
@@ -504,7 +559,7 @@ const MapPin = createLucideIcon("map-pin", __iconNode$7);
504
559
  */
505
560
 
506
561
 
507
- const __iconNode$6 = [
562
+ const __iconNode$7 = [
508
563
  ["path", { d: "M12 17v5", key: "bb1du9" }],
509
564
  [
510
565
  "path",
@@ -514,7 +569,7 @@ const __iconNode$6 = [
514
569
  }
515
570
  ]
516
571
  ];
517
- const Pin = createLucideIcon("pin", __iconNode$6);
572
+ const Pin = createLucideIcon("pin", __iconNode$7);
518
573
 
519
574
  /**
520
575
  * @license lucide-react v0.542.0 - ISC
@@ -524,11 +579,33 @@ const Pin = createLucideIcon("pin", __iconNode$6);
524
579
  */
525
580
 
526
581
 
527
- const __iconNode$5 = [
582
+ const __iconNode$6 = [
528
583
  ["path", { d: "m21 21-4.34-4.34", key: "14j7rj" }],
529
584
  ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }]
530
585
  ];
531
- const Search = createLucideIcon("search", __iconNode$5);
586
+ const Search = createLucideIcon("search", __iconNode$6);
587
+
588
+ /**
589
+ * @license lucide-react v0.542.0 - ISC
590
+ *
591
+ * This source code is licensed under the ISC license.
592
+ * See the LICENSE file in the root directory of this source tree.
593
+ */
594
+
595
+
596
+ const __iconNode$5 = [
597
+ [
598
+ "path",
599
+ {
600
+ d: "M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",
601
+ key: "1s2grr"
602
+ }
603
+ ],
604
+ ["path", { d: "M20 2v4", key: "1rf3ol" }],
605
+ ["path", { d: "M22 4h-4", key: "gwowj6" }],
606
+ ["circle", { cx: "4", cy: "20", r: "2", key: "6kqj1y" }]
607
+ ];
608
+ const Sparkles = createLucideIcon("sparkles", __iconNode$5);
532
609
 
533
610
  /**
534
611
  * @license lucide-react v0.542.0 - ISC
@@ -1175,7 +1252,9 @@ const Tooltip = ({
1175
1252
  const [tooltipPosition, setTooltipPosition] = useState({ top: 0, left: 0 });
1176
1253
  const triggerRef = useRef(null);
1177
1254
  const tooltipRef = useRef(null);
1178
- const timeoutRef = useRef(void 0);
1255
+ const timeoutRef = useRef(
1256
+ void 0
1257
+ );
1179
1258
  const showTooltip = () => {
1180
1259
  if (disabled) return;
1181
1260
  if (timeoutRef.current) {
@@ -12194,7 +12273,10 @@ const ContenthashRecord = ({
12194
12273
  if (e.key === "Backspace" && cursorPosition > 0) {
12195
12274
  e.preventDefault();
12196
12275
  setTimeout(() => {
12197
- input.setSelectionRange(protocolPrefix.length, protocolPrefix.length);
12276
+ input.setSelectionRange(
12277
+ protocolPrefix.length,
12278
+ protocolPrefix.length
12279
+ );
12198
12280
  }, 0);
12199
12281
  } else if (e.key === "Delete" && cursorPosition < protocolPrefix.length) {
12200
12282
  e.preventDefault();
@@ -12203,7 +12285,10 @@ const ContenthashRecord = ({
12203
12285
  },
12204
12286
  error: contenthash.value.length > 0 && !isContenthashValid(contenthash.protocol, contenthash.value),
12205
12287
  prefix: /* @__PURE__ */ jsx(ContenthashIcon, { protocol: contenthash.protocol, size: 18 }),
12206
- value: prefixWithProtocol(contenthash.value, contenthash.protocol),
12288
+ value: prefixWithProtocol(
12289
+ contenthash.value,
12290
+ contenthash.protocol
12291
+ ),
12207
12292
  placeholder: `${contenthash.protocol}://`
12208
12293
  }
12209
12294
  ),
@@ -12251,18 +12336,34 @@ const ImageRecords = ({
12251
12336
  return /* @__PURE__ */ jsx("div", { className: "ns-image-records", children: /* @__PURE__ */ jsxs("div", { style: headerStyles, className: "ns-cover-record-cont", children: [
12252
12337
  /* @__PURE__ */ jsx("div", { className: "ns-top-grad" }),
12253
12338
  /* @__PURE__ */ jsx("div", { className: "ns-bot-grad" }),
12254
- !headerRecordSet && /* @__PURE__ */ jsx("div", { style: { zIndex: 10 }, onClick: (e) => {
12255
- e.stopPropagation();
12256
- if (!headerRecordSet) {
12257
- onHeaderAdded("");
12339
+ !headerRecordSet && /* @__PURE__ */ jsx(
12340
+ "div",
12341
+ {
12342
+ style: { zIndex: 10 },
12343
+ onClick: (e) => {
12344
+ e.stopPropagation();
12345
+ if (!headerRecordSet) {
12346
+ onHeaderAdded("");
12347
+ }
12348
+ },
12349
+ className: "ns-header-handle",
12350
+ children: /* @__PURE__ */ jsx(Icon, { color: "white", name: "rotate-circle" })
12258
12351
  }
12259
- }, className: "ns-header-handle", children: /* @__PURE__ */ jsx(Icon, { color: "white", name: "rotate-circle" }) }),
12260
- /* @__PURE__ */ jsx("div", { style: avatarStyles, className: "ns-avatar-record-cont", children: !avatarRecordSet && /* @__PURE__ */ jsx("div", { style: { zIndex: 10 }, onClick: (e) => {
12261
- e.stopPropagation();
12262
- if (!avatarRecordSet) {
12263
- onAvatarAdded("");
12352
+ ),
12353
+ /* @__PURE__ */ jsx("div", { style: avatarStyles, className: "ns-avatar-record-cont", children: !avatarRecordSet && /* @__PURE__ */ jsx(
12354
+ "div",
12355
+ {
12356
+ style: { zIndex: 10 },
12357
+ onClick: (e) => {
12358
+ e.stopPropagation();
12359
+ if (!avatarRecordSet) {
12360
+ onAvatarAdded("");
12361
+ }
12362
+ },
12363
+ className: "ns-image-handle",
12364
+ children: /* @__PURE__ */ jsx(Icon, { color: "grey", name: "rotate-circle" })
12264
12365
  }
12265
- }, className: "ns-image-handle", children: /* @__PURE__ */ jsx(Icon, { color: "grey", name: "rotate-circle" }) }) })
12366
+ ) })
12266
12367
  ] }) });
12267
12368
  };
12268
12369
 
@@ -12723,6 +12824,1589 @@ const NavbarProfileCard = ({
12723
12824
  ] });
12724
12825
  };
12725
12826
 
12827
+ var img$2 = "data:image/png;base64,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";
12828
+
12829
+ function InitialStep$1({
12830
+ name,
12831
+ onNameChange,
12832
+ onCancel,
12833
+ onRegister,
12834
+ onClose,
12835
+ isNameAvailable,
12836
+ domainSuffix = "eth"
12837
+ }) {
12838
+ const [nameAvailable, setNameAvailable] = useState(
12839
+ isNameAvailable
12840
+ );
12841
+ const getSubnamePart = (inputName) => {
12842
+ if (!inputName) return "";
12843
+ const suffixPattern = new RegExp(
12844
+ `\\.${domainSuffix.replace(".", "\\.")}$`,
12845
+ "i"
12846
+ );
12847
+ return inputName.replace(suffixPattern, "").trim();
12848
+ };
12849
+ useEffect(() => {
12850
+ const subnamePart2 = getSubnamePart(name);
12851
+ if (subnamePart2 && subnamePart2.length > 0) {
12852
+ const isValid = /^[a-z0-9-]+$/i.test(subnamePart2) && subnamePart2.length > 3;
12853
+ const timer = setTimeout(() => {
12854
+ setNameAvailable(isValid);
12855
+ }, 300);
12856
+ return () => clearTimeout(timer);
12857
+ } else {
12858
+ setNameAvailable(void 0);
12859
+ }
12860
+ }, [name]);
12861
+ const available = isNameAvailable !== void 0 ? isNameAvailable : nameAvailable;
12862
+ const showStatus = name && name.length > 0 && available !== void 0;
12863
+ const isUnavailable = showStatus && available === false;
12864
+ const subnamePart = getSubnamePart(name);
12865
+ const handleClear = () => {
12866
+ onNameChange("");
12867
+ };
12868
+ const handleNameInputChange = (e) => {
12869
+ let value = e.target.value;
12870
+ const suffixPattern = new RegExp(
12871
+ `\\.${domainSuffix.replace(".", "\\.")}$`,
12872
+ "i"
12873
+ );
12874
+ value = value.replace(suffixPattern, "");
12875
+ value = value.replace(/[^a-z0-9-]/gi, "");
12876
+ onNameChange(value);
12877
+ };
12878
+ return /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-card", children: [
12879
+ onClose && /* @__PURE__ */ jsx("button", { className: "ns-onchain-register-close-btn", onClick: onClose, children: /* @__PURE__ */ jsx(Icon, { name: "x", size: 20 }) }),
12880
+ /* @__PURE__ */ jsx("div", { className: "ns-onchain-register-banner", children: /* @__PURE__ */ jsx("img", { src: img$2, alt: "ENS Banner" }) }),
12881
+ /* @__PURE__ */ jsx("div", { className: "ns-onchain-register-header", children: /* @__PURE__ */ jsx(Text, { size: "lg", weight: "bold", children: "Get your Web3 Username" }) }),
12882
+ /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-input-row", children: [
12883
+ /* @__PURE__ */ jsx(
12884
+ Icon,
12885
+ {
12886
+ name: "search",
12887
+ size: 16,
12888
+ className: "ns-onchain-register-search-icon"
12889
+ }
12890
+ ),
12891
+ /* @__PURE__ */ jsx(
12892
+ Input,
12893
+ {
12894
+ type: "text",
12895
+ className: "ns-onchain-register-input",
12896
+ placeholder: "Find name",
12897
+ value: subnamePart,
12898
+ onChange: handleNameInputChange
12899
+ }
12900
+ ),
12901
+ subnamePart && available && /* @__PURE__ */ jsx("div", { className: "ns-onchain-register-checkmark available", children: /* @__PURE__ */ jsx(Icon, { name: "check-circle", size: 14, color: "black" }) }),
12902
+ subnamePart && isUnavailable && /* @__PURE__ */ jsx(
12903
+ "button",
12904
+ {
12905
+ className: "ns-onchain-register-clear-btn",
12906
+ onClick: handleClear,
12907
+ type: "button",
12908
+ children: /* @__PURE__ */ jsx(Icon, { name: "x", size: 14, color: "#ffffff" })
12909
+ }
12910
+ ),
12911
+ /* @__PURE__ */ jsxs(Text, { className: "ns-onchain-register-domain-suffix", children: [
12912
+ ".",
12913
+ domainSuffix
12914
+ ] })
12915
+ ] }),
12916
+ isUnavailable && /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-unavailable-message", children: [
12917
+ /* @__PURE__ */ jsx(Icon, { name: "alert-triangle", size: 14 }),
12918
+ /* @__PURE__ */ jsx(Text, { size: "sm", className: "ns-onchain-register-error-text", children: "This name is unavailable. Please choose a different one." })
12919
+ ] }),
12920
+ /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-actions", children: [
12921
+ /* @__PURE__ */ jsx(Button, { className: "cancel", onClick: onCancel, children: "Cancel" }),
12922
+ /* @__PURE__ */ jsx(
12923
+ Button,
12924
+ {
12925
+ className: "primary",
12926
+ onClick: () => {
12927
+ const fullName = subnamePart ? `${subnamePart}.${domainSuffix}` : "";
12928
+ if (fullName) {
12929
+ onNameChange(fullName);
12930
+ }
12931
+ onRegister();
12932
+ },
12933
+ disabled: !subnamePart || !!isUnavailable,
12934
+ children: available ? "Next" : "Register"
12935
+ }
12936
+ )
12937
+ ] }),
12938
+ /* @__PURE__ */ jsx("div", { className: "ns-onchain-register-footer", children: /* @__PURE__ */ jsx(Text, { size: "sm", color: "grey", children: "Powered by Namespace" }) })
12939
+ ] });
12940
+ }
12941
+
12942
+ var img$1 = "data:image/png;base64,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";
12943
+
12944
+ function RegistrationStep({
12945
+ name,
12946
+ domainSuffix = "eth",
12947
+ owner = "0x035eB...24117D3",
12948
+ duration: initialDuration = 1,
12949
+ registrationFee = "0.004",
12950
+ networkFee = "0.0010",
12951
+ totalCost = "0.0014",
12952
+ useAsPrimary: initialUseAsPrimary = false,
12953
+ profileComplete = false,
12954
+ profileImageUrl,
12955
+ onBack,
12956
+ onCancel,
12957
+ onRegister,
12958
+ onNext,
12959
+ onClose,
12960
+ onOwnerChange,
12961
+ onDurationChange,
12962
+ onUseAsPrimaryChange,
12963
+ onCompleteProfile
12964
+ }) {
12965
+ const [duration, setDuration] = useState(initialDuration);
12966
+ const [useAsPrimary, setUseAsPrimary] = useState(initialUseAsPrimary);
12967
+ const [ownerAddress, setOwnerAddress] = useState(owner);
12968
+ const [isOwnerExpanded, setIsOwnerExpanded] = useState(true);
12969
+ useEffect(() => {
12970
+ setOwnerAddress(owner);
12971
+ }, [owner]);
12972
+ const handleDurationDecrease = () => {
12973
+ if (duration > 1) {
12974
+ const newDuration = duration - 1;
12975
+ setDuration(newDuration);
12976
+ onDurationChange?.(newDuration);
12977
+ }
12978
+ };
12979
+ const handleDurationIncrease = () => {
12980
+ const newDuration = duration + 1;
12981
+ setDuration(newDuration);
12982
+ onDurationChange?.(newDuration);
12983
+ };
12984
+ const handleTogglePrimary = () => {
12985
+ const newValue = !useAsPrimary;
12986
+ setUseAsPrimary(newValue);
12987
+ onUseAsPrimaryChange?.(newValue);
12988
+ };
12989
+ const handleOwnerChange = (value) => {
12990
+ setOwnerAddress(value);
12991
+ onOwnerChange?.(value);
12992
+ };
12993
+ const fullName = name.includes(".") ? name : `${name}.${domainSuffix}`;
12994
+ const isSubname = domainSuffix.includes(".");
12995
+ return /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-card", children: [
12996
+ onClose && /* @__PURE__ */ jsx("button", { className: "ns-onchain-register-close-btn", onClick: onClose, children: /* @__PURE__ */ jsx(Icon, { name: "x", size: 20 }) }),
12997
+ /* @__PURE__ */ jsx("div", { className: "ns-onchain-register-mint-title", children: /* @__PURE__ */ jsx(Text, { size: "sm", color: "grey", children: "You are about to mint" }) }),
12998
+ /* @__PURE__ */ jsx("div", { className: "ns-onchain-register-name-display", children: /* @__PURE__ */ jsx(Text, { size: "xl", weight: "bold", children: fullName }) }),
12999
+ /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-owner-section", children: [
13000
+ /* @__PURE__ */ jsxs(
13001
+ "div",
13002
+ {
13003
+ className: "ns-onchain-register-owner-header",
13004
+ onClick: () => setIsOwnerExpanded(!isOwnerExpanded),
13005
+ children: [
13006
+ /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-owner-left", children: [
13007
+ /* @__PURE__ */ jsx(Icon, { name: "person", size: 16 }),
13008
+ /* @__PURE__ */ jsx(Text, { size: "sm", weight: "medium", children: "Owner" })
13009
+ ] }),
13010
+ /* @__PURE__ */ jsx("div", { className: "ns-onchain-register-owner-chevron", children: isOwnerExpanded ? /* @__PURE__ */ jsx(ChevronUp, { size: 16 }) : /* @__PURE__ */ jsx(ChevronDown, { size: 16 }) })
13011
+ ]
13012
+ }
13013
+ ),
13014
+ isOwnerExpanded && /* @__PURE__ */ jsx("div", { className: "ns-onchain-register-owner-content", children: /* @__PURE__ */ jsx(
13015
+ Input,
13016
+ {
13017
+ type: "text",
13018
+ placeholder: "Enter owner address (0x...)",
13019
+ value: ownerAddress,
13020
+ onChange: (e) => handleOwnerChange(e.target.value),
13021
+ size: "md",
13022
+ className: "ns-onchain-register-owner-input"
13023
+ }
13024
+ ) })
13025
+ ] }),
13026
+ /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-duration-section", children: [
13027
+ /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-duration-controls", children: [
13028
+ /* @__PURE__ */ jsx(
13029
+ "button",
13030
+ {
13031
+ className: "ns-onchain-register-duration-btn",
13032
+ onClick: handleDurationDecrease,
13033
+ disabled: duration <= 1,
13034
+ children: /* @__PURE__ */ jsx("span", { style: { fontSize: "20px", lineHeight: "1" }, children: "\u2212" })
13035
+ }
13036
+ ),
13037
+ /* @__PURE__ */ jsxs(Text, { size: "md", weight: "medium", children: [
13038
+ duration,
13039
+ " year",
13040
+ duration !== 1 ? "s" : ""
13041
+ ] }),
13042
+ /* @__PURE__ */ jsx(
13043
+ "button",
13044
+ {
13045
+ className: "ns-onchain-register-duration-btn",
13046
+ onClick: handleDurationIncrease,
13047
+ children: /* @__PURE__ */ jsx("span", { style: { fontSize: "20px", lineHeight: "1" }, children: "+" })
13048
+ }
13049
+ )
13050
+ ] }),
13051
+ /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-cost-breakdown", children: [
13052
+ /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-cost-row", children: [
13053
+ /* @__PURE__ */ jsxs(Text, { size: "sm", color: "grey", children: [
13054
+ duration,
13055
+ " year registration"
13056
+ ] }),
13057
+ /* @__PURE__ */ jsxs(Text, { size: "sm", weight: "medium", children: [
13058
+ registrationFee,
13059
+ " ETH"
13060
+ ] })
13061
+ ] }),
13062
+ /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-cost-row", children: [
13063
+ /* @__PURE__ */ jsx(Text, { size: "sm", color: "grey", children: "Est. network fee" }),
13064
+ /* @__PURE__ */ jsxs(Text, { size: "sm", weight: "medium", children: [
13065
+ networkFee,
13066
+ " ETH"
13067
+ ] })
13068
+ ] }),
13069
+ /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-cost-row total", children: [
13070
+ /* @__PURE__ */ jsx(Text, { size: "md", weight: "bold", children: "Total" }),
13071
+ /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-total-cost", children: [
13072
+ /* @__PURE__ */ jsx(Text, { size: "md", weight: "bold", children: totalCost }),
13073
+ /* @__PURE__ */ jsx("span", { style: { fontSize: "14px", color: "#3b82f6" }, children: "\u039E" }),
13074
+ /* @__PURE__ */ jsx(Text, { size: "sm", weight: "medium", children: "ETH" })
13075
+ ] })
13076
+ ] })
13077
+ ] })
13078
+ ] }),
13079
+ profileComplete ? /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-profile-completed", children: [
13080
+ /* @__PURE__ */ jsx("div", { className: "ns-onchain-register-profile-completed-avatar", children: profileImageUrl ? /* @__PURE__ */ jsx("img", { src: profileImageUrl, alt: "Profile" }) : /* @__PURE__ */ jsx(Icon, { name: "person", size: 24 }) }),
13081
+ /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-profile-completed-text", children: [
13082
+ /* @__PURE__ */ jsx(Text, { size: "md", weight: "bold", children: "Profile completed" }),
13083
+ /* @__PURE__ */ jsx(Text, { size: "sm", color: "grey", children: "You're all set! Finish your registration." })
13084
+ ] }),
13085
+ /* @__PURE__ */ jsx("div", { className: "ns-onchain-register-profile-completed-checkmark", children: /* @__PURE__ */ jsx(Icon, { name: "check-circle", size: 24, color: "#ffffff" }) })
13086
+ ] }) : onCompleteProfile && /* @__PURE__ */ jsxs(
13087
+ "div",
13088
+ {
13089
+ className: "ns-onchain-register-profile-card",
13090
+ onClick: onCompleteProfile,
13091
+ children: [
13092
+ /* @__PURE__ */ jsx("div", { className: "ns-onchain-register-profile-icon", children: /* @__PURE__ */ jsx("img", { src: img$1, alt: "Profile Icon" }) }),
13093
+ /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-profile-text", children: [
13094
+ /* @__PURE__ */ jsx(Text, { size: "md", weight: "bold", children: "Complete your profile" }),
13095
+ /* @__PURE__ */ jsx(Text, { size: "sm", color: "grey", children: "Make your ENS more discoverable" })
13096
+ ] }),
13097
+ /* @__PURE__ */ jsx("button", { className: "ns-onchain-register-profile-arrow", children: /* @__PURE__ */ jsx(ChevronRight, { size: 20 }) })
13098
+ ]
13099
+ }
13100
+ ),
13101
+ /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-toggle", children: [
13102
+ /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-toggle-text", children: [
13103
+ /* @__PURE__ */ jsx(Text, { size: "md", weight: "bold", children: "Use as primary name" }),
13104
+ /* @__PURE__ */ jsxs("div", { style: { marginTop: "8px" }, children: [
13105
+ /* @__PURE__ */ jsxs(Text, { size: "sm", color: "grey", children: [
13106
+ "This links your address to this name, allowing dApps to display it as your profile when connected to them. You can only have",
13107
+ " "
13108
+ ] }),
13109
+ /* @__PURE__ */ jsx(Text, { size: "sm", color: "grey", weight: "bold", children: "one primary name per address" }),
13110
+ /* @__PURE__ */ jsx(Text, { size: "sm", color: "grey", children: "." })
13111
+ ] })
13112
+ ] }),
13113
+ /* @__PURE__ */ jsxs("div", { className: "toggle-switch", children: [
13114
+ /* @__PURE__ */ jsx(
13115
+ "input",
13116
+ {
13117
+ type: "checkbox",
13118
+ id: "use-as-primary",
13119
+ checked: useAsPrimary,
13120
+ onChange: handleTogglePrimary
13121
+ }
13122
+ ),
13123
+ /* @__PURE__ */ jsx("label", { htmlFor: "use-as-primary" })
13124
+ ] })
13125
+ ] }),
13126
+ /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-actions", children: [
13127
+ /* @__PURE__ */ jsx(Button, { className: "cancel", onClick: onCancel || onBack, children: "Cancel" }),
13128
+ /* @__PURE__ */ jsx(
13129
+ Button,
13130
+ {
13131
+ className: "primary",
13132
+ onClick: isSubname && onNext ? onNext : onRegister,
13133
+ children: isSubname ? "Next" : "Register"
13134
+ }
13135
+ )
13136
+ ] })
13137
+ ] });
13138
+ }
13139
+
13140
+ function ConfirmationStep({
13141
+ name,
13142
+ domainSuffix = "eth",
13143
+ owner = "0x035eB...24117D3",
13144
+ duration = 1,
13145
+ registrationFee = "0.004",
13146
+ networkFee = "0.0010",
13147
+ totalCost = "0.0014",
13148
+ useAsPrimary = false,
13149
+ profileComplete = true,
13150
+ profileImageUrl = "https://gratisography.com/wp-content/uploads/2024/11/gratisography-augmented-reality-800x525.jpg",
13151
+ onBack,
13152
+ onCancel,
13153
+ onRegister,
13154
+ onClose,
13155
+ onOwnerChange
13156
+ }) {
13157
+ const [isOwnerExpanded, setIsOwnerExpanded] = useState(true);
13158
+ const fullName = name.includes(".") ? name : `${name}.${domainSuffix}`;
13159
+ return /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-card", children: [
13160
+ onClose && /* @__PURE__ */ jsx("button", { className: "ns-onchain-register-close-btn", onClick: onClose, children: /* @__PURE__ */ jsx(Icon, { name: "x", size: 20 }) }),
13161
+ /* @__PURE__ */ jsx("div", { className: "ns-onchain-register-mint-title", children: /* @__PURE__ */ jsx(Text, { size: "sm", color: "grey", children: "You are about to mint" }) }),
13162
+ /* @__PURE__ */ jsx("div", { className: "ns-onchain-register-name-display", children: /* @__PURE__ */ jsx(Text, { size: "xl", weight: "bold", children: fullName }) }),
13163
+ profileComplete && /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-profile-completed", children: [
13164
+ /* @__PURE__ */ jsx("div", { className: "ns-onchain-register-profile-completed-avatar", children: profileImageUrl ? /* @__PURE__ */ jsx("img", { src: profileImageUrl, alt: "Profile" }) : /* @__PURE__ */ jsx(Icon, { name: "person", size: 24 }) }),
13165
+ /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-profile-completed-text", children: [
13166
+ /* @__PURE__ */ jsx(Text, { size: "md", weight: "bold", children: "Profile completed" }),
13167
+ /* @__PURE__ */ jsx(Text, { size: "sm", color: "grey", children: "You're all set! Finish your registration." })
13168
+ ] }),
13169
+ /* @__PURE__ */ jsx("div", { className: "ns-onchain-register-profile-completed-checkmark", children: /* @__PURE__ */ jsx(Icon, { name: "check-circle", size: 24, color: "#ffffff" }) })
13170
+ ] }),
13171
+ /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-owner-section", children: [
13172
+ /* @__PURE__ */ jsxs(
13173
+ "div",
13174
+ {
13175
+ className: "ns-onchain-register-owner-header",
13176
+ onClick: () => setIsOwnerExpanded(!isOwnerExpanded),
13177
+ children: [
13178
+ /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-owner-left", children: [
13179
+ /* @__PURE__ */ jsx(Icon, { name: "person", size: 16 }),
13180
+ /* @__PURE__ */ jsx(Text, { size: "sm", weight: "medium", children: "Owner" })
13181
+ ] }),
13182
+ /* @__PURE__ */ jsx("div", { className: "ns-onchain-register-owner-chevron", children: isOwnerExpanded ? /* @__PURE__ */ jsx(ChevronUp, { size: 16 }) : /* @__PURE__ */ jsx(ChevronDown, { size: 16 }) })
13183
+ ]
13184
+ }
13185
+ ),
13186
+ isOwnerExpanded && /* @__PURE__ */ jsx("div", { className: "ns-onchain-register-owner-content", children: /* @__PURE__ */ jsx(
13187
+ Input,
13188
+ {
13189
+ type: "text",
13190
+ placeholder: "Enter owner address (0x...)",
13191
+ value: owner,
13192
+ onChange: (e) => onOwnerChange?.(e.target.value),
13193
+ size: "md",
13194
+ className: "ns-onchain-register-owner-input"
13195
+ }
13196
+ ) })
13197
+ ] }),
13198
+ /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-duration-section", children: [
13199
+ /* @__PURE__ */ jsx("div", { className: "ns-onchain-register-duration-controls", children: /* @__PURE__ */ jsxs(Text, { size: "md", weight: "medium", children: [
13200
+ duration,
13201
+ " year",
13202
+ duration !== 1 ? "s" : ""
13203
+ ] }) }),
13204
+ /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-cost-breakdown", children: [
13205
+ /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-cost-row", children: [
13206
+ /* @__PURE__ */ jsxs(Text, { size: "sm", color: "grey", children: [
13207
+ duration,
13208
+ " year registration"
13209
+ ] }),
13210
+ /* @__PURE__ */ jsxs(Text, { size: "sm", weight: "medium", children: [
13211
+ registrationFee,
13212
+ " ETH"
13213
+ ] })
13214
+ ] }),
13215
+ /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-cost-row", children: [
13216
+ /* @__PURE__ */ jsx(Text, { size: "sm", color: "grey", children: "Est. network fee" }),
13217
+ /* @__PURE__ */ jsxs(Text, { size: "sm", weight: "medium", children: [
13218
+ networkFee,
13219
+ " ETH"
13220
+ ] })
13221
+ ] }),
13222
+ /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-cost-row total", children: [
13223
+ /* @__PURE__ */ jsx(Text, { size: "md", weight: "bold", children: "Total" }),
13224
+ /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-total-cost", children: [
13225
+ /* @__PURE__ */ jsx(Text, { size: "md", weight: "bold", children: totalCost }),
13226
+ /* @__PURE__ */ jsx("span", { style: { fontSize: "14px", color: "#3b82f6" }, children: "\u039E" }),
13227
+ /* @__PURE__ */ jsx(Text, { size: "sm", weight: "medium", children: "ETH" })
13228
+ ] })
13229
+ ] })
13230
+ ] })
13231
+ ] }),
13232
+ /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-actions", children: [
13233
+ /* @__PURE__ */ jsx(Button, { className: "cancel", onClick: onCancel || onBack, children: "Cancel" }),
13234
+ /* @__PURE__ */ jsx(Button, { className: "primary", onClick: onRegister, children: "Register" })
13235
+ ] })
13236
+ ] });
13237
+ }
13238
+
13239
+ var img = "data:image/png;base64,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";
13240
+
13241
+ function OnchainSuccessScreen({
13242
+ name,
13243
+ onClose,
13244
+ onFinish
13245
+ }) {
13246
+ return /* @__PURE__ */ jsx("div", { className: "ns-onchain-register-container", children: /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-card ns-onchain-register-success", children: [
13247
+ onClose && /* @__PURE__ */ jsx("button", { className: "ns-onchain-register-close-btn", onClick: onClose, children: /* @__PURE__ */ jsx(Icon, { name: "x", size: 20 }) }),
13248
+ /* @__PURE__ */ jsx("div", { className: "ns-onchain-register-finish-banner", children: /* @__PURE__ */ jsx("img", { src: img, alt: "Success" }) }),
13249
+ /* @__PURE__ */ jsxs("div", { className: "ns-onchain-register-success-title-section", children: [
13250
+ /* @__PURE__ */ jsx(
13251
+ Text,
13252
+ {
13253
+ size: "xl",
13254
+ weight: "bold",
13255
+ className: "ns-onchain-register-success-message",
13256
+ children: "ENS name registered successfully"
13257
+ }
13258
+ ),
13259
+ /* @__PURE__ */ jsx(
13260
+ Text,
13261
+ {
13262
+ size: "md",
13263
+ color: "grey",
13264
+ className: "ns-onchain-register-success-subtitle",
13265
+ children: "Your ENS name is now active and ready to use"
13266
+ }
13267
+ )
13268
+ ] }),
13269
+ /* @__PURE__ */ jsx("div", { className: "ns-onchain-register-actions", children: /* @__PURE__ */ jsx(Button, { className: "primary finish-btn", onClick: onFinish || onClose, children: "Finish" }) })
13270
+ ] }) });
13271
+ }
13272
+
13273
+ function EnsOnChainRegisterModal({
13274
+ step: initialStep = 0,
13275
+ name: initialName = "",
13276
+ profileComplete = false,
13277
+ domainSuffix = "eth",
13278
+ owner: initialOwner = "0x035eB...24117D3",
13279
+ duration: initialDuration = 1,
13280
+ registrationFee = "0.004",
13281
+ networkFee = "0.0010",
13282
+ totalCost = "0.0014",
13283
+ useAsPrimary: initialUseAsPrimary = false,
13284
+ profileImageUrl,
13285
+ onStepChange,
13286
+ onNameChange,
13287
+ onProfileCompleteChange,
13288
+ onOwnerChange,
13289
+ onDurationChange,
13290
+ onUseAsPrimaryChange,
13291
+ onRegister,
13292
+ onCancel,
13293
+ onClose,
13294
+ onCompleteProfile,
13295
+ onOpenWallet,
13296
+ onCompleteRegistration,
13297
+ onRegisterAnother,
13298
+ onViewName,
13299
+ onFinish
13300
+ }) {
13301
+ const [currentStep, setCurrentStep] = useState(initialStep);
13302
+ const [ensName, setEnsName] = useState(initialName);
13303
+ const [owner, setOwner] = useState(initialOwner);
13304
+ const [duration, setDuration] = useState(initialDuration);
13305
+ const [useAsPrimary, setUseAsPrimary] = useState(initialUseAsPrimary);
13306
+ const handleNameChange = (value) => {
13307
+ setEnsName(value);
13308
+ onNameChange?.(value);
13309
+ };
13310
+ const handleOwnerChange = (value) => {
13311
+ setOwner(value);
13312
+ onOwnerChange?.(value);
13313
+ };
13314
+ const handleDurationChange = (value) => {
13315
+ setDuration(value);
13316
+ onDurationChange?.(value);
13317
+ };
13318
+ const handleUseAsPrimaryChange = (value) => {
13319
+ setUseAsPrimary(value);
13320
+ onUseAsPrimaryChange?.(value);
13321
+ };
13322
+ const handleRegister = () => {
13323
+ setCurrentStep(1);
13324
+ onStepChange?.(1);
13325
+ onRegister?.();
13326
+ };
13327
+ const handleFinalRegister = () => {
13328
+ setCurrentStep(3);
13329
+ onStepChange?.(3);
13330
+ onCompleteRegistration?.();
13331
+ };
13332
+ const handleFinish = () => {
13333
+ onFinish?.();
13334
+ onClose?.();
13335
+ };
13336
+ const handleNext = () => {
13337
+ setCurrentStep(2);
13338
+ onStepChange?.(2);
13339
+ };
13340
+ const handleBack = () => {
13341
+ if (currentStep === 2) {
13342
+ setCurrentStep(1);
13343
+ onStepChange?.(1);
13344
+ } else {
13345
+ setCurrentStep(0);
13346
+ onStepChange?.(0);
13347
+ }
13348
+ };
13349
+ const handleCancel = () => {
13350
+ onCancel?.();
13351
+ };
13352
+ if (currentStep === 0) {
13353
+ return /* @__PURE__ */ jsx("div", { className: "ns-onchain-register-container", children: /* @__PURE__ */ jsx(
13354
+ InitialStep$1,
13355
+ {
13356
+ name: ensName,
13357
+ onNameChange: handleNameChange,
13358
+ onCancel: handleCancel,
13359
+ onRegister: handleRegister,
13360
+ onClose,
13361
+ domainSuffix
13362
+ }
13363
+ ) });
13364
+ }
13365
+ if (currentStep === 1) {
13366
+ return /* @__PURE__ */ jsx("div", { className: "ns-onchain-register-container", children: /* @__PURE__ */ jsx(
13367
+ RegistrationStep,
13368
+ {
13369
+ name: ensName,
13370
+ domainSuffix,
13371
+ owner,
13372
+ duration,
13373
+ registrationFee,
13374
+ networkFee,
13375
+ totalCost,
13376
+ useAsPrimary,
13377
+ profileComplete,
13378
+ profileImageUrl,
13379
+ onBack: handleBack,
13380
+ onCancel: handleCancel,
13381
+ onRegister,
13382
+ onNext: handleNext,
13383
+ onClose,
13384
+ onOwnerChange: handleOwnerChange,
13385
+ onDurationChange: handleDurationChange,
13386
+ onUseAsPrimaryChange: handleUseAsPrimaryChange,
13387
+ onCompleteProfile
13388
+ }
13389
+ ) });
13390
+ }
13391
+ if (currentStep === 2) {
13392
+ return /* @__PURE__ */ jsx("div", { className: "ns-onchain-register-container", children: /* @__PURE__ */ jsx(
13393
+ ConfirmationStep,
13394
+ {
13395
+ name: ensName,
13396
+ domainSuffix,
13397
+ owner,
13398
+ duration,
13399
+ registrationFee,
13400
+ networkFee,
13401
+ totalCost,
13402
+ useAsPrimary,
13403
+ profileComplete,
13404
+ profileImageUrl,
13405
+ onBack: handleBack,
13406
+ onCancel: handleCancel,
13407
+ onRegister: handleFinalRegister,
13408
+ onClose,
13409
+ onOwnerChange: handleOwnerChange
13410
+ }
13411
+ ) });
13412
+ }
13413
+ if (currentStep === 3) {
13414
+ return /* @__PURE__ */ jsx("div", { className: "ns-onchain-register-container", children: /* @__PURE__ */ jsx(
13415
+ OnchainSuccessScreen,
13416
+ {
13417
+ name: ensName,
13418
+ onClose,
13419
+ onFinish: handleFinish
13420
+ }
13421
+ ) });
13422
+ }
13423
+ return /* @__PURE__ */ jsx("div", { className: "ns-onchain-register-container", children: /* @__PURE__ */ jsx(
13424
+ InitialStep$1,
13425
+ {
13426
+ name: ensName,
13427
+ onNameChange: handleNameChange,
13428
+ onCancel: handleCancel,
13429
+ onRegister: handleRegister,
13430
+ onClose,
13431
+ domainSuffix
13432
+ }
13433
+ ) });
13434
+ }
13435
+
13436
+ function InitialStep({
13437
+ name,
13438
+ onNameChange,
13439
+ onCancel,
13440
+ onRegister,
13441
+ onClose,
13442
+ isNameAvailable
13443
+ }) {
13444
+ const [nameAvailable, setNameAvailable] = useState(
13445
+ isNameAvailable
13446
+ );
13447
+ const domainSuffix = "particle.eth";
13448
+ const getSubnamePart = (inputName) => {
13449
+ if (!inputName) return "";
13450
+ const suffixPattern = new RegExp(
13451
+ `\\.${domainSuffix.replace(".", "\\.")}$`,
13452
+ "i"
13453
+ );
13454
+ return inputName.replace(suffixPattern, "").trim();
13455
+ };
13456
+ useEffect(() => {
13457
+ const subnamePart2 = getSubnamePart(name);
13458
+ if (subnamePart2 && subnamePart2.length > 0) {
13459
+ const isValid = /^[a-z0-9-]+$/i.test(subnamePart2) && subnamePart2.length > 3;
13460
+ const timer = setTimeout(() => {
13461
+ setNameAvailable(isValid);
13462
+ }, 300);
13463
+ return () => clearTimeout(timer);
13464
+ } else {
13465
+ setNameAvailable(void 0);
13466
+ }
13467
+ }, [name]);
13468
+ const available = isNameAvailable !== void 0 ? isNameAvailable : nameAvailable;
13469
+ const showStatus = name && name.length > 0 && available !== void 0;
13470
+ const isUnavailable = showStatus && available === false;
13471
+ const subnamePart = getSubnamePart(name);
13472
+ const handleClear = () => {
13473
+ onNameChange("");
13474
+ };
13475
+ const handleNameInputChange = (e) => {
13476
+ let value = e.target.value;
13477
+ const suffixPattern = new RegExp(
13478
+ `\\.${domainSuffix.replace(".", "\\.")}$`,
13479
+ "i"
13480
+ );
13481
+ value = value.replace(suffixPattern, "");
13482
+ value = value.replace(/[^a-z0-9-]/gi, "");
13483
+ onNameChange(value);
13484
+ };
13485
+ return /* @__PURE__ */ jsxs("div", { className: "ns-offchain-register-card", children: [
13486
+ onClose && /* @__PURE__ */ jsx("button", { className: "ns-offchain-register-close-btn", onClick: onClose, children: /* @__PURE__ */ jsx(Icon, { name: "x", size: 20 }) }),
13487
+ /* @__PURE__ */ jsx("div", { className: "ns-offchain-register-banner", children: /* @__PURE__ */ jsx("img", { src: img$2, alt: "ENS Banner" }) }),
13488
+ /* @__PURE__ */ jsx("div", { className: "ns-offchain-register-header", children: /* @__PURE__ */ jsx(Text, { size: "lg", weight: "bold", children: "Get your Web3 Username" }) }),
13489
+ /* @__PURE__ */ jsxs("div", { className: "ns-offchain-register-input-row", children: [
13490
+ /* @__PURE__ */ jsx(
13491
+ Icon,
13492
+ {
13493
+ name: "search",
13494
+ size: 16,
13495
+ className: "ns-offchain-register-search-icon"
13496
+ }
13497
+ ),
13498
+ /* @__PURE__ */ jsx(
13499
+ Input,
13500
+ {
13501
+ type: "text",
13502
+ className: "ns-offchain-register-input",
13503
+ placeholder: "Find name",
13504
+ value: subnamePart,
13505
+ onChange: handleNameInputChange
13506
+ }
13507
+ ),
13508
+ subnamePart && available && /* @__PURE__ */ jsx("div", { className: "ns-offchain-register-checkmark available", children: /* @__PURE__ */ jsx(Icon, { name: "check-circle", size: 14, color: "black" }) }),
13509
+ subnamePart && isUnavailable && /* @__PURE__ */ jsx(
13510
+ "button",
13511
+ {
13512
+ className: "ns-offchain-register-clear-btn",
13513
+ onClick: handleClear,
13514
+ type: "button",
13515
+ children: /* @__PURE__ */ jsx(Icon, { name: "x", size: 14, color: "#ffffff" })
13516
+ }
13517
+ ),
13518
+ /* @__PURE__ */ jsxs(Text, { className: "ns-offchain-register-domain-suffix", children: [
13519
+ ".",
13520
+ domainSuffix
13521
+ ] })
13522
+ ] }),
13523
+ isUnavailable && /* @__PURE__ */ jsxs("div", { className: "ns-offchain-register-unavailable-message", children: [
13524
+ /* @__PURE__ */ jsx(Icon, { name: "alert-triangle", size: 14 }),
13525
+ /* @__PURE__ */ jsx(Text, { size: "sm", className: "ns-offchain-register-error-text", children: "This name is unavailable. Please choose a different one." })
13526
+ ] }),
13527
+ /* @__PURE__ */ jsxs("div", { className: "ns-offchain-register-actions", children: [
13528
+ /* @__PURE__ */ jsx(Button, { className: "cancel", onClick: onCancel, children: "Cancel" }),
13529
+ /* @__PURE__ */ jsx(
13530
+ Button,
13531
+ {
13532
+ className: "primary",
13533
+ onClick: () => {
13534
+ const fullName = subnamePart ? `${subnamePart}.${domainSuffix}` : "";
13535
+ if (fullName) {
13536
+ onNameChange(fullName);
13537
+ }
13538
+ onRegister();
13539
+ },
13540
+ disabled: !subnamePart || !!isUnavailable,
13541
+ children: subnamePart && available ? "Next" : "Register"
13542
+ }
13543
+ )
13544
+ ] }),
13545
+ /* @__PURE__ */ jsx("div", { className: "ns-offchain-register-footer", children: /* @__PURE__ */ jsx(Text, { size: "sm", color: "grey", children: "Powered by Namespace" }) })
13546
+ ] });
13547
+ }
13548
+
13549
+ function OffchainSuccessScreen({
13550
+ name,
13551
+ onClose,
13552
+ onSetProfile,
13553
+ onFinish
13554
+ }) {
13555
+ return /* @__PURE__ */ jsx("div", { className: "ns-offchain-register-container", children: /* @__PURE__ */ jsxs("div", { className: "ns-offchain-register-card ns-offchain-register-success", children: [
13556
+ onClose && /* @__PURE__ */ jsx("button", { className: "ns-offchain-register-close-btn", onClick: onClose, children: /* @__PURE__ */ jsx(Icon, { name: "x", size: 20 }) }),
13557
+ /* @__PURE__ */ jsx("div", { className: "ns-offchain-register-finish-banner", children: /* @__PURE__ */ jsx("img", { src: img, alt: "Success" }) }),
13558
+ /* @__PURE__ */ jsxs("div", { className: "ns-offchain-register-success-title-section", children: [
13559
+ /* @__PURE__ */ jsx(
13560
+ Text,
13561
+ {
13562
+ size: "xl",
13563
+ weight: "bold",
13564
+ className: "ns-offchain-register-success-message",
13565
+ children: "ENS name registered successfully"
13566
+ }
13567
+ ),
13568
+ /* @__PURE__ */ jsx(
13569
+ Text,
13570
+ {
13571
+ size: "md",
13572
+ color: "grey",
13573
+ className: "ns-offchain-register-success-subtitle",
13574
+ children: "Complete your profile now"
13575
+ }
13576
+ )
13577
+ ] }),
13578
+ onSetProfile && /* @__PURE__ */ jsxs(
13579
+ "div",
13580
+ {
13581
+ className: "ns-offchain-register-profile-card",
13582
+ onClick: onSetProfile,
13583
+ children: [
13584
+ /* @__PURE__ */ jsx("div", { className: "ns-offchain-register-profile-icon", children: /* @__PURE__ */ jsx("img", { src: img$1, alt: "Profile Icon" }) }),
13585
+ /* @__PURE__ */ jsxs("div", { className: "ns-offchain-register-profile-text", children: [
13586
+ /* @__PURE__ */ jsx(Text, { size: "md", weight: "bold", children: "Complete your profile" }),
13587
+ /* @__PURE__ */ jsx(Text, { size: "sm", color: "grey", children: "Make your ENS more discoverable" })
13588
+ ] }),
13589
+ /* @__PURE__ */ jsx("button", { className: "ns-offchain-register-profile-arrow", children: /* @__PURE__ */ jsx(ChevronRight, { size: 20 }) })
13590
+ ]
13591
+ }
13592
+ ),
13593
+ /* @__PURE__ */ jsx("div", { className: "ns-offchain-register-actions", children: /* @__PURE__ */ jsx(Button, { className: "primary finish-btn", onClick: onFinish || onClose, children: "Finish" }) })
13594
+ ] }) });
13595
+ }
13596
+
13597
+ function EnsOffChainRegisterModal({
13598
+ step: initialStep = 0,
13599
+ name: initialName = "",
13600
+ profileComplete = false,
13601
+ onStepChange,
13602
+ onNameChange,
13603
+ onProfileCompleteChange,
13604
+ onRegister,
13605
+ onCancel,
13606
+ onClose,
13607
+ onCompleteProfile,
13608
+ onOpenWallet,
13609
+ onCompleteRegistration,
13610
+ onRegisterAnother,
13611
+ onViewName
13612
+ }) {
13613
+ const [currentStep, setCurrentStep] = useState(initialStep);
13614
+ const [ensName, setEnsName] = useState(initialName);
13615
+ const handleNameChange = (value) => {
13616
+ setEnsName(value);
13617
+ onNameChange?.(value);
13618
+ };
13619
+ const handleRegister = () => {
13620
+ setCurrentStep(2);
13621
+ onStepChange?.(2);
13622
+ onRegister?.();
13623
+ };
13624
+ const handleCancel = () => {
13625
+ onCancel?.();
13626
+ };
13627
+ if (currentStep === 0) {
13628
+ return /* @__PURE__ */ jsx("div", { className: "ns-offchain-register-container", children: /* @__PURE__ */ jsx(
13629
+ InitialStep,
13630
+ {
13631
+ name: ensName,
13632
+ onNameChange: handleNameChange,
13633
+ onCancel: handleCancel,
13634
+ onRegister: handleRegister,
13635
+ onClose
13636
+ }
13637
+ ) });
13638
+ }
13639
+ if (currentStep === 2) {
13640
+ return /* @__PURE__ */ jsx(
13641
+ OffchainSuccessScreen,
13642
+ {
13643
+ name: ensName,
13644
+ onClose,
13645
+ onSetProfile: onCompleteProfile,
13646
+ onFinish: onClose
13647
+ }
13648
+ );
13649
+ }
13650
+ return /* @__PURE__ */ jsx("div", { className: "ns-offchain-register-container", children: /* @__PURE__ */ jsx(
13651
+ InitialStep,
13652
+ {
13653
+ name: ensName,
13654
+ onNameChange: handleNameChange,
13655
+ onCancel: handleCancel,
13656
+ onRegister: handleRegister,
13657
+ onClose
13658
+ }
13659
+ ) });
13660
+ }
13661
+
13662
+ function Header({ showBack = true, onBack, onClose }) {
13663
+ return /* @__PURE__ */ jsxs("div", { className: "ens-names-register-header", children: [
13664
+ showBack && /* @__PURE__ */ jsx("button", { className: "ens-names-register-back-btn", onClick: onBack, children: /* @__PURE__ */ jsx(ChevronLeft, { size: 20 }) }),
13665
+ /* @__PURE__ */ jsx("button", { className: "ens-names-register-close-btn", onClick: onClose, children: /* @__PURE__ */ jsx(Icon, { name: "x", size: 20 }) })
13666
+ ] });
13667
+ }
13668
+
13669
+ function NameSearch({
13670
+ ensName,
13671
+ onNameChange,
13672
+ onBack,
13673
+ onClose,
13674
+ onNext
13675
+ }) {
13676
+ return /* @__PURE__ */ jsx("div", { className: "ens-names-register-container", children: /* @__PURE__ */ jsxs("div", { className: "ens-names-register-card", children: [
13677
+ /* @__PURE__ */ jsx(Header, { showBack: true, onBack, onClose }),
13678
+ /* @__PURE__ */ jsx("div", { className: "ens-names-register-banner", children: /* @__PURE__ */ jsx("img", { src: img$2, alt: "ENS Banner" }) }),
13679
+ /* @__PURE__ */ jsxs("div", { className: "ens-names-register-title-section", children: [
13680
+ /* @__PURE__ */ jsx(Text, { size: "xl", weight: "bold", className: "ens-names-register-title", children: "ENS Registration Registration" }),
13681
+ /* @__PURE__ */ jsx(Text, { size: "md", color: "grey", className: "ens-names-register-subtitle", children: "Register multiple ENS name is a single transaction" })
13682
+ ] }),
13683
+ /* @__PURE__ */ jsxs("div", { className: "ens-names-register-input-row", children: [
13684
+ /* @__PURE__ */ jsx(
13685
+ Icon,
13686
+ {
13687
+ name: "search",
13688
+ size: 16,
13689
+ className: "ens-names-register-search-icon"
13690
+ }
13691
+ ),
13692
+ /* @__PURE__ */ jsx(
13693
+ Input,
13694
+ {
13695
+ type: "text",
13696
+ className: "ens-names-register-input",
13697
+ value: ensName,
13698
+ onChange: (e) => onNameChange(e.target.value)
13699
+ }
13700
+ ),
13701
+ /* @__PURE__ */ jsx(Text, { className: "ens-names-register-domain-suffix", children: ".eth" })
13702
+ ] }),
13703
+ /* @__PURE__ */ jsx(
13704
+ Button,
13705
+ {
13706
+ className: "ens-names-register-next-btn",
13707
+ variant: "solid",
13708
+ size: "lg",
13709
+ onClick: onNext,
13710
+ children: "Next"
13711
+ }
13712
+ )
13713
+ ] }) });
13714
+ }
13715
+
13716
+ function CostSummary({
13717
+ duration,
13718
+ registrationCost,
13719
+ networkFee,
13720
+ total,
13721
+ showExpiry = false,
13722
+ expiryDate
13723
+ }) {
13724
+ return /* @__PURE__ */ jsxs(
13725
+ "div",
13726
+ {
13727
+ className: `ens-names-register-${showExpiry ? "success-" : ""}summary`,
13728
+ children: [
13729
+ /* @__PURE__ */ jsxs(
13730
+ "div",
13731
+ {
13732
+ className: `ens-names-register-${showExpiry ? "success-" : ""}summary-row`,
13733
+ children: [
13734
+ /* @__PURE__ */ jsxs(Text, { size: "sm", children: [
13735
+ duration,
13736
+ " year registration"
13737
+ ] }),
13738
+ /* @__PURE__ */ jsxs(Text, { size: "sm", weight: "bold", children: [
13739
+ registrationCost.toFixed(3),
13740
+ " ETH"
13741
+ ] })
13742
+ ]
13743
+ }
13744
+ ),
13745
+ /* @__PURE__ */ jsxs(
13746
+ "div",
13747
+ {
13748
+ className: `ens-names-register-${showExpiry ? "success-" : ""}summary-row`,
13749
+ children: [
13750
+ /* @__PURE__ */ jsx(Text, { size: "sm", children: "Est. network fee" }),
13751
+ /* @__PURE__ */ jsxs(Text, { size: "sm", weight: "bold", children: [
13752
+ networkFee.toFixed(4),
13753
+ " ETH"
13754
+ ] })
13755
+ ]
13756
+ }
13757
+ ),
13758
+ /* @__PURE__ */ jsxs(
13759
+ "div",
13760
+ {
13761
+ className: `ens-names-register-${showExpiry ? "success-" : ""}summary-row ens-names-register-${showExpiry ? "success-" : ""}total`,
13762
+ children: [
13763
+ /* @__PURE__ */ jsx(Text, { size: showExpiry ? "md" : "lg", weight: "bold", children: "Total" }),
13764
+ /* @__PURE__ */ jsxs(
13765
+ "div",
13766
+ {
13767
+ className: `ens-names-register-${showExpiry ? "success-" : ""}total-amount`,
13768
+ children: [
13769
+ /* @__PURE__ */ jsx(Text, { size: showExpiry ? "md" : "lg", weight: "bold", children: total.toFixed(4) }),
13770
+ /* @__PURE__ */ jsx("span", { className: "ens-names-register-eth-logo", children: "\u27E0" }),
13771
+ /* @__PURE__ */ jsx(Text, { size: showExpiry ? "md" : "lg", weight: "bold", children: "ETH" })
13772
+ ]
13773
+ }
13774
+ )
13775
+ ]
13776
+ }
13777
+ ),
13778
+ showExpiry && expiryDate && /* @__PURE__ */ jsxs("div", { className: "ens-names-register-success-summary-row ens-names-register-success-expiry", children: [
13779
+ /* @__PURE__ */ jsx(Text, { size: "sm", children: "Name Expires" }),
13780
+ /* @__PURE__ */ jsx(Text, { size: "sm", weight: "bold", children: expiryDate })
13781
+ ] })
13782
+ ]
13783
+ }
13784
+ );
13785
+ }
13786
+
13787
+ function RegistrationForm({
13788
+ ensName,
13789
+ duration,
13790
+ registrationCost,
13791
+ networkFee,
13792
+ total,
13793
+ onNameChange,
13794
+ onDurationChange,
13795
+ onBack,
13796
+ onClose,
13797
+ onNext,
13798
+ onCompleteProfile
13799
+ }) {
13800
+ return /* @__PURE__ */ jsx("div", { className: "ens-names-register-container", children: /* @__PURE__ */ jsxs("div", { className: "ens-names-register-card", children: [
13801
+ /* @__PURE__ */ jsx(Header, { showBack: true, onBack, onClose }),
13802
+ /* @__PURE__ */ jsxs("div", { className: "ens-names-register-title-section", children: [
13803
+ /* @__PURE__ */ jsx(Text, { size: "xl", weight: "bold", className: "ens-names-register-title", children: "ENS Registration Registration" }),
13804
+ /* @__PURE__ */ jsx(Text, { size: "md", color: "grey", className: "ens-names-register-subtitle", children: "Register multiple ENS name is a single transaction" })
13805
+ ] }),
13806
+ /* @__PURE__ */ jsxs("div", { className: "ens-names-register-input-row", children: [
13807
+ /* @__PURE__ */ jsx(
13808
+ Icon,
13809
+ {
13810
+ name: "search",
13811
+ size: 16,
13812
+ className: "ens-names-register-search-icon"
13813
+ }
13814
+ ),
13815
+ /* @__PURE__ */ jsx(
13816
+ Input,
13817
+ {
13818
+ type: "text",
13819
+ className: "ens-names-register-input",
13820
+ value: ensName,
13821
+ onChange: (e) => onNameChange(e.target.value)
13822
+ }
13823
+ ),
13824
+ /* @__PURE__ */ jsx(Text, { className: "ens-names-register-domain-suffix", children: ".eth" })
13825
+ ] }),
13826
+ /* @__PURE__ */ jsxs("div", { className: "ens-names-register-cost-section", children: [
13827
+ /* @__PURE__ */ jsxs("div", { className: "ens-names-register-duration", children: [
13828
+ /* @__PURE__ */ jsx(
13829
+ "button",
13830
+ {
13831
+ className: "ens-names-register-duration-btn",
13832
+ onClick: () => onDurationChange(-1),
13833
+ children: /* @__PURE__ */ jsx(Text, { size: "md", weight: "bold", children: "-" })
13834
+ }
13835
+ ),
13836
+ /* @__PURE__ */ jsxs(
13837
+ Text,
13838
+ {
13839
+ size: "lg",
13840
+ weight: "bold",
13841
+ className: "ens-names-register-duration-text",
13842
+ children: [
13843
+ duration,
13844
+ " year",
13845
+ duration > 1 ? "s" : ""
13846
+ ]
13847
+ }
13848
+ ),
13849
+ /* @__PURE__ */ jsx(
13850
+ "button",
13851
+ {
13852
+ className: "ens-names-register-duration-btn",
13853
+ onClick: () => onDurationChange(1),
13854
+ children: /* @__PURE__ */ jsx(Text, { size: "md", weight: "bold", children: "+" })
13855
+ }
13856
+ )
13857
+ ] }),
13858
+ /* @__PURE__ */ jsx(
13859
+ CostSummary,
13860
+ {
13861
+ duration,
13862
+ registrationCost,
13863
+ networkFee,
13864
+ total
13865
+ }
13866
+ )
13867
+ ] }),
13868
+ /* @__PURE__ */ jsxs(
13869
+ "div",
13870
+ {
13871
+ className: "ens-names-register-profile-card",
13872
+ onClick: onCompleteProfile,
13873
+ children: [
13874
+ /* @__PURE__ */ jsx("div", { className: "ens-names-register-profile-icon", children: /* @__PURE__ */ jsx("img", { src: img$1, alt: "Profile Icon" }) }),
13875
+ /* @__PURE__ */ jsxs("div", { className: "ens-names-register-profile-text", children: [
13876
+ /* @__PURE__ */ jsx(Text, { size: "md", weight: "bold", children: "Complete your profile" }),
13877
+ /* @__PURE__ */ jsx(Text, { size: "sm", color: "grey", children: "Make your ENS more discoverable" })
13878
+ ] }),
13879
+ /* @__PURE__ */ jsx("button", { className: "ens-names-register-profile-arrow", children: /* @__PURE__ */ jsx(ChevronRight, { size: 20 }) })
13880
+ ]
13881
+ }
13882
+ ),
13883
+ /* @__PURE__ */ jsx(
13884
+ Button,
13885
+ {
13886
+ className: "ens-names-register-next-btn",
13887
+ variant: "solid",
13888
+ size: "lg",
13889
+ onClick: onNext,
13890
+ children: "Next"
13891
+ }
13892
+ )
13893
+ ] }) });
13894
+ }
13895
+
13896
+ function StepItem({
13897
+ stepNumber,
13898
+ title,
13899
+ isExpanded,
13900
+ isCompleted,
13901
+ onToggle,
13902
+ children
13903
+ }) {
13904
+ return /* @__PURE__ */ jsxs("div", { className: `ens-names-register-step ${isExpanded ? "expanded" : ""}`, children: [
13905
+ /* @__PURE__ */ jsxs("div", { className: "ens-names-register-step-header", onClick: onToggle, children: [
13906
+ /* @__PURE__ */ jsx(
13907
+ "div",
13908
+ {
13909
+ className: `ens-names-register-step-number ${isCompleted ? "completed" : ""}`,
13910
+ children: isCompleted ? /* @__PURE__ */ jsx(Check, { size: 18, className: "ens-names-register-step-check" }) : /* @__PURE__ */ jsx("span", { className: isExpanded ? "active" : "", children: stepNumber })
13911
+ }
13912
+ ),
13913
+ /* @__PURE__ */ jsx(Text, { size: "md", weight: "bold", className: "ens-names-register-step-title", children: title }),
13914
+ /* @__PURE__ */ jsx("div", { className: "ens-names-register-step-chevron", children: isExpanded ? /* @__PURE__ */ jsx(ChevronUp, { size: 20 }) : /* @__PURE__ */ jsx(ChevronDown, { size: 20 }) })
13915
+ ] }),
13916
+ isExpanded && children && /* @__PURE__ */ jsx("div", { className: "ens-names-register-step-content", children })
13917
+ ] });
13918
+ }
13919
+
13920
+ function ProgressBar({ progress }) {
13921
+ return /* @__PURE__ */ jsx("div", { className: "ens-names-register-progress-container", children: /* @__PURE__ */ jsx("div", { className: "ens-names-register-progress-bar", children: /* @__PURE__ */ jsx(
13922
+ "div",
13923
+ {
13924
+ className: "ens-names-register-progress-fill",
13925
+ style: { width: `${Math.min(progress, 100)}%` },
13926
+ children: /* @__PURE__ */ jsx(Sparkles, { size: 25, className: "ens-names-register-progress-sparkle" })
13927
+ }
13928
+ ) }) });
13929
+ }
13930
+
13931
+ function Timer({ seconds, progress }) {
13932
+ const formatTime = (secs) => {
13933
+ const mins = Math.floor(secs / 60);
13934
+ const sec = secs % 60;
13935
+ return `${mins}:${sec.toString().padStart(2, "0")}`;
13936
+ };
13937
+ return /* @__PURE__ */ jsx("div", { className: "ens-names-register-timer-container", children: /* @__PURE__ */ jsxs("div", { className: "ens-names-register-timer-circle", children: [
13938
+ /* @__PURE__ */ jsxs("svg", { className: "ens-names-register-timer-svg", viewBox: "0 0 120 120", children: [
13939
+ /* @__PURE__ */ jsx(
13940
+ "circle",
13941
+ {
13942
+ cx: "60",
13943
+ cy: "60",
13944
+ r: "54",
13945
+ fill: "none",
13946
+ stroke: "#e5e7eb",
13947
+ strokeWidth: "8"
13948
+ }
13949
+ ),
13950
+ /* @__PURE__ */ jsx(
13951
+ "circle",
13952
+ {
13953
+ cx: "60",
13954
+ cy: "60",
13955
+ r: "54",
13956
+ fill: "none",
13957
+ stroke: "#d1d5db",
13958
+ strokeWidth: "8",
13959
+ strokeDasharray: `${2 * Math.PI * 54}`,
13960
+ strokeDashoffset: `${2 * Math.PI * 54 * (1 - progress / 100)}`,
13961
+ strokeLinecap: "round",
13962
+ transform: "rotate(-90 60 60)",
13963
+ className: "ens-names-register-timer-progress"
13964
+ }
13965
+ )
13966
+ ] }),
13967
+ /* @__PURE__ */ jsx("div", { className: "ens-names-register-timer-text", children: /* @__PURE__ */ jsx(Text, { size: "xl", weight: "bold", children: formatTime(seconds) }) })
13968
+ ] }) });
13969
+ }
13970
+
13971
+ function RegistrationProcess({
13972
+ expandedStep,
13973
+ completedSteps,
13974
+ isTransactionInProgress,
13975
+ progress,
13976
+ timerSeconds,
13977
+ timerProgress,
13978
+ remainingHours,
13979
+ onBack,
13980
+ onClose,
13981
+ onToggleStep,
13982
+ onOpenWallet,
13983
+ onCompleteRegistration,
13984
+ onCompleteProfile
13985
+ }) {
13986
+ return /* @__PURE__ */ jsx("div", { className: "ens-names-register-container", children: /* @__PURE__ */ jsxs("div", { className: "ens-names-register-card", children: [
13987
+ /* @__PURE__ */ jsx(Header, { showBack: true, onBack, onClose }),
13988
+ /* @__PURE__ */ jsxs("div", { className: "ens-names-register-title-section", children: [
13989
+ /* @__PURE__ */ jsx(Text, { size: "xl", weight: "bold", className: "ens-names-register-title", children: "ENS Registration Process" }),
13990
+ /* @__PURE__ */ jsx(Text, { size: "md", color: "grey", className: "ens-names-register-subtitle", children: "Registration Consists of 3 Steps" })
13991
+ ] }),
13992
+ /* @__PURE__ */ jsx(
13993
+ StepItem,
13994
+ {
13995
+ stepNumber: 1,
13996
+ title: "Commitment",
13997
+ isExpanded: expandedStep === 1,
13998
+ isCompleted: completedSteps.includes(1),
13999
+ onToggle: () => onToggleStep(1),
14000
+ children: !isTransactionInProgress ? /* @__PURE__ */ jsxs(Fragment, { children: [
14001
+ /* @__PURE__ */ jsx(
14002
+ Text,
14003
+ {
14004
+ size: "lg",
14005
+ weight: "bold",
14006
+ className: "ens-names-register-step-content-title",
14007
+ children: "Start Your Journey"
14008
+ }
14009
+ ),
14010
+ /* @__PURE__ */ jsx(
14011
+ Text,
14012
+ {
14013
+ size: "sm",
14014
+ color: "grey",
14015
+ className: "ens-names-register-step-content-description",
14016
+ children: "Kickstart your registration by completing a transaction. This action sets your timer and officially begins the process. Simply create the transaction in your wallet to move forward."
14017
+ }
14018
+ ),
14019
+ /* @__PURE__ */ jsx(
14020
+ Button,
14021
+ {
14022
+ className: "ens-names-register-open-wallet-btn",
14023
+ variant: "solid",
14024
+ size: "lg",
14025
+ onClick: onOpenWallet,
14026
+ children: "Open Wallet"
14027
+ }
14028
+ )
14029
+ ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
14030
+ /* @__PURE__ */ jsx(
14031
+ Text,
14032
+ {
14033
+ size: "lg",
14034
+ weight: "bold",
14035
+ className: "ens-names-register-step-content-title",
14036
+ children: "Transaction in Progress"
14037
+ }
14038
+ ),
14039
+ /* @__PURE__ */ jsx(
14040
+ Text,
14041
+ {
14042
+ size: "sm",
14043
+ color: "grey",
14044
+ className: "ens-names-register-step-content-description",
14045
+ children: "Your transaction has been sent! The timer is now running. Once the progress bar completes, your registration will be confirmed."
14046
+ }
14047
+ ),
14048
+ /* @__PURE__ */ jsx(ProgressBar, { progress })
14049
+ ] })
14050
+ }
14051
+ ),
14052
+ /* @__PURE__ */ jsxs(
14053
+ StepItem,
14054
+ {
14055
+ stepNumber: 2,
14056
+ title: "Time Started",
14057
+ isExpanded: expandedStep === 2,
14058
+ isCompleted: completedSteps.includes(2),
14059
+ onToggle: () => onToggleStep(2),
14060
+ children: [
14061
+ /* @__PURE__ */ jsx(
14062
+ Text,
14063
+ {
14064
+ size: "lg",
14065
+ weight: "bold",
14066
+ className: "ens-names-register-step-content-title",
14067
+ children: "Waiting..."
14068
+ }
14069
+ ),
14070
+ /* @__PURE__ */ jsx(
14071
+ Text,
14072
+ {
14073
+ size: "sm",
14074
+ color: "grey",
14075
+ className: "ens-names-register-step-content-description",
14076
+ children: "This wait prevents others from front running your transaction. You will be prompted to complete a second transaction when the timer is complete."
14077
+ }
14078
+ ),
14079
+ /* @__PURE__ */ jsx(Timer, { seconds: timerSeconds, progress: timerProgress })
14080
+ ]
14081
+ }
14082
+ ),
14083
+ /* @__PURE__ */ jsxs(
14084
+ StepItem,
14085
+ {
14086
+ stepNumber: 3,
14087
+ title: "Complete Registration",
14088
+ isExpanded: expandedStep === 3,
14089
+ isCompleted: false,
14090
+ onToggle: () => onToggleStep(3),
14091
+ children: [
14092
+ /* @__PURE__ */ jsx(
14093
+ Text,
14094
+ {
14095
+ size: "lg",
14096
+ weight: "bold",
14097
+ className: "ens-names-register-step-content-title",
14098
+ children: "Register name"
14099
+ }
14100
+ ),
14101
+ /* @__PURE__ */ jsxs(
14102
+ Text,
14103
+ {
14104
+ size: "sm",
14105
+ color: "grey",
14106
+ className: "ens-names-register-step-content-description",
14107
+ children: [
14108
+ "Your name is not registered until you've completed the second transaction. You have ",
14109
+ remainingHours,
14110
+ " hours remaining to complete it."
14111
+ ]
14112
+ }
14113
+ ),
14114
+ /* @__PURE__ */ jsx(
14115
+ Button,
14116
+ {
14117
+ className: "ens-names-register-complete-btn",
14118
+ variant: "solid",
14119
+ size: "lg",
14120
+ onClick: onCompleteRegistration,
14121
+ children: "Complete Registration"
14122
+ }
14123
+ )
14124
+ ]
14125
+ }
14126
+ ),
14127
+ /* @__PURE__ */ jsx(
14128
+ "div",
14129
+ {
14130
+ className: "ens-names-register-footer-link",
14131
+ onClick: onCompleteProfile,
14132
+ children: /* @__PURE__ */ jsx(Text, { size: "sm", color: "grey", children: "I'd like to set up my profile first" })
14133
+ }
14134
+ )
14135
+ ] }) });
14136
+ }
14137
+
14138
+ function SuccessScreen({
14139
+ ensName,
14140
+ duration,
14141
+ registrationCost,
14142
+ networkFee,
14143
+ total,
14144
+ expiryDate,
14145
+ onClose,
14146
+ onRegisterAnother,
14147
+ onViewName
14148
+ }) {
14149
+ return /* @__PURE__ */ jsx("div", { className: "ens-names-register-container", children: /* @__PURE__ */ jsxs("div", { className: "ens-names-register-card ens-names-register-success-card", children: [
14150
+ /* @__PURE__ */ jsx(Header, { showBack: false, onClose }),
14151
+ /* @__PURE__ */ jsx("div", { className: "ens-names-register-success-illustration", children: /* @__PURE__ */ jsx("img", { src: img, alt: "Success Illustration" }) }),
14152
+ /* @__PURE__ */ jsxs("div", { className: "ens-names-register-success-title-section", children: [
14153
+ /* @__PURE__ */ jsx(
14154
+ Text,
14155
+ {
14156
+ size: "lg",
14157
+ weight: "bold",
14158
+ className: "ens-names-register-success-message",
14159
+ children: "Hooray! You've registered"
14160
+ }
14161
+ ),
14162
+ /* @__PURE__ */ jsxs(
14163
+ Text,
14164
+ {
14165
+ size: "xl",
14166
+ weight: "bold",
14167
+ className: "ens-names-register-success-name",
14168
+ children: [
14169
+ ensName,
14170
+ ".eth"
14171
+ ]
14172
+ }
14173
+ )
14174
+ ] }),
14175
+ /* @__PURE__ */ jsx("div", { className: "ens-names-register-success-summary", children: /* @__PURE__ */ jsx(
14176
+ CostSummary,
14177
+ {
14178
+ duration,
14179
+ registrationCost,
14180
+ networkFee,
14181
+ total,
14182
+ showExpiry: true,
14183
+ expiryDate
14184
+ }
14185
+ ) }),
14186
+ /* @__PURE__ */ jsxs("div", { className: "ens-names-register-success-actions", children: [
14187
+ /* @__PURE__ */ jsx(
14188
+ Button,
14189
+ {
14190
+ className: "ens-names-register-register-another-btn",
14191
+ variant: "outline",
14192
+ size: "lg",
14193
+ onClick: onRegisterAnother,
14194
+ children: "Register another"
14195
+ }
14196
+ ),
14197
+ /* @__PURE__ */ jsx(
14198
+ Button,
14199
+ {
14200
+ className: "ens-names-register-view-name-btn",
14201
+ variant: "solid",
14202
+ size: "lg",
14203
+ onClick: onViewName,
14204
+ children: "View Name"
14205
+ }
14206
+ )
14207
+ ] })
14208
+ ] }) });
14209
+ }
14210
+
14211
+ function ENSNamesRegisterComponent({
14212
+ name = "brightwave",
14213
+ duration: initialDuration = 1,
14214
+ onNameChange,
14215
+ onDurationChange,
14216
+ onBack,
14217
+ onClose,
14218
+ onNext,
14219
+ onCompleteProfile,
14220
+ onOpenWallet,
14221
+ onCompleteRegistration,
14222
+ onRegisterAnother,
14223
+ onViewName
14224
+ }) {
14225
+ const [duration, setDuration] = useState(initialDuration);
14226
+ const [ensName, setEnsName] = useState(name);
14227
+ const [currentStep, setCurrentStep] = useState(0);
14228
+ const [expandedStep, setExpandedStep] = useState(1);
14229
+ const [isTransactionInProgress, setIsTransactionInProgress] = useState(false);
14230
+ const [progress, setProgress] = useState(0);
14231
+ const [timerSeconds, setTimerSeconds] = useState(60);
14232
+ const [isTimerActive, setIsTimerActive] = useState(false);
14233
+ const [completedSteps, setCompletedSteps] = useState([]);
14234
+ const [remainingHours, setRemainingHours] = useState(23);
14235
+ const getExpiryDate = () => {
14236
+ const now = /* @__PURE__ */ new Date();
14237
+ const expiryDate = new Date(now);
14238
+ expiryDate.setFullYear(now.getFullYear() + duration);
14239
+ const months = [
14240
+ "January",
14241
+ "February",
14242
+ "March",
14243
+ "April",
14244
+ "May",
14245
+ "June",
14246
+ "July",
14247
+ "August",
14248
+ "September",
14249
+ "October",
14250
+ "November",
14251
+ "December"
14252
+ ];
14253
+ const month = months[expiryDate.getMonth()];
14254
+ const day = expiryDate.getDate();
14255
+ const year = expiryDate.getFullYear();
14256
+ return `${month} ${day}, ${year}`;
14257
+ };
14258
+ useEffect(() => {
14259
+ if (isTransactionInProgress) {
14260
+ const interval = setInterval(() => {
14261
+ setProgress((prev) => {
14262
+ if (prev >= 100) {
14263
+ clearInterval(interval);
14264
+ setIsTimerActive(true);
14265
+ setCompletedSteps([1]);
14266
+ return 100;
14267
+ }
14268
+ return prev + 0.5;
14269
+ });
14270
+ }, 50);
14271
+ return () => clearInterval(interval);
14272
+ }
14273
+ }, [isTransactionInProgress]);
14274
+ useEffect(() => {
14275
+ if (isTimerActive && timerSeconds > 0) {
14276
+ const interval = setInterval(() => {
14277
+ setTimerSeconds((prev) => {
14278
+ if (prev <= 1) {
14279
+ clearInterval(interval);
14280
+ setIsTimerActive(false);
14281
+ setCompletedSteps([1, 2]);
14282
+ setExpandedStep(3);
14283
+ return 0;
14284
+ }
14285
+ return prev - 1;
14286
+ });
14287
+ }, 1e3);
14288
+ return () => clearInterval(interval);
14289
+ }
14290
+ }, [isTimerActive, timerSeconds]);
14291
+ const handleDurationChange = (delta) => {
14292
+ const newDuration = Math.max(1, duration + delta);
14293
+ setDuration(newDuration);
14294
+ onDurationChange?.(newDuration);
14295
+ };
14296
+ const handleNameChange = (value) => {
14297
+ setEnsName(value);
14298
+ onNameChange?.(value);
14299
+ };
14300
+ const handleNameSearchNext = () => {
14301
+ setCurrentStep(1);
14302
+ onNext?.();
14303
+ };
14304
+ const handleNext = () => {
14305
+ setCurrentStep(2);
14306
+ onNext?.();
14307
+ };
14308
+ const handleBackToForm = () => {
14309
+ setCurrentStep(1);
14310
+ setIsTransactionInProgress(false);
14311
+ setProgress(0);
14312
+ setIsTimerActive(false);
14313
+ setTimerSeconds(60);
14314
+ setCompletedSteps([]);
14315
+ onBack?.();
14316
+ };
14317
+ const toggleStep = (stepNumber) => {
14318
+ setExpandedStep(expandedStep === stepNumber ? 0 : stepNumber);
14319
+ };
14320
+ const handleOpenWallet = () => {
14321
+ setIsTransactionInProgress(true);
14322
+ setProgress(0);
14323
+ onOpenWallet?.();
14324
+ };
14325
+ const handleCompleteRegistration = () => {
14326
+ setCurrentStep(3);
14327
+ onCompleteRegistration?.();
14328
+ };
14329
+ const handleRegisterAnother = () => {
14330
+ setCurrentStep(0);
14331
+ setIsTransactionInProgress(false);
14332
+ setProgress(0);
14333
+ setIsTimerActive(false);
14334
+ setTimerSeconds(60);
14335
+ setCompletedSteps([]);
14336
+ setExpandedStep(1);
14337
+ onRegisterAnother?.();
14338
+ };
14339
+ const timerProgress = (60 - timerSeconds) / 60 * 100;
14340
+ const registrationCost = 4e-3 * duration;
14341
+ const networkFee = 1e-3;
14342
+ const total = registrationCost + networkFee;
14343
+ if (currentStep === 0) {
14344
+ return /* @__PURE__ */ jsx(
14345
+ NameSearch,
14346
+ {
14347
+ ensName,
14348
+ onNameChange: handleNameChange,
14349
+ onBack,
14350
+ onClose,
14351
+ onNext: handleNameSearchNext
14352
+ }
14353
+ );
14354
+ }
14355
+ if (currentStep === 1) {
14356
+ return /* @__PURE__ */ jsx(
14357
+ RegistrationForm,
14358
+ {
14359
+ ensName,
14360
+ duration,
14361
+ registrationCost,
14362
+ networkFee,
14363
+ total,
14364
+ onNameChange: handleNameChange,
14365
+ onDurationChange: handleDurationChange,
14366
+ onBack: () => setCurrentStep(0),
14367
+ onClose,
14368
+ onNext: handleNext,
14369
+ onCompleteProfile
14370
+ }
14371
+ );
14372
+ }
14373
+ if (currentStep === 3) {
14374
+ return /* @__PURE__ */ jsx(
14375
+ SuccessScreen,
14376
+ {
14377
+ ensName,
14378
+ duration,
14379
+ registrationCost,
14380
+ networkFee,
14381
+ total,
14382
+ expiryDate: getExpiryDate(),
14383
+ onClose,
14384
+ onRegisterAnother: handleRegisterAnother,
14385
+ onViewName: onViewName || (() => {
14386
+ })
14387
+ }
14388
+ );
14389
+ }
14390
+ return /* @__PURE__ */ jsx(
14391
+ RegistrationProcess,
14392
+ {
14393
+ expandedStep,
14394
+ completedSteps,
14395
+ isTransactionInProgress,
14396
+ progress,
14397
+ timerSeconds,
14398
+ timerProgress,
14399
+ remainingHours,
14400
+ onBack: handleBackToForm,
14401
+ onClose,
14402
+ onToggleStep: toggleStep,
14403
+ onOpenWallet: handleOpenWallet,
14404
+ onCompleteRegistration: handleCompleteRegistration,
14405
+ onCompleteProfile
14406
+ }
14407
+ );
14408
+ }
14409
+
12726
14410
  const useWaitForTransaction = ({
12727
14411
  chainId: number
12728
14412
  }) => {
@@ -12783,5 +14467,5 @@ const useTheme = () => {
12783
14467
  return ctx;
12784
14468
  };
12785
14469
 
12786
- export { Alert, Button, Card, ChainIcon, ContenthashIcon, ContenthashProtocol, Dropdown, ENSNameCard, ENS_RESOLVER_ABI, Icon, Input, MULTICALL, Modal, NavbarProfileCard, PendingTransaction, ProfileCard, ProfileHeader, SET_ADDRESS_FUNC, SET_CONTENTHASH_FUNC, SET_TEXT_FUNC, SelectRecordsForm, Text, TextRecordCategory, Textarea, ThemeProvider, Tooltip, TransactionState, capitalize, convertEVMChainIdToCoinType, deepCopy, equalsIgnoreCase, getEnsRecordsDiff, getSupportedAddressByCoin, getSupportedAddressByName, getSupportedAddressMap, getSupportedChashByProtocol, getSupportedText, isContenthashValid, supportedAddresses, supportedContenthashRecords, supportedTexts, useTheme, useWaitForTransaction, useWeb3Client };
14470
+ export { Alert, Button, Card, ChainIcon, ContenthashIcon, ContenthashProtocol, Dropdown, ENSNameCard, ENSNamesRegisterComponent, ENS_RESOLVER_ABI, EnsOffChainRegisterModal, EnsOnChainRegisterModal, Icon, Input, MULTICALL, Modal, NavbarProfileCard, PendingTransaction, ProfileCard, ProfileHeader, SET_ADDRESS_FUNC, SET_CONTENTHASH_FUNC, SET_TEXT_FUNC, SelectRecordsForm, Text, TextRecordCategory, Textarea, ThemeProvider, Tooltip, TransactionState, capitalize, convertEVMChainIdToCoinType, deepCopy, equalsIgnoreCase, getEnsRecordsDiff, getSupportedAddressByCoin, getSupportedAddressByName, getSupportedAddressMap, getSupportedChashByProtocol, getSupportedText, isContenthashValid, supportedAddresses, supportedContenthashRecords, supportedTexts, useTheme, useWaitForTransaction, useWeb3Client };
12787
14471
  //# sourceMappingURL=index.js.map