@rpg-engine/long-bow 0.8.188 → 0.8.190

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.
@@ -47622,195 +47622,6 @@ var EmptyText = /*#__PURE__*/styled.span.withConfig({
47622
47622
  componentId: "sc-1aiauep-17"
47623
47623
  })(["font-family:'Press Start 2P',cursive !important;font-size:0.48rem !important;color:#71717a !important;text-transform:uppercase;letter-spacing:1px;"]);
47624
47624
 
47625
- var MyCharacterListingsPanel = function MyCharacterListingsPanel(_ref) {
47626
- var myCharacterListings = _ref.myCharacterListings,
47627
- totalCount = _ref.totalCount,
47628
- currentPage = _ref.currentPage,
47629
- itemsPerPage = _ref.itemsPerPage,
47630
- onPageChange = _ref.onPageChange,
47631
- onCharacterDelist = _ref.onCharacterDelist,
47632
- atlasJSON = _ref.atlasJSON,
47633
- atlasIMG = _ref.atlasIMG,
47634
- characterAtlasJSON = _ref.characterAtlasJSON,
47635
- characterAtlasIMG = _ref.characterAtlasIMG,
47636
- enableHotkeys = _ref.enableHotkeys;
47637
- var _useState = useState(null),
47638
- delistingListingId = _useState[0],
47639
- setDelistingListingId = _useState[1];
47640
- var itemsContainer = useRef(null);
47641
- useEffect(function () {
47642
- var _itemsContainer$curre;
47643
- (_itemsContainer$curre = itemsContainer.current) == null ? void 0 : _itemsContainer$curre.scrollTo(0, 0);
47644
- }, [currentPage]);
47645
- var handleDelistClick = function handleDelistClick(listingId) {
47646
- setDelistingListingId(listingId);
47647
- };
47648
- var handleDelistConfirm = function handleDelistConfirm() {
47649
- if (delistingListingId) {
47650
- onCharacterDelist(delistingListingId);
47651
- setDelistingListingId(null);
47652
- enableHotkeys == null ? void 0 : enableHotkeys();
47653
- }
47654
- };
47655
- var getFormattedDate = function getFormattedDate(date) {
47656
- return new Date(date).toLocaleDateString();
47657
- };
47658
- return React.createElement(React.Fragment, null, delistingListingId && React.createElement(ConfirmModal, {
47659
- onClose: function onClose() {
47660
- setDelistingListingId(null);
47661
- enableHotkeys == null ? void 0 : enableHotkeys();
47662
- },
47663
- onConfirm: handleDelistConfirm,
47664
- message: "Are you sure you want to delist this character?"
47665
- }), React.createElement(ListingsContainer$1, {
47666
- id: "MarketContainer",
47667
- ref: itemsContainer
47668
- }, myCharacterListings.length === 0 ? React.createElement(EmptyState$6, null, React.createElement(User, {
47669
- width: 32,
47670
- height: 32
47671
- }), React.createElement(EmptyText$1, null, "You have no listed characters."), React.createElement(EmptySubtext, null, "Use the \"List Character\" tab to list a character for sale.")) : React.createElement(ListingsGrid$1, null, myCharacterListings.map(function (listing) {
47672
- return React.createElement(CharacterListingCard$1, {
47673
- key: listing._id
47674
- }, React.createElement(CharacterSprite$1, null, React.createElement(SpriteFromAtlas, {
47675
- atlasIMG: characterAtlasIMG,
47676
- atlasJSON: characterAtlasJSON,
47677
- spriteKey: listing.characterSnapshot.textureKey + "/down/standing/0.png",
47678
- imgScale: 3,
47679
- height: 64,
47680
- width: 64,
47681
- centered: true
47682
- })), React.createElement(CharacterInfo$1, null, React.createElement(CharacterName$3, null, listing.characterSnapshot.name || 'Unknown'), React.createElement(CharacterMeta$1, null, "Level ", listing.characterSnapshot.level), React.createElement(ListingPrice$1, null, React.createElement(DCCoinWrapper$4, null, React.createElement(SpriteFromAtlas, {
47683
- atlasIMG: atlasIMG,
47684
- atlasJSON: atlasJSON,
47685
- spriteKey: "others/definya-coin.png",
47686
- imgScale: 1,
47687
- centered: true
47688
- })), formatDCAmount(listing.price), " DC"), React.createElement(ListingMeta, null, "Listed ", getFormattedDate(listing.createdAt)), listing.isBeingBought && React.createElement(ListingStatus, {
47689
- "$status": "pending"
47690
- }, "Sale Pending")), React.createElement(ActionButton, {
47691
- icon: React.createElement(Delete, {
47692
- width: 16,
47693
- height: 16
47694
- }),
47695
- label: "Delist",
47696
- onClick: function onClick() {
47697
- return handleDelistClick(listing._id);
47698
- },
47699
- iconColor: "#ef4444",
47700
- disabled: listing.isBeingBought
47701
- }));
47702
- }))), totalCount > itemsPerPage && React.createElement(PagerFooter$2, null, React.createElement(Pagination$1, null, Array.from({
47703
- length: Math.ceil(totalCount / itemsPerPage)
47704
- }, function (_, i) {
47705
- return i + 1;
47706
- }).map(function (page) {
47707
- return React.createElement(PageButton, {
47708
- key: page,
47709
- "$active": currentPage === page,
47710
- type: "button",
47711
- onClick: function onClick() {
47712
- return onPageChange(page);
47713
- }
47714
- }, page);
47715
- }))));
47716
- };
47717
- var ListingsContainer$1 = /*#__PURE__*/styled.div.withConfig({
47718
- displayName: "MyCharacterListingsPanel__ListingsContainer",
47719
- componentId: "sc-su21a6-0"
47720
- })(["overflow-y:scroll;overflow-x:hidden;height:390px;width:95%;margin:1rem auto 0 auto;background:rgba(0,0,0,0.2);border:1px solid rgba(255,255,255,0.05);border-radius:4px;@media (max-width:950px){height:250px;}"]);
47721
- var ListingsGrid$1 = /*#__PURE__*/styled.div.withConfig({
47722
- displayName: "MyCharacterListingsPanel__ListingsGrid",
47723
- componentId: "sc-su21a6-1"
47724
- })(["display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;padding:12px;"]);
47725
- var CharacterListingCard$1 = /*#__PURE__*/styled.div.withConfig({
47726
- displayName: "MyCharacterListingsPanel__CharacterListingCard",
47727
- componentId: "sc-su21a6-2"
47728
- })(["display:flex;flex-direction:column;align-items:center;gap:8px;background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.08);border-radius:8px;padding:12px;"]);
47729
- var CharacterSprite$1 = /*#__PURE__*/styled.div.withConfig({
47730
- displayName: "MyCharacterListingsPanel__CharacterSprite",
47731
- componentId: "sc-su21a6-3"
47732
- })(["display:flex;align-items:center;justify-content:center;image-rendering:pixelated;"]);
47733
- var CharacterInfo$1 = /*#__PURE__*/styled.div.withConfig({
47734
- displayName: "MyCharacterListingsPanel__CharacterInfo",
47735
- componentId: "sc-su21a6-4"
47736
- })(["display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;"]);
47737
- var CharacterName$3 = /*#__PURE__*/styled.span.withConfig({
47738
- displayName: "MyCharacterListingsPanel__CharacterName",
47739
- componentId: "sc-su21a6-5"
47740
- })(["font-family:'Press Start 2P',cursive;font-size:0.55rem;color:#f3f4f6;text-transform:uppercase;letter-spacing:0.5px;"]);
47741
- var CharacterMeta$1 = /*#__PURE__*/styled.span.withConfig({
47742
- displayName: "MyCharacterListingsPanel__CharacterMeta",
47743
- componentId: "sc-su21a6-6"
47744
- })(["font-size:0.45rem;color:#888;text-transform:uppercase;letter-spacing:0.5px;"]);
47745
- var ListingPrice$1 = /*#__PURE__*/styled.div.withConfig({
47746
- displayName: "MyCharacterListingsPanel__ListingPrice",
47747
- componentId: "sc-su21a6-7"
47748
- })(["display:flex;align-items:center;gap:6px;font-family:'Press Start 2P',cursive;font-size:0.5rem;color:#fef08a;"]);
47749
- var DCCoinWrapper$4 = /*#__PURE__*/styled.span.withConfig({
47750
- displayName: "MyCharacterListingsPanel__DCCoinWrapper",
47751
- componentId: "sc-su21a6-8"
47752
- })(["display:flex;align-items:center;justify-content:center;flex-shrink:0;"]);
47753
- var ListingMeta = /*#__PURE__*/styled.span.withConfig({
47754
- displayName: "MyCharacterListingsPanel__ListingMeta",
47755
- componentId: "sc-su21a6-9"
47756
- })(["font-size:0.38rem;color:#52525b;text-transform:uppercase;letter-spacing:0.5px;"]);
47757
- var ListingStatus = /*#__PURE__*/styled.span.withConfig({
47758
- displayName: "MyCharacterListingsPanel__ListingStatus",
47759
- componentId: "sc-su21a6-10"
47760
- })(["font-size:0.38rem;padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:0.5px;", ""], function (_ref2) {
47761
- var $status = _ref2.$status;
47762
- return $status === 'pending' ? "\n background: rgba(239, 68, 68, 0.2);\n border: 1px solid rgba(239, 68, 68, 0.4);\n color: #ef4444;\n " : "\n background: rgba(34, 197, 94, 0.2);\n border: 1px solid rgba(34, 197, 94, 0.4);\n color: #22c55e;\n ";
47763
- });
47764
- var ActionButton = /*#__PURE__*/styled(CTAButton).withConfig({
47765
- displayName: "MyCharacterListingsPanel__ActionButton",
47766
- componentId: "sc-su21a6-11"
47767
- })(["padding:6px 12px;height:28px;opacity:", ";pointer-events:", ";span{font-size:0.5rem;}svg{font-size:1rem;}"], function (_ref3) {
47768
- var disabled = _ref3.disabled;
47769
- return disabled ? 0.5 : 1;
47770
- }, function (_ref4) {
47771
- var disabled = _ref4.disabled;
47772
- return disabled ? 'none' : 'auto';
47773
- });
47774
- var PagerFooter$2 = /*#__PURE__*/styled.div.withConfig({
47775
- displayName: "MyCharacterListingsPanel__PagerFooter",
47776
- componentId: "sc-su21a6-12"
47777
- })(["display:flex;justify-content:center;align-items:center;padding:8px 0 4px;min-height:36px;width:95%;margin:0 auto;"]);
47778
- var Pagination$1 = /*#__PURE__*/styled.div.withConfig({
47779
- displayName: "MyCharacterListingsPanel__Pagination",
47780
- componentId: "sc-su21a6-13"
47781
- })(["display:flex;gap:6px;"]);
47782
- var PageButton = /*#__PURE__*/styled.button.withConfig({
47783
- displayName: "MyCharacterListingsPanel__PageButton",
47784
- componentId: "sc-su21a6-14"
47785
- })(["padding:6px 10px;font-family:'Press Start 2P',cursive;font-size:0.5rem;border-radius:4px;border:1px solid ", ";background:", ";color:", ";cursor:pointer;transition:border-color 0.15s,background 0.15s,color 0.15s;&:hover{border-color:", ";color:", ";}"], function (_ref5) {
47786
- var $active = _ref5.$active;
47787
- return $active ? '#f59e0b' : 'rgba(255,255,255,0.12)';
47788
- }, function (_ref6) {
47789
- var $active = _ref6.$active;
47790
- return $active ? 'rgba(245,158,11,0.15)' : 'rgba(0,0,0,0.3)';
47791
- }, function (_ref7) {
47792
- var $active = _ref7.$active;
47793
- return $active ? '#f59e0b' : '#777';
47794
- }, function (_ref8) {
47795
- var $active = _ref8.$active;
47796
- return $active ? '#f59e0b' : 'rgba(255,255,255,0.3)';
47797
- }, function (_ref9) {
47798
- var $active = _ref9.$active;
47799
- return $active ? '#f59e0b' : '#bbb';
47800
- });
47801
- var EmptyState$6 = /*#__PURE__*/styled.div.withConfig({
47802
- displayName: "MyCharacterListingsPanel__EmptyState",
47803
- componentId: "sc-su21a6-15"
47804
- })(["display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;height:100%;min-height:200px;"]);
47805
- var EmptyText$1 = /*#__PURE__*/styled.span.withConfig({
47806
- displayName: "MyCharacterListingsPanel__EmptyText",
47807
- componentId: "sc-su21a6-16"
47808
- })(["font-size:0.55rem;color:#71717a;text-transform:uppercase;letter-spacing:1px;"]);
47809
- var EmptySubtext = /*#__PURE__*/styled.span.withConfig({
47810
- displayName: "MyCharacterListingsPanel__EmptySubtext",
47811
- componentId: "sc-su21a6-17"
47812
- })(["font-size:0.45rem;color:#52525b;text-transform:none;letter-spacing:0.5px;text-align:center;max-width:280px;"]);
47813
-
47814
47625
  var CharacterListingModal = function CharacterListingModal(_ref) {
47815
47626
  var isOpen = _ref.isOpen,
47816
47627
  onClose = _ref.onClose,
@@ -47878,7 +47689,7 @@ var CharacterListingModal = function CharacterListingModal(_ref) {
47878
47689
  onPointerDown: handleClose,
47879
47690
  "aria-label": "Close",
47880
47691
  type: "button"
47881
- }, React.createElement(FaTimes, null))), React.createElement(CharacterList$1, null, eligibleCharacters.length === 0 ? React.createElement(EmptyState$7, null, "No eligible characters to list.") : eligibleCharacters.map(function (character) {
47692
+ }, React.createElement(FaTimes, null))), React.createElement(CharacterList$1, null, eligibleCharacters.length === 0 ? React.createElement(EmptyState$6, null, "No eligible characters to list.") : eligibleCharacters.map(function (character) {
47882
47693
  var isSelected = selectedId === character._id;
47883
47694
  return React.createElement(CharacterRow, {
47884
47695
  key: character._id,
@@ -47904,7 +47715,7 @@ var CharacterListingModal = function CharacterListingModal(_ref) {
47904
47715
  imgScale: 2,
47905
47716
  height: 40,
47906
47717
  width: 40
47907
- })), React.createElement(CharacterInfo$2, null, React.createElement(CharacterName$4, null, character.name || 'Unknown'), React.createElement(CharacterMeta$2, null, "Level ", getLevel(character))));
47718
+ })), React.createElement(CharacterInfo$1, null, React.createElement(CharacterName$3, null, character.name || 'Unknown'), React.createElement(CharacterMeta$1, null, "Level ", getLevel(character))));
47908
47719
  })), React.createElement(PriceSection$1, null, React.createElement(PriceLabel, null, "Set Price (DC)"), React.createElement(PriceRow$1, null, React.createElement(Input, {
47909
47720
  onChange: function onChange(e) {
47910
47721
  return setPrice(e.target.value);
@@ -47924,7 +47735,7 @@ var CharacterListingModal = function CharacterListingModal(_ref) {
47924
47735
  label: "List",
47925
47736
  disabled: !canList,
47926
47737
  onClick: handleListClick
47927
- })), price && Number(price) > 0 && React.createElement(PricePreview, null, React.createElement(DCCoinWrapper$5, null, React.createElement(SpriteFromAtlas, {
47738
+ })), price && Number(price) > 0 && React.createElement(PricePreview, null, React.createElement(DCCoinWrapper$4, null, React.createElement(SpriteFromAtlas, {
47928
47739
  atlasIMG: atlasIMG,
47929
47740
  atlasJSON: atlasJSON,
47930
47741
  spriteKey: "others/definya-coin.png",
@@ -47991,15 +47802,15 @@ var SpriteWrapper$3 = /*#__PURE__*/styled.div.withConfig({
47991
47802
  displayName: "CharacterListingModal__SpriteWrapper",
47992
47803
  componentId: "sc-1uxkx35-9"
47993
47804
  })(["display:flex;align-items:center;justify-content:center;image-rendering:pixelated;flex-shrink:0;width:40px;height:40px;"]);
47994
- var CharacterInfo$2 = /*#__PURE__*/styled.div.withConfig({
47805
+ var CharacterInfo$1 = /*#__PURE__*/styled.div.withConfig({
47995
47806
  displayName: "CharacterListingModal__CharacterInfo",
47996
47807
  componentId: "sc-1uxkx35-10"
47997
47808
  })(["display:flex;flex-direction:column;gap:4px;flex:1;"]);
47998
- var CharacterName$4 = /*#__PURE__*/styled.span.withConfig({
47809
+ var CharacterName$3 = /*#__PURE__*/styled.span.withConfig({
47999
47810
  displayName: "CharacterListingModal__CharacterName",
48000
47811
  componentId: "sc-1uxkx35-11"
48001
47812
  })(["font-family:'Press Start 2P',cursive !important;font-size:0.5rem !important;color:#f3f4f6 !important;"]);
48002
- var CharacterMeta$2 = /*#__PURE__*/styled.span.withConfig({
47813
+ var CharacterMeta$1 = /*#__PURE__*/styled.span.withConfig({
48003
47814
  displayName: "CharacterListingModal__CharacterMeta",
48004
47815
  componentId: "sc-1uxkx35-12"
48005
47816
  })(["font-family:'Press Start 2P',cursive !important;font-size:0.4rem !important;color:#888 !important;text-transform:uppercase;letter-spacing:0.5px;"]);
@@ -48007,7 +47818,7 @@ var PricePreview = /*#__PURE__*/styled.div.withConfig({
48007
47818
  displayName: "CharacterListingModal__PricePreview",
48008
47819
  componentId: "sc-1uxkx35-13"
48009
47820
  })(["display:flex;align-items:center;gap:6px;"]);
48010
- var DCCoinWrapper$5 = /*#__PURE__*/styled.span.withConfig({
47821
+ var DCCoinWrapper$4 = /*#__PURE__*/styled.span.withConfig({
48011
47822
  displayName: "CharacterListingModal__DCCoinWrapper",
48012
47823
  componentId: "sc-1uxkx35-14"
48013
47824
  })(["display:flex;align-items:center;justify-content:center;flex-shrink:0;"]);
@@ -48031,67 +47842,204 @@ var ListBtn = /*#__PURE__*/styled(CTAButton).withConfig({
48031
47842
  displayName: "CharacterListingModal__ListBtn",
48032
47843
  componentId: "sc-1uxkx35-19"
48033
47844
  })(["flex-shrink:0;padding:10px 16px;height:32px;span{font-size:0.6rem;}svg{font-size:1.1rem;}"]);
48034
- var EmptyState$7 = /*#__PURE__*/styled.div.withConfig({
47845
+ var EmptyState$6 = /*#__PURE__*/styled.div.withConfig({
48035
47846
  displayName: "CharacterListingModal__EmptyState",
48036
47847
  componentId: "sc-1uxkx35-20"
48037
47848
  })(["display:flex;align-items:center;justify-content:center;padding:32px 16px;font-family:'Press Start 2P',cursive !important;font-size:0.5rem !important;color:#666 !important;text-transform:uppercase;letter-spacing:1px;"]);
48038
47849
 
48039
- var CharacterListingForm = function CharacterListingForm(_ref) {
48040
- var accountCharacters = _ref.accountCharacters,
48041
- onCharacterList = _ref.onCharacterList,
47850
+ var MyCharacterListingsPanel = function MyCharacterListingsPanel(_ref) {
47851
+ var myCharacterListings = _ref.myCharacterListings,
47852
+ totalCount = _ref.totalCount,
47853
+ currentPage = _ref.currentPage,
47854
+ itemsPerPage = _ref.itemsPerPage,
47855
+ onPageChange = _ref.onPageChange,
47856
+ onCharacterDelist = _ref.onCharacterDelist,
47857
+ accountCharacters = _ref.accountCharacters,
47858
+ _onCharacterList = _ref.onCharacterList,
48042
47859
  atlasJSON = _ref.atlasJSON,
48043
47860
  atlasIMG = _ref.atlasIMG,
48044
47861
  characterAtlasJSON = _ref.characterAtlasJSON,
48045
47862
  characterAtlasIMG = _ref.characterAtlasIMG,
48046
47863
  enableHotkeys = _ref.enableHotkeys,
48047
47864
  disableHotkeys = _ref.disableHotkeys;
48048
- var _useState = useState(false),
48049
- isModalOpen = _useState[0],
48050
- setIsModalOpen = _useState[1];
47865
+ var _useState = useState(null),
47866
+ delistingId = _useState[0],
47867
+ setDelistingId = _useState[1];
47868
+ var _useState2 = useState(false),
47869
+ isListingModalOpen = _useState2[0],
47870
+ setIsListingModalOpen = _useState2[1];
47871
+ var itemsContainer = useRef(null);
47872
+ useEffect(function () {
47873
+ var _itemsContainer$curre;
47874
+ (_itemsContainer$curre = itemsContainer.current) == null ? void 0 : _itemsContainer$curre.scrollTo(0, 0);
47875
+ }, [currentPage]);
47876
+ var handleDelistConfirm = function handleDelistConfirm() {
47877
+ if (delistingId) {
47878
+ onCharacterDelist(delistingId);
47879
+ setDelistingId(null);
47880
+ enableHotkeys == null ? void 0 : enableHotkeys();
47881
+ }
47882
+ };
48051
47883
  var eligibleCount = accountCharacters.filter(function (c) {
48052
47884
  return !c.isListedForSale && !c.tradedAt;
48053
47885
  }).length;
48054
- return React.createElement(Wrapper$2, null, React.createElement(CharacterListingModal, {
48055
- isOpen: isModalOpen,
47886
+ return React.createElement(React.Fragment, null, delistingId && React.createElement(ConfirmModal, {
48056
47887
  onClose: function onClose() {
48057
- return setIsModalOpen(false);
47888
+ setDelistingId(null);
47889
+ enableHotkeys == null ? void 0 : enableHotkeys();
47890
+ },
47891
+ onConfirm: handleDelistConfirm,
47892
+ message: "Are you sure you want to delist this character?"
47893
+ }), React.createElement(CharacterListingModal, {
47894
+ isOpen: isListingModalOpen,
47895
+ onClose: function onClose() {
47896
+ return setIsListingModalOpen(false);
48058
47897
  },
48059
47898
  accountCharacters: accountCharacters,
48060
47899
  atlasJSON: atlasJSON,
48061
47900
  atlasIMG: atlasIMG,
48062
47901
  characterAtlasJSON: characterAtlasJSON,
48063
47902
  characterAtlasIMG: characterAtlasIMG,
48064
- onCharacterList: onCharacterList,
47903
+ onCharacterList: function onCharacterList(id, price) {
47904
+ _onCharacterList(id, price);
47905
+ setIsListingModalOpen(false);
47906
+ },
48065
47907
  enableHotkeys: enableHotkeys,
48066
47908
  disableHotkeys: disableHotkeys
48067
- }), React.createElement(Description$4, null, "List one of your offline characters on the marketplace. Prices are set in DC."), React.createElement(OpenButton, {
47909
+ }), React.createElement(Toolbar, null, React.createElement(ListCharacterBtn, {
48068
47910
  icon: React.createElement(ShoppingBag, {
48069
- width: 20,
48070
- height: 20
47911
+ width: 16,
47912
+ height: 16
48071
47913
  }),
48072
47914
  label: "List a Character" + (eligibleCount > 0 ? " (" + eligibleCount + " eligible)" : ''),
48073
- disabled: eligibleCount === 0,
48074
47915
  onClick: function onClick() {
48075
- return setIsModalOpen(true);
48076
- }
48077
- }), eligibleCount === 0 && React.createElement(NoEligible, null, "No eligible characters to list."));
47916
+ return setIsListingModalOpen(true);
47917
+ },
47918
+ disabled: eligibleCount === 0
47919
+ })), React.createElement(ListingsContainer$1, {
47920
+ ref: itemsContainer
47921
+ }, myCharacterListings.length === 0 ? React.createElement(EmptyState$7, null, React.createElement(User, {
47922
+ width: 32,
47923
+ height: 32
47924
+ }), React.createElement(EmptyText$1, null, "No listed characters."), React.createElement(EmptySubtext, null, "Use the \"List Character\" tab to put a character up for sale.")) : React.createElement(ListingsGrid$1, null, myCharacterListings.map(function (listing) {
47925
+ return React.createElement(CharacterListingCard$1, {
47926
+ key: listing._id,
47927
+ "$isBeingBought": listing.isBeingBought
47928
+ }, React.createElement(CharacterSprite$1, null, React.createElement(SpriteFromAtlas, {
47929
+ atlasIMG: characterAtlasIMG,
47930
+ atlasJSON: characterAtlasJSON,
47931
+ spriteKey: listing.characterSnapshot.textureKey + "/down/standing/0.png",
47932
+ imgScale: 3,
47933
+ height: 64,
47934
+ width: 64,
47935
+ centered: true
47936
+ })), React.createElement(CharacterInfo$2, null, React.createElement(CharacterName$4, null, listing.characterSnapshot.name || 'Unknown'), React.createElement(CharacterMeta$2, null, "Lv.", listing.characterSnapshot.level, " \xB7 ", listing.characterSnapshot["class"]), React.createElement(ListingPrice$1, null, React.createElement(DCCoinWrapper$5, null, React.createElement(SpriteFromAtlas, {
47937
+ atlasIMG: atlasIMG,
47938
+ atlasJSON: atlasJSON,
47939
+ spriteKey: "others/definya-coin.png",
47940
+ imgScale: 1,
47941
+ centered: true
47942
+ })), formatDCAmount(listing.price), " DC"), React.createElement(ListingDate, null, "Listed ", new Date(listing.createdAt).toLocaleDateString())), React.createElement(DelistBtn, {
47943
+ icon: React.createElement(Delete, {
47944
+ width: 14,
47945
+ height: 14
47946
+ }),
47947
+ label: "Delist",
47948
+ onClick: function onClick() {
47949
+ return setDelistingId(listing._id);
47950
+ },
47951
+ disabled: listing.isBeingBought
47952
+ }), listing.isBeingBought && React.createElement(PendingBadge, null, "Pending"));
47953
+ }))), totalCount > itemsPerPage && React.createElement(PagerFooter$2, null, React.createElement(Pagination, {
47954
+ currentPage: currentPage,
47955
+ totalPages: Math.ceil(totalCount / itemsPerPage),
47956
+ onPageChange: onPageChange
47957
+ })));
48078
47958
  };
48079
- var Wrapper$2 = /*#__PURE__*/styled.div.withConfig({
48080
- displayName: "CharacterListingForm__Wrapper",
48081
- componentId: "sc-fxv1tt-0"
48082
- })(["display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:40px 24px;width:95%;margin:0 auto;"]);
48083
- var Description$4 = /*#__PURE__*/styled.p.withConfig({
48084
- displayName: "CharacterListingForm__Description",
48085
- componentId: "sc-fxv1tt-1"
48086
- })(["margin:0;font-size:0.5rem;color:#666;text-align:center;line-height:1.6;max-width:320px;"]);
48087
- var OpenButton = /*#__PURE__*/styled(CTAButton).withConfig({
48088
- displayName: "CharacterListingForm__OpenButton",
48089
- componentId: "sc-fxv1tt-2"
48090
- })(["padding:14px 24px;span{font-size:0.65rem;}svg{font-size:1.2rem;}"]);
48091
- var NoEligible = /*#__PURE__*/styled.span.withConfig({
48092
- displayName: "CharacterListingForm__NoEligible",
48093
- componentId: "sc-fxv1tt-3"
48094
- })(["font-size:0.45rem;color:#52525b;text-transform:uppercase;letter-spacing:1px;"]);
47959
+ var ListingsContainer$1 = /*#__PURE__*/styled.div.withConfig({
47960
+ displayName: "MyCharacterListingsPanel__ListingsContainer",
47961
+ componentId: "sc-su21a6-0"
47962
+ })(["overflow-y:scroll;overflow-x:hidden;height:390px;width:95%;margin:1rem auto 0 auto;background:rgba(0,0,0,0.2);border:1px solid rgba(255,255,255,0.05);border-radius:4px;@media (max-width:950px){height:250px;}"]);
47963
+ var ListingsGrid$1 = /*#__PURE__*/styled.div.withConfig({
47964
+ displayName: "MyCharacterListingsPanel__ListingsGrid",
47965
+ componentId: "sc-su21a6-1"
47966
+ })(["display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;padding:12px;"]);
47967
+ var CharacterListingCard$1 = /*#__PURE__*/styled.div.withConfig({
47968
+ displayName: "MyCharacterListingsPanel__CharacterListingCard",
47969
+ componentId: "sc-su21a6-2"
47970
+ })(["display:flex;flex-direction:column;align-items:center;gap:8px;background:rgba(255,255,255,0.03);border:1px solid ", ";border-radius:8px;padding:12px;position:relative;opacity:", ";transition:border-color 0.15s,background 0.15s;&:hover{border-color:", ";background:", ";}"], function (_ref2) {
47971
+ var $isBeingBought = _ref2.$isBeingBought;
47972
+ return $isBeingBought ? 'rgba(239,68,68,0.3)' : 'rgba(255,255,255,0.08)';
47973
+ }, function (_ref3) {
47974
+ var $isBeingBought = _ref3.$isBeingBought;
47975
+ return $isBeingBought ? 0.7 : 1;
47976
+ }, function (_ref4) {
47977
+ var $isBeingBought = _ref4.$isBeingBought;
47978
+ return $isBeingBought ? 'rgba(239,68,68,0.5)' : 'rgba(245,158,11,0.3)';
47979
+ }, function (_ref5) {
47980
+ var $isBeingBought = _ref5.$isBeingBought;
47981
+ return $isBeingBought ? 'rgba(239,68,68,0.04)' : 'rgba(245,158,11,0.04)';
47982
+ });
47983
+ var CharacterSprite$1 = /*#__PURE__*/styled.div.withConfig({
47984
+ displayName: "MyCharacterListingsPanel__CharacterSprite",
47985
+ componentId: "sc-su21a6-3"
47986
+ })(["display:flex;align-items:center;justify-content:center;image-rendering:pixelated;width:64px;height:64px;flex-shrink:0;"]);
47987
+ var CharacterInfo$2 = /*#__PURE__*/styled.div.withConfig({
47988
+ displayName: "MyCharacterListingsPanel__CharacterInfo",
47989
+ componentId: "sc-su21a6-4"
47990
+ })(["display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;width:100%;"]);
47991
+ var CharacterName$4 = /*#__PURE__*/styled.span.withConfig({
47992
+ displayName: "MyCharacterListingsPanel__CharacterName",
47993
+ componentId: "sc-su21a6-5"
47994
+ })(["font-family:'Press Start 2P',cursive !important;font-size:0.55rem !important;color:#f3f4f6 !important;text-transform:uppercase;letter-spacing:0.5px;"]);
47995
+ var CharacterMeta$2 = /*#__PURE__*/styled.span.withConfig({
47996
+ displayName: "MyCharacterListingsPanel__CharacterMeta",
47997
+ componentId: "sc-su21a6-6"
47998
+ })(["font-family:'Press Start 2P',cursive !important;font-size:0.45rem !important;color:#888 !important;text-transform:uppercase;letter-spacing:0.5px;"]);
47999
+ var ListingPrice$1 = /*#__PURE__*/styled.div.withConfig({
48000
+ displayName: "MyCharacterListingsPanel__ListingPrice",
48001
+ componentId: "sc-su21a6-7"
48002
+ })(["display:flex;align-items:center;justify-content:center;gap:4px;font-family:'Press Start 2P',cursive !important;font-size:0.5rem !important;color:#fef08a !important;line-height:1;"]);
48003
+ var DCCoinWrapper$5 = /*#__PURE__*/styled.span.withConfig({
48004
+ displayName: "MyCharacterListingsPanel__DCCoinWrapper",
48005
+ componentId: "sc-su21a6-8"
48006
+ })(["display:flex;align-items:center;justify-content:center;flex-shrink:0;line-height:0;"]);
48007
+ var ListingDate = /*#__PURE__*/styled.span.withConfig({
48008
+ displayName: "MyCharacterListingsPanel__ListingDate",
48009
+ componentId: "sc-su21a6-9"
48010
+ })(["font-family:'Press Start 2P',cursive !important;font-size:0.35rem !important;color:#52525b !important;text-transform:uppercase;letter-spacing:0.5px;"]);
48011
+ var DelistBtn = /*#__PURE__*/styled(CTAButton).withConfig({
48012
+ displayName: "MyCharacterListingsPanel__DelistBtn",
48013
+ componentId: "sc-su21a6-10"
48014
+ })(["width:100%;padding:6px 10px;height:28px;margin-top:2px;span{font-size:0.48rem;}svg{font-size:0.9rem;}"]);
48015
+ var PendingBadge = /*#__PURE__*/styled.span.withConfig({
48016
+ displayName: "MyCharacterListingsPanel__PendingBadge",
48017
+ componentId: "sc-su21a6-11"
48018
+ })(["position:absolute;top:6px;right:6px;background:rgba(239,68,68,0.2);border:1px solid rgba(239,68,68,0.4);border-radius:4px;padding:2px 6px;font-family:'Press Start 2P',cursive !important;font-size:0.35rem !important;color:#ef4444 !important;text-transform:uppercase;letter-spacing:0.5px;"]);
48019
+ var Toolbar = /*#__PURE__*/styled.div.withConfig({
48020
+ displayName: "MyCharacterListingsPanel__Toolbar",
48021
+ componentId: "sc-su21a6-12"
48022
+ })(["width:95%;margin:10px auto 0 auto;display:flex;justify-content:flex-end;"]);
48023
+ var ListCharacterBtn = /*#__PURE__*/styled(CTAButton).withConfig({
48024
+ displayName: "MyCharacterListingsPanel__ListCharacterBtn",
48025
+ componentId: "sc-su21a6-13"
48026
+ })(["padding:8px 16px;height:32px;span{font-size:0.5rem;}svg{font-size:1rem;}"]);
48027
+ var PagerFooter$2 = /*#__PURE__*/styled.div.withConfig({
48028
+ displayName: "MyCharacterListingsPanel__PagerFooter",
48029
+ componentId: "sc-su21a6-14"
48030
+ })(["display:flex;justify-content:center;align-items:center;padding:8px 0 4px;min-height:36px;width:95%;margin:0 auto;"]);
48031
+ var EmptyState$7 = /*#__PURE__*/styled.div.withConfig({
48032
+ displayName: "MyCharacterListingsPanel__EmptyState",
48033
+ componentId: "sc-su21a6-15"
48034
+ })(["display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;height:100%;min-height:200px;"]);
48035
+ var EmptyText$1 = /*#__PURE__*/styled.span.withConfig({
48036
+ displayName: "MyCharacterListingsPanel__EmptyText",
48037
+ componentId: "sc-su21a6-16"
48038
+ })(["font-family:'Press Start 2P',cursive !important;font-size:0.48rem !important;color:#71717a !important;text-transform:uppercase;letter-spacing:1px;"]);
48039
+ var EmptySubtext = /*#__PURE__*/styled.span.withConfig({
48040
+ displayName: "MyCharacterListingsPanel__EmptySubtext",
48041
+ componentId: "sc-su21a6-17"
48042
+ })(["font-family:'Press Start 2P',cursive !important;font-size:0.38rem !important;color:#52525b !important;text-align:center;max-width:260px;line-height:1.6;"]);
48095
48043
 
48096
48044
  var Marketplace = function Marketplace(props) {
48097
48045
  var onClose = props.onClose,
@@ -48274,13 +48222,7 @@ var Marketplace = function Marketplace(props) {
48274
48222
  return setCharacterSubTab('my-listings');
48275
48223
  },
48276
48224
  type: "button"
48277
- }, "My Listings"), React.createElement(CharacterSubTab, {
48278
- "$active": characterSubTab === 'list',
48279
- onClick: function onClick() {
48280
- return setCharacterSubTab('list');
48281
- },
48282
- type: "button"
48283
- }, "List Character")), characterSubTab === 'browse' && React.createElement(CharacterMarketplacePanel, {
48225
+ }, "My Listings")), characterSubTab === 'browse' && React.createElement(CharacterMarketplacePanel, {
48284
48226
  characterListings: characterListings != null ? characterListings : [],
48285
48227
  totalCount: characterListingsTotal != null ? characterListingsTotal : 0,
48286
48228
  currentPage: characterListingsPage != null ? characterListingsPage : 1,
@@ -48303,13 +48245,6 @@ var Marketplace = function Marketplace(props) {
48303
48245
  itemsPerPage: 10,
48304
48246
  onPageChange: onMyCharacterListingsPageChange != null ? onMyCharacterListingsPageChange : function () {},
48305
48247
  onCharacterDelist: onCharacterDelist != null ? onCharacterDelist : function () {},
48306
- atlasJSON: props.atlasJSON,
48307
- atlasIMG: props.atlasIMG,
48308
- characterAtlasJSON: characterAtlasJSON != null ? characterAtlasJSON : props.atlasJSON,
48309
- characterAtlasIMG: characterAtlasIMG != null ? characterAtlasIMG : props.atlasIMG,
48310
- enableHotkeys: props.enableHotkeys,
48311
- disableHotkeys: props.disableHotkeys
48312
- }), characterSubTab === 'list' && React.createElement(CharacterListingForm, {
48313
48248
  accountCharacters: accountCharacters != null ? accountCharacters : [],
48314
48249
  onCharacterList: onCharacterList != null ? onCharacterList : function () {},
48315
48250
  atlasJSON: props.atlasJSON,
@@ -48432,7 +48367,7 @@ var CharacterMarketplaceRows = function CharacterMarketplaceRows(_ref) {
48432
48367
  atlasJSON: atlasJSON,
48433
48368
  spriteKey: "others/definya-coin.png",
48434
48369
  imgScale: 1
48435
- })), React.createElement(DCPrice$2, null, formatDCAmount(price))), isBeingBought && React.createElement(PendingBadge, null, "Sale Pending"))), React.createElement(ActionSection$2, null, React.createElement(CTAButton, {
48370
+ })), React.createElement(DCPrice$2, null, formatDCAmount(price))), isBeingBought && React.createElement(PendingBadge$1, null, "Sale Pending"))), React.createElement(ActionSection$2, null, React.createElement(CTAButton, {
48436
48371
  icon: onCharacterBuy ? React.createElement(Coins, {
48437
48372
  width: 18,
48438
48373
  height: 18
@@ -48491,7 +48426,7 @@ var ActionSection$2 = /*#__PURE__*/styled.div.withConfig({
48491
48426
  displayName: "CharacterMarketplaceRows__ActionSection",
48492
48427
  componentId: "sc-1pxkdig-10"
48493
48428
  })(["flex-shrink:0;margin-left:0.75rem;"]);
48494
- var PendingBadge = /*#__PURE__*/styled.span.withConfig({
48429
+ var PendingBadge$1 = /*#__PURE__*/styled.span.withConfig({
48495
48430
  displayName: "CharacterMarketplaceRows__PendingBadge",
48496
48431
  componentId: "sc-1pxkdig-11"
48497
48432
  })(["font-size:0.38rem;padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:0.5px;background:rgba(239,68,68,0.2);border:1px solid rgba(239,68,68,0.4);color:#ef4444;margin-top:4px;"]);
@@ -48545,6 +48480,63 @@ var OtherListingRow = /*#__PURE__*/styled.div.withConfig({
48545
48480
  componentId: "sc-1pxkdig-15"
48546
48481
  })(["opacity:0.85;&:hover{opacity:1;}"]);
48547
48482
 
48483
+ var CharacterListingForm = function CharacterListingForm(_ref) {
48484
+ var accountCharacters = _ref.accountCharacters,
48485
+ onCharacterList = _ref.onCharacterList,
48486
+ atlasJSON = _ref.atlasJSON,
48487
+ atlasIMG = _ref.atlasIMG,
48488
+ characterAtlasJSON = _ref.characterAtlasJSON,
48489
+ characterAtlasIMG = _ref.characterAtlasIMG,
48490
+ enableHotkeys = _ref.enableHotkeys,
48491
+ disableHotkeys = _ref.disableHotkeys;
48492
+ var _useState = useState(false),
48493
+ isModalOpen = _useState[0],
48494
+ setIsModalOpen = _useState[1];
48495
+ var eligibleCount = accountCharacters.filter(function (c) {
48496
+ return !c.isListedForSale && !c.tradedAt;
48497
+ }).length;
48498
+ return React.createElement(Wrapper$2, null, React.createElement(CharacterListingModal, {
48499
+ isOpen: isModalOpen,
48500
+ onClose: function onClose() {
48501
+ return setIsModalOpen(false);
48502
+ },
48503
+ accountCharacters: accountCharacters,
48504
+ atlasJSON: atlasJSON,
48505
+ atlasIMG: atlasIMG,
48506
+ characterAtlasJSON: characterAtlasJSON,
48507
+ characterAtlasIMG: characterAtlasIMG,
48508
+ onCharacterList: onCharacterList,
48509
+ enableHotkeys: enableHotkeys,
48510
+ disableHotkeys: disableHotkeys
48511
+ }), React.createElement(Description$4, null, "List one of your offline characters on the marketplace. Prices are set in DC."), React.createElement(OpenButton, {
48512
+ icon: React.createElement(ShoppingBag, {
48513
+ width: 20,
48514
+ height: 20
48515
+ }),
48516
+ label: "List a Character" + (eligibleCount > 0 ? " (" + eligibleCount + " eligible)" : ''),
48517
+ disabled: eligibleCount === 0,
48518
+ onClick: function onClick() {
48519
+ return setIsModalOpen(true);
48520
+ }
48521
+ }), eligibleCount === 0 && React.createElement(NoEligible, null, "No eligible characters to list."));
48522
+ };
48523
+ var Wrapper$2 = /*#__PURE__*/styled.div.withConfig({
48524
+ displayName: "CharacterListingForm__Wrapper",
48525
+ componentId: "sc-fxv1tt-0"
48526
+ })(["display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:40px 24px;width:95%;margin:0 auto;"]);
48527
+ var Description$4 = /*#__PURE__*/styled.p.withConfig({
48528
+ displayName: "CharacterListingForm__Description",
48529
+ componentId: "sc-fxv1tt-1"
48530
+ })(["margin:0;font-size:0.5rem;color:#666;text-align:center;line-height:1.6;max-width:320px;"]);
48531
+ var OpenButton = /*#__PURE__*/styled(CTAButton).withConfig({
48532
+ displayName: "CharacterListingForm__OpenButton",
48533
+ componentId: "sc-fxv1tt-2"
48534
+ })(["padding:14px 24px;span{font-size:0.65rem;}svg{font-size:1.2rem;}"]);
48535
+ var NoEligible = /*#__PURE__*/styled.span.withConfig({
48536
+ displayName: "CharacterListingForm__NoEligible",
48537
+ componentId: "sc-fxv1tt-3"
48538
+ })(["font-size:0.45rem;color:#52525b;text-transform:uppercase;letter-spacing:1px;"]);
48539
+
48548
48540
  var TabBody = function TabBody(_ref) {
48549
48541
  var id = _ref.id,
48550
48542
  children = _ref.children,