@cmdoss/walrus-site-builder-react 2.5.0 → 2.6.1

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.css CHANGED
@@ -1178,86 +1178,6 @@
1178
1178
  mask-image: linear-gradient(to right, oklch(0 0 0) 60%, transparent);
1179
1179
  }
1180
1180
  }
1181
- .Button_button__1267jvj0 {
1182
- display: inline-flex;
1183
- align-items: center;
1184
- justify-content: center;
1185
- gap: var(--spacing-sm__15qvdy7h);
1186
- border-radius: var(--radius-md__15qvdy7e);
1187
- font-size: 0.875rem;
1188
- font-weight: 500;
1189
- transition: all 0.2s ease-in-out;
1190
- cursor: pointer;
1191
- border: none;
1192
- outline: none;
1193
- white-space: nowrap;
1194
- }
1195
- .Button_button__1267jvj0:disabled {
1196
- opacity: 0.5;
1197
- cursor: not-allowed;
1198
- pointer-events: none;
1199
- }
1200
- .Button_button__1267jvj0:focus-visible {
1201
- outline: 2px solid var(--colors-primary__15qvdy75);
1202
- outline-offset: 2px;
1203
- }
1204
- .Button_button_variant_default__1267jvj1 {
1205
- background-color: var(--colors-primary__15qvdy75);
1206
- color: var(--colors-primaryForeground__15qvdy76);
1207
- }
1208
- .Button_button_variant_default__1267jvj1:hover {
1209
- opacity: 0.9;
1210
- }
1211
- .Button_button_variant_outline__1267jvj2 {
1212
- background-color: transparent;
1213
- border: 1px solid var(--colors-border__15qvdy74);
1214
- color: var(--colors-foreground__15qvdy71);
1215
- }
1216
- .Button_button_variant_outline__1267jvj2:hover {
1217
- background-color: var(--colors-accent__15qvdy79);
1218
- color: var(--colors-accentForeground__15qvdy7a);
1219
- }
1220
- .Button_button_variant_ghost__1267jvj3 {
1221
- background-color: transparent;
1222
- color: var(--colors-foreground__15qvdy71);
1223
- }
1224
- .Button_button_variant_ghost__1267jvj3:hover {
1225
- background-color: var(--colors-accent__15qvdy79);
1226
- color: var(--colors-accentForeground__15qvdy7a);
1227
- }
1228
- .Button_button_variant_destructive__1267jvj4 {
1229
- background-color: var(--colors-destructive__15qvdy77);
1230
- color: var(--colors-destructiveForeground__15qvdy78);
1231
- }
1232
- .Button_button_variant_destructive__1267jvj4:hover {
1233
- opacity: 0.9;
1234
- }
1235
- .Button_button_variant_gradient__1267jvj5 {
1236
- background: linear-gradient(to right, var(--colors-blue__15qvdy7b), var(--colors-cyan__15qvdy7c));
1237
- color: #ffffff;
1238
- }
1239
- .Button_button_variant_gradient__1267jvj5:hover {
1240
- opacity: 0.9;
1241
- }
1242
- .Button_button_size_default__1267jvj6 {
1243
- height: 2.5rem;
1244
- padding: 0 var(--spacing-md__15qvdy7i);
1245
- }
1246
- .Button_button_size_sm__1267jvj7 {
1247
- height: 2rem;
1248
- padding: 0 var(--spacing-sm__15qvdy7h);
1249
- font-size: 0.75rem;
1250
- }
1251
- .Button_button_size_lg__1267jvj8 {
1252
- height: 3rem;
1253
- padding: 0 var(--spacing-lg__15qvdy7j);
1254
- font-size: 1rem;
1255
- }
1256
- .Button_button_size_icon__1267jvj9 {
1257
- height: 2.5rem;
1258
- width: 2.5rem;
1259
- padding: 0;
1260
- }
1261
1181
  .FlickeringGrid_container__1e33elw0 {
1262
1182
  height: 100%;
1263
1183
  width: 100%;
@@ -1266,61 +1186,6 @@
1266
1186
  .FlickeringGrid_canvas__1e33elw1 {
1267
1187
  pointer-events: none;
1268
1188
  }
1269
- .Input_input__50i2wa0 {
1270
- display: flex;
1271
- width: 100%;
1272
- border-radius: var(--radius-md__15qvdy7e);
1273
- border: 1px solid var(--colors-border__15qvdy74);
1274
- background-color: var(--colors-background__15qvdy70);
1275
- padding: var(--spacing-sm__15qvdy7h) var(--spacing-md__15qvdy7i);
1276
- font-size: 0.875rem;
1277
- color: var(--colors-foreground__15qvdy71);
1278
- transition: all 0.2s ease-in-out;
1279
- outline: none;
1280
- }
1281
- .Input_input__50i2wa0:focus {
1282
- border-color: var(--colors-primary__15qvdy75);
1283
- box-shadow: 0 0 0 1px var(--colors-primary__15qvdy75);
1284
- }
1285
- .Input_input__50i2wa0:disabled {
1286
- cursor: not-allowed;
1287
- opacity: 0.5;
1288
- }
1289
- .Input_input__50i2wa0::placeholder {
1290
- color: var(--colors-mutedForeground__15qvdy73);
1291
- }
1292
- .Input_label__50i2wa1 {
1293
- font-size: 0.875rem;
1294
- font-weight: 500;
1295
- color: var(--colors-foreground__15qvdy71);
1296
- display: block;
1297
- margin-bottom: var(--spacing-xs__15qvdy7g);
1298
- }
1299
- .Input_textarea__50i2wa2 {
1300
- display: flex;
1301
- width: 100%;
1302
- border-radius: var(--radius-md__15qvdy7e);
1303
- border: 1px solid var(--colors-border__15qvdy74);
1304
- background-color: var(--colors-background__15qvdy70);
1305
- padding: var(--spacing-sm__15qvdy7h) var(--spacing-md__15qvdy7i);
1306
- font-size: 0.875rem;
1307
- color: var(--colors-foreground__15qvdy71);
1308
- transition: all 0.2s ease-in-out;
1309
- outline: none;
1310
- min-height: 5rem;
1311
- resize: vertical;
1312
- }
1313
- .Input_textarea__50i2wa2:focus {
1314
- border-color: var(--colors-primary__15qvdy75);
1315
- box-shadow: 0 0 0 1px var(--colors-primary__15qvdy75);
1316
- }
1317
- .Input_textarea__50i2wa2:disabled {
1318
- cursor: not-allowed;
1319
- opacity: 0.5;
1320
- }
1321
- .Input_textarea__50i2wa2::placeholder {
1322
- color: var(--colors-mutedForeground__15qvdy73);
1323
- }
1324
1189
  @keyframes Stepper_spin__e4qgi0 {
1325
1190
  0% {
1326
1191
  transform: rotate(0deg);
@@ -1555,4 +1420,365 @@
1555
1420
  justify-content: center;
1556
1421
  padding: var(--spacing-xl__15qvdy7k) 0;
1557
1422
  color: var(--colors-mutedForeground__15qvdy73);
1423
+ }
1424
+ .Button_button__1267jvj0 {
1425
+ display: inline-flex;
1426
+ align-items: center;
1427
+ justify-content: center;
1428
+ gap: var(--spacing-sm__15qvdy7h);
1429
+ border-radius: var(--radius-md__15qvdy7e);
1430
+ font-size: 0.875rem;
1431
+ font-weight: 500;
1432
+ transition: all 0.2s ease-in-out;
1433
+ cursor: pointer;
1434
+ border: none;
1435
+ outline: none;
1436
+ white-space: nowrap;
1437
+ }
1438
+ .Button_button__1267jvj0:disabled {
1439
+ opacity: 0.5;
1440
+ cursor: not-allowed;
1441
+ pointer-events: none;
1442
+ }
1443
+ .Button_button__1267jvj0:focus-visible {
1444
+ outline: 2px solid var(--colors-primary__15qvdy75);
1445
+ outline-offset: 2px;
1446
+ }
1447
+ .Button_button_variant_default__1267jvj1 {
1448
+ background-color: var(--colors-primary__15qvdy75);
1449
+ color: var(--colors-primaryForeground__15qvdy76);
1450
+ }
1451
+ .Button_button_variant_default__1267jvj1:hover {
1452
+ opacity: 0.9;
1453
+ }
1454
+ .Button_button_variant_outline__1267jvj2 {
1455
+ background-color: transparent;
1456
+ border: 1px solid var(--colors-border__15qvdy74);
1457
+ color: var(--colors-foreground__15qvdy71);
1458
+ }
1459
+ .Button_button_variant_outline__1267jvj2:hover {
1460
+ background-color: var(--colors-accent__15qvdy79);
1461
+ color: var(--colors-accentForeground__15qvdy7a);
1462
+ }
1463
+ .Button_button_variant_ghost__1267jvj3 {
1464
+ background-color: transparent;
1465
+ color: var(--colors-foreground__15qvdy71);
1466
+ }
1467
+ .Button_button_variant_ghost__1267jvj3:hover {
1468
+ background-color: var(--colors-accent__15qvdy79);
1469
+ color: var(--colors-accentForeground__15qvdy7a);
1470
+ }
1471
+ .Button_button_variant_destructive__1267jvj4 {
1472
+ background-color: var(--colors-destructive__15qvdy77);
1473
+ color: var(--colors-destructiveForeground__15qvdy78);
1474
+ }
1475
+ .Button_button_variant_destructive__1267jvj4:hover {
1476
+ opacity: 0.9;
1477
+ }
1478
+ .Button_button_variant_gradient__1267jvj5 {
1479
+ background: linear-gradient(to right, var(--colors-blue__15qvdy7b), var(--colors-cyan__15qvdy7c));
1480
+ color: #ffffff;
1481
+ }
1482
+ .Button_button_variant_gradient__1267jvj5:hover {
1483
+ opacity: 0.9;
1484
+ }
1485
+ .Button_button_size_default__1267jvj6 {
1486
+ height: 2.5rem;
1487
+ padding: 0 var(--spacing-md__15qvdy7i);
1488
+ }
1489
+ .Button_button_size_sm__1267jvj7 {
1490
+ height: 2rem;
1491
+ padding: 0 var(--spacing-sm__15qvdy7h);
1492
+ font-size: 0.75rem;
1493
+ }
1494
+ .Button_button_size_lg__1267jvj8 {
1495
+ height: 3rem;
1496
+ padding: 0 var(--spacing-lg__15qvdy7j);
1497
+ font-size: 1rem;
1498
+ }
1499
+ .Button_button_size_icon__1267jvj9 {
1500
+ height: 2.5rem;
1501
+ width: 2.5rem;
1502
+ padding: 0;
1503
+ }
1504
+ .Input_input__50i2wa0 {
1505
+ display: flex;
1506
+ width: 100%;
1507
+ border-radius: var(--radius-md__15qvdy7e);
1508
+ border: 1px solid var(--colors-border__15qvdy74);
1509
+ background-color: var(--colors-background__15qvdy70);
1510
+ padding: var(--spacing-sm__15qvdy7h) var(--spacing-md__15qvdy7i);
1511
+ font-size: 0.875rem;
1512
+ color: var(--colors-foreground__15qvdy71);
1513
+ transition: all 0.2s ease-in-out;
1514
+ outline: none;
1515
+ }
1516
+ .Input_input__50i2wa0:focus {
1517
+ border-color: var(--colors-primary__15qvdy75);
1518
+ box-shadow: 0 0 0 1px var(--colors-primary__15qvdy75);
1519
+ }
1520
+ .Input_input__50i2wa0:disabled {
1521
+ cursor: not-allowed;
1522
+ opacity: 0.5;
1523
+ }
1524
+ .Input_input__50i2wa0::placeholder {
1525
+ color: var(--colors-mutedForeground__15qvdy73);
1526
+ }
1527
+ .Input_label__50i2wa1 {
1528
+ font-size: 0.875rem;
1529
+ font-weight: 500;
1530
+ color: var(--colors-foreground__15qvdy71);
1531
+ display: block;
1532
+ margin-bottom: var(--spacing-xs__15qvdy7g);
1533
+ }
1534
+ .Input_textarea__50i2wa2 {
1535
+ display: flex;
1536
+ width: 100%;
1537
+ border-radius: var(--radius-md__15qvdy7e);
1538
+ border: 1px solid var(--colors-border__15qvdy74);
1539
+ background-color: var(--colors-background__15qvdy70);
1540
+ padding: var(--spacing-sm__15qvdy7h) var(--spacing-md__15qvdy7i);
1541
+ font-size: 0.875rem;
1542
+ color: var(--colors-foreground__15qvdy71);
1543
+ transition: all 0.2s ease-in-out;
1544
+ outline: none;
1545
+ min-height: 5rem;
1546
+ resize: vertical;
1547
+ }
1548
+ .Input_textarea__50i2wa2:focus {
1549
+ border-color: var(--colors-primary__15qvdy75);
1550
+ box-shadow: 0 0 0 1px var(--colors-primary__15qvdy75);
1551
+ }
1552
+ .Input_textarea__50i2wa2:disabled {
1553
+ cursor: not-allowed;
1554
+ opacity: 0.5;
1555
+ }
1556
+ .Input_textarea__50i2wa2::placeholder {
1557
+ color: var(--colors-mutedForeground__15qvdy73);
1558
+ }
1559
+ @keyframes UpdateMetadataModal_spin__1b8g8dv0 {
1560
+ 0% {
1561
+ transform: rotate(0deg);
1562
+ }
1563
+ 100% {
1564
+ transform: rotate(360deg);
1565
+ }
1566
+ }
1567
+ .UpdateMetadataModal_overlay__1b8g8dv1 {
1568
+ background-color: rgba(0, 0, 0, 0.5);
1569
+ position: fixed;
1570
+ inset: 0;
1571
+ z-index: 50;
1572
+ animation: fadeIn 150ms ease-in-out;
1573
+ }
1574
+ .UpdateMetadataModal_content__1b8g8dv2 {
1575
+ background-color: var(--colors-background__15qvdy70);
1576
+ border-radius: var(--radius-lg__15qvdy7f);
1577
+ box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
1578
+ position: fixed;
1579
+ top: 50%;
1580
+ left: 50%;
1581
+ transform: translate(-50%, -50%);
1582
+ width: 90vw;
1583
+ max-width: 32rem;
1584
+ max-height: 90vh;
1585
+ overflow: auto;
1586
+ z-index: 51;
1587
+ animation: slideIn 200ms ease-in-out;
1588
+ border: 1px solid var(--colors-border__15qvdy74);
1589
+ padding: 0;
1590
+ display: flex;
1591
+ flex-direction: column;
1592
+ }
1593
+ .UpdateMetadataModal_header__1b8g8dv3 {
1594
+ display: flex;
1595
+ flex-direction: column;
1596
+ gap: var(--spacing-xs__15qvdy7g);
1597
+ padding: var(--spacing-md__15qvdy7i);
1598
+ border-bottom: 1px solid var(--colors-border__15qvdy74);
1599
+ position: relative;
1600
+ }
1601
+ .UpdateMetadataModal_title__1b8g8dv4 {
1602
+ font-size: 1.125rem;
1603
+ font-weight: 600;
1604
+ color: var(--colors-foreground__15qvdy71);
1605
+ margin: 0;
1606
+ }
1607
+ .UpdateMetadataModal_description__1b8g8dv5 {
1608
+ font-size: 0.875rem;
1609
+ color: var(--colors-mutedForeground__15qvdy73);
1610
+ margin: 0;
1611
+ }
1612
+ .UpdateMetadataModal_closeButton__1b8g8dv6 {
1613
+ position: absolute;
1614
+ top: var(--spacing-md__15qvdy7i);
1615
+ right: var(--spacing-md__15qvdy7i);
1616
+ padding: 0.25rem;
1617
+ cursor: pointer;
1618
+ border: none;
1619
+ background: transparent;
1620
+ color: var(--colors-foreground__15qvdy71);
1621
+ border-radius: 0.5rem;
1622
+ transition: background-color 0.2s;
1623
+ }
1624
+ .UpdateMetadataModal_closeButton__1b8g8dv6:hover {
1625
+ background-color: var(--colors-muted__15qvdy72);
1626
+ }
1627
+ .UpdateMetadataModal_body__1b8g8dv7 {
1628
+ padding: var(--spacing-md__15qvdy7i);
1629
+ display: flex;
1630
+ flex-direction: column;
1631
+ gap: var(--spacing-md__15qvdy7i);
1632
+ flex: 1;
1633
+ overflow-y: auto;
1634
+ }
1635
+ .UpdateMetadataModal_loadingContainer__1b8g8dv8 {
1636
+ display: flex;
1637
+ flex-direction: column;
1638
+ align-items: center;
1639
+ justify-content: center;
1640
+ gap: var(--spacing-md__15qvdy7i);
1641
+ padding: var(--spacing-xl__15qvdy7k);
1642
+ color: var(--colors-mutedForeground__15qvdy73);
1643
+ }
1644
+ .UpdateMetadataModal_footer__1b8g8dv9 {
1645
+ display: flex;
1646
+ align-items: center;
1647
+ justify-content: flex-end;
1648
+ gap: var(--spacing-sm__15qvdy7h);
1649
+ padding: var(--spacing-md__15qvdy7i);
1650
+ border-top: 1px solid var(--colors-border__15qvdy74);
1651
+ background-color: rgba(var(--muted-rgb), 0.3);
1652
+ }
1653
+ .UpdateMetadataModal_fieldLabel__1b8g8dva {
1654
+ display: flex;
1655
+ align-items: center;
1656
+ justify-content: space-between;
1657
+ margin-bottom: var(--spacing-xs__15qvdy7g);
1658
+ }
1659
+ .UpdateMetadataModal_charCount__1b8g8dvb {
1660
+ font-size: 0.75rem;
1661
+ color: var(--colors-mutedForeground__15qvdy73);
1662
+ }
1663
+ .UpdateMetadataModal_optionalLabel__1b8g8dvc {
1664
+ font-size: 0.75rem;
1665
+ color: var(--colors-mutedForeground__15qvdy73);
1666
+ font-weight: normal;
1667
+ }
1668
+ .UpdateMetadataModal_uploadModeToggle__1b8g8dvd {
1669
+ display: flex;
1670
+ gap: 0.5rem;
1671
+ margin-bottom: var(--spacing-md__15qvdy7i);
1672
+ padding: 0.25rem;
1673
+ background-color: var(--colors-muted__15qvdy72);
1674
+ border-radius: 0.5rem;
1675
+ }
1676
+ .UpdateMetadataModal_uploadModeButton__1b8g8dve {
1677
+ flex: 1;
1678
+ padding: 0.5rem 1rem;
1679
+ font-size: 0.875rem;
1680
+ font-weight: 500;
1681
+ border: none;
1682
+ border-radius: 0.375rem;
1683
+ cursor: pointer;
1684
+ transition: all 0.2s;
1685
+ background-color: transparent;
1686
+ color: var(--colors-mutedForeground__15qvdy73);
1687
+ }
1688
+ .UpdateMetadataModal_uploadModeButtonActive__1b8g8dvf {
1689
+ flex: 1;
1690
+ padding: 0.5rem 1rem;
1691
+ font-size: 0.875rem;
1692
+ font-weight: 500;
1693
+ border: none;
1694
+ border-radius: 0.375rem;
1695
+ cursor: pointer;
1696
+ transition: all 0.2s;
1697
+ background-color: var(--colors-background__15qvdy70);
1698
+ color: var(--colors-foreground__15qvdy71);
1699
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
1700
+ }
1701
+ .UpdateMetadataModal_uploadArea__1b8g8dvg {
1702
+ border: 2px dashed var(--colors-border__15qvdy74);
1703
+ border-radius: var(--radius-lg__15qvdy7f);
1704
+ aspect-ratio: 1 / 1;
1705
+ width: 100%;
1706
+ display: flex;
1707
+ align-items: center;
1708
+ justify-content: center;
1709
+ cursor: pointer;
1710
+ transition: background-color 0.2s;
1711
+ overflow: hidden;
1712
+ position: relative;
1713
+ }
1714
+ .UpdateMetadataModal_uploadArea__1b8g8dvg:hover {
1715
+ background-color: rgba(var(--muted-rgb), 0.5);
1716
+ }
1717
+ .UpdateMetadataModal_uploadPlaceholder__1b8g8dvh {
1718
+ display: flex;
1719
+ flex-direction: column;
1720
+ align-items: center;
1721
+ justify-content: center;
1722
+ gap: var(--spacing-sm__15qvdy7h);
1723
+ padding: var(--spacing-lg__15qvdy7j);
1724
+ color: var(--colors-mutedForeground__15qvdy73);
1725
+ }
1726
+ .UpdateMetadataModal_uploadHint__1b8g8dvi {
1727
+ font-size: 0.875rem;
1728
+ margin-top: 0.25rem;
1729
+ }
1730
+ .UpdateMetadataModal_previewImage__1b8g8dvj {
1731
+ width: 100%;
1732
+ height: 100%;
1733
+ object-fit: cover;
1734
+ border-radius: var(--radius-lg__15qvdy7f);
1735
+ }
1736
+ .UpdateMetadataModal_urlInputContainer__1b8g8dvk {
1737
+ display: flex;
1738
+ flex-direction: column;
1739
+ gap: var(--spacing-md__15qvdy7i);
1740
+ }
1741
+ .UpdateMetadataModal_imagePreview__1b8g8dvl {
1742
+ width: 100%;
1743
+ aspect-ratio: 1;
1744
+ border-radius: var(--radius-lg__15qvdy7f);
1745
+ overflow: hidden;
1746
+ border: 1px solid var(--colors-border__15qvdy74);
1747
+ }
1748
+ .UpdateMetadataModal_urlInputWrapper__1b8g8dvm {
1749
+ display: flex;
1750
+ gap: 0.5rem;
1751
+ }
1752
+ .UpdateMetadataModal_errorText__1b8g8dvn {
1753
+ font-size: 0.75rem;
1754
+ color: var(--colors-destructive__15qvdy77);
1755
+ margin-top: 0.5rem;
1756
+ display: flex;
1757
+ align-items: center;
1758
+ gap: 0.25rem;
1759
+ }
1760
+ .UpdateMetadataModal_errorBanner__1b8g8dvo {
1761
+ display: flex;
1762
+ align-items: center;
1763
+ gap: 0.5rem;
1764
+ padding: var(--spacing-sm__15qvdy7h);
1765
+ background-color: rgba(var(--destructive-rgb), 0.1);
1766
+ border: 1px solid var(--colors-destructive__15qvdy77);
1767
+ border-radius: var(--radius-md__15qvdy7e);
1768
+ color: var(--colors-destructive__15qvdy77);
1769
+ font-size: 0.875rem;
1770
+ }
1771
+ .UpdateMetadataModal_warningBanner__1b8g8dvp {
1772
+ display: flex;
1773
+ align-items: center;
1774
+ gap: 0.5rem;
1775
+ padding: var(--spacing-sm__15qvdy7h);
1776
+ background-color: rgba(251, 191, 36, 0.1);
1777
+ border: 1px solid rgb(251, 191, 36);
1778
+ border-radius: var(--radius-md__15qvdy7e);
1779
+ color: rgb(251, 191, 36);
1780
+ font-size: 0.875rem;
1781
+ }
1782
+ .UpdateMetadataModal_spinner__1b8g8dvq {
1783
+ animation: UpdateMetadataModal_spin__1b8g8dv0 1s linear infinite;
1558
1784
  }
package/dist/index.d.ts CHANGED
@@ -372,6 +372,138 @@ interface StepperProps {
372
372
  }
373
373
  declare const Stepper: FC<StepperProps>;
374
374
  //#endregion
375
+ //#region src/hooks/useUpdateSiteMetadata.d.ts
376
+ interface UseUpdateSiteMetadataParams {
377
+ siteId: string;
378
+ clients: {
379
+ suiClient: SuiClient;
380
+ queryClient: QueryClient;
381
+ walrusClient: WalrusClient;
382
+ };
383
+ currentAccount: WalletAccount | null;
384
+ signAndExecuteTransaction: ISignAndExecuteTransaction;
385
+ sponsorConfig?: ISponsorConfig;
386
+ }
387
+ interface UpdateSiteMetadataInput {
388
+ siteName: string;
389
+ metadata: WSResources['metadata'];
390
+ }
391
+ declare function useUpdateSiteMetadata({
392
+ siteId,
393
+ clients: {
394
+ suiClient,
395
+ queryClient,
396
+ walrusClient
397
+ },
398
+ currentAccount,
399
+ signAndExecuteTransaction,
400
+ sponsorConfig
401
+ }: UseUpdateSiteMetadataParams): {
402
+ updateSiteMetadata: _tanstack_react_query0.UseMutateAsyncFunction<string, Error, UpdateSiteMetadataInput, unknown>;
403
+ isUpdating: boolean;
404
+ error: Error | null;
405
+ isSuccess: boolean;
406
+ data: string | undefined;
407
+ };
408
+ //#endregion
409
+ //#region src/components/update-metadata-modal/UpdateMetadataModal.d.ts
410
+ /**
411
+ * Props for the UpdateMetadataModal component.
412
+ *
413
+ * @example
414
+ * ```tsx
415
+ * <UpdateMetadataModal
416
+ * siteId="0x123..."
417
+ * isOpen={isOpen}
418
+ * onOpenChange={setIsOpen}
419
+ * clients={{ suiClient, queryClient, walrusClient }}
420
+ * currentAccount={currentAccount}
421
+ * signAndExecuteTransaction={signAndExecuteTransaction}
422
+ * />
423
+ * ```
424
+ */
425
+ interface UpdateMetadataModalProps {
426
+ /** The object ID of the published Walrus site to update */
427
+ siteId: string;
428
+ /** Controls the visibility of the modal */
429
+ isOpen: boolean;
430
+ /** Callback when modal open state changes */
431
+ onOpenChange: (open: boolean) => void;
432
+ /** Optional callback when metadata update succeeds. Receives the transaction digest. */
433
+ onSuccess?: (digest: string) => void;
434
+ /** Optional callback when metadata update fails. Receives the error object. */
435
+ onError?: (error: Error) => void;
436
+ /** Object containing Sui, Query, and Walrus clients */
437
+ clients: {
438
+ /** Sui blockchain client for on-chain operations */
439
+ suiClient: SuiClient;
440
+ /** React Query client for data fetching and caching */
441
+ queryClient: QueryClient;
442
+ /** Walrus storage client for blob operations */
443
+ walrusClient: WalrusClient;
444
+ };
445
+ /** Current connected wallet account. Must be non-null to submit updates. */
446
+ currentAccount: UseUpdateSiteMetadataParams['currentAccount'];
447
+ /** Function to sign and execute transactions on the Sui blockchain */
448
+ signAndExecuteTransaction: UseUpdateSiteMetadataParams['signAndExecuteTransaction'];
449
+ /** Optional transaction sponsorship configuration */
450
+ sponsorConfig?: UseUpdateSiteMetadataParams['sponsorConfig'];
451
+ }
452
+ /**
453
+ * UpdateMetadataModal Component
454
+ *
455
+ * A modal dialog component for updating metadata (name, description, project URL, preview image)
456
+ * of an existing Walrus site on the Sui blockchain.
457
+ *
458
+ * ## Features
459
+ * - Updates site name (max 120 chars), description (max 150 chars), project URL, and preview image
460
+ * - Supports image upload (max 5MB) or URL input
461
+ * - Validates wallet connection before allowing submission
462
+ * - Automatically loads current site metadata when opened
463
+ * - Shows loading states and error messages
464
+ *
465
+ * ## Usage
466
+ *
467
+ * ```tsx
468
+ * import { UpdateMetadataModal, isUpdateMetadataModalOpen } from '@cmdoss/walrus-site-builder-react'
469
+ * import { useStore } from '@nanostores/react'
470
+ *
471
+ * function MyComponent() {
472
+ * const isOpen = useStore(isUpdateMetadataModalOpen)
473
+ *
474
+ * return (
475
+ * <UpdateMetadataModal
476
+ * siteId="0x123..."
477
+ * isOpen={isOpen}
478
+ * onOpenChange={isUpdateMetadataModalOpen.set}
479
+ * onSuccess={(digest) => console.log('Updated:', digest)}
480
+ * clients={{ suiClient, queryClient, walrusClient }}
481
+ * currentAccount={currentAccount}
482
+ * signAndExecuteTransaction={signAndExecuteTransaction}
483
+ * />
484
+ * )
485
+ * }
486
+ * ```
487
+ *
488
+ * ## State Management
489
+ *
490
+ * The modal visibility is typically controlled via the `isUpdateMetadataModalOpen` atom:
491
+ *
492
+ * ```tsx
493
+ * import { isUpdateMetadataModalOpen } from '@cmdoss/walrus-site-builder-react'
494
+ *
495
+ * // Open modal
496
+ * isUpdateMetadataModalOpen.set(true)
497
+ *
498
+ * // Close modal
499
+ * isUpdateMetadataModalOpen.set(false)
500
+ * ```
501
+ *
502
+ * @see {@link useUpdateSiteMetadata} - The hook used internally for metadata updates
503
+ * @see {@link useWalrusSiteQuery} - Used to fetch current site data
504
+ */
505
+ declare const UpdateMetadataModal: FC<UpdateMetadataModalProps>;
506
+ //#endregion
375
507
  //#region src/hooks/useEpochDuration.d.ts
376
508
  declare function useEpochDuration(walrusClient: WalrusClient | null): {
377
509
  epochDurationMs: number | null;
@@ -442,40 +574,6 @@ declare function useTransactionExecutor({
442
574
  sponsorConfig
443
575
  }: UseTransactionExecutorParams): any;
444
576
  //#endregion
445
- //#region src/hooks/useUpdateSiteMetadata.d.ts
446
- interface UseUpdateSiteMetadataParams {
447
- siteId: string;
448
- clients: {
449
- suiClient: SuiClient;
450
- queryClient: QueryClient;
451
- walrusClient: WalrusClient;
452
- };
453
- currentAccount: WalletAccount | null;
454
- signAndExecuteTransaction: ISignAndExecuteTransaction;
455
- sponsorConfig?: ISponsorConfig;
456
- }
457
- interface UpdateSiteMetadataInput {
458
- siteName: string;
459
- metadata: WSResources['metadata'];
460
- }
461
- declare function useUpdateSiteMetadata({
462
- siteId,
463
- clients: {
464
- suiClient,
465
- queryClient,
466
- walrusClient
467
- },
468
- currentAccount,
469
- signAndExecuteTransaction,
470
- sponsorConfig
471
- }: UseUpdateSiteMetadataParams): {
472
- updateSiteMetadata: _tanstack_react_query0.UseMutateAsyncFunction<string, Error, UpdateSiteMetadataInput, unknown>;
473
- isUpdating: boolean;
474
- error: Error | null;
475
- isSuccess: boolean;
476
- data: string | undefined;
477
- };
478
- //#endregion
479
577
  //#region src/hooks/useZenFsWorkspace.d.ts
480
578
  declare function useZenFsWorkspace(workspaceDir: string | undefined, mountDir: string | undefined, queryClient: QueryClient): {
481
579
  loading: boolean;
@@ -487,6 +585,7 @@ declare const isDomainDialogOpen: nanostores0.PreinitializedWritableAtom<boolean
487
585
  declare const isAssigningDomain: nanostores0.PreinitializedWritableAtom<boolean> & object;
488
586
  declare const isRegisterSuiNSDomainDialogOpen: nanostores0.PreinitializedWritableAtom<boolean> & object;
489
587
  declare const isExtendTimeDialogOpen: nanostores0.PreinitializedWritableAtom<boolean> & object;
588
+ declare const isUpdateMetadataModalOpen: nanostores0.PreinitializedWritableAtom<boolean> & object;
490
589
  //#endregion
491
590
  //#region src/stores/site-metadata.store.d.ts
492
591
  declare class SiteMetadata$1 {
@@ -523,5 +622,5 @@ declare class SiteMetadata$1 {
523
622
  }
524
623
  declare const siteMetadataStore: SiteMetadata$1;
525
624
  //#endregion
526
- export { Banner, BannerProps, Button, ButtonProps, DeploySteps, DeploymentHandlers, DeploymentStatus, FlickeringGrid, FlickeringGridProps, ISuiNsDomainQuery, Input, InputProps, Label, LabelProps, PublishButton, PublishMenu, PublishModal, SiteMetadata, SiteMetadataUpdate, Stepper, SuiNsDomain, SuiNsDomainDetail, SuiNsModal, Textarea, TextareaProps, UpdateSiteMetadataInput, UseSitePublishingParams, UseTransactionExecutorParams, UseUpdateSiteMetadataParams, isAssigningDomain, isDomainDialogOpen, isExtendTimeDialogOpen, isRegisterSuiNSDomainDialogOpen, siteMetadataStore, sitePublishingStore, useEpochDuration, useSitePublishing, useSuiNsDomainsQuery, useSuiNsRegistration, useTransactionExecutor, useUpdateSiteMetadata, useWalrusSiteQuery, useWalrusSitesQuery, useZenFsWorkspace, useZenfsFilesQuery };
625
+ export { Banner, BannerProps, Button, ButtonProps, DeploySteps, DeploymentHandlers, DeploymentStatus, FlickeringGrid, FlickeringGridProps, ISuiNsDomainQuery, Input, InputProps, Label, LabelProps, PublishButton, PublishMenu, PublishModal, SiteMetadata, SiteMetadataUpdate, Stepper, SuiNsDomain, SuiNsDomainDetail, SuiNsModal, Textarea, TextareaProps, UpdateMetadataModal, UpdateSiteMetadataInput, UseSitePublishingParams, UseTransactionExecutorParams, UseUpdateSiteMetadataParams, isAssigningDomain, isDomainDialogOpen, isExtendTimeDialogOpen, isRegisterSuiNSDomainDialogOpen, isUpdateMetadataModalOpen, siteMetadataStore, sitePublishingStore, useEpochDuration, useSitePublishing, useSuiNsDomainsQuery, useSuiNsRegistration, useTransactionExecutor, useUpdateSiteMetadata, useWalrusSiteQuery, useWalrusSitesQuery, useZenFsWorkspace, useZenfsFilesQuery };
527
626
  //# sourceMappingURL=index.d.ts.map