@rpg-engine/long-bow 0.8.135 → 0.8.137

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.
@@ -5,7 +5,7 @@ import { v4 } from 'uuid';
5
5
  import { GRID_WIDTH, GRID_HEIGHT, ShortcutType, getItemTextureKeyPath, ItemContainerType, ItemType, DepotSocketEvents, ItemSocketEvents, ItemSocketEventsDisplayLabels, ActionsForInventory, ActionsForEquipmentSet, ActionsForLoot, ActionsForMapContainer, ItemQualityLevel, ItemRarities, ItemSubType, isMobile, TaskType, TaskStatus, isMobileOrTablet, RewardType, ItemSlotType, NPCSubtype, EntityAttackType, NPCAlignment, VideoGuideCategory, VideoGuideLanguage, CharacterClass, QuestStatus, getLevelFromXP, getSkillConstants, getLevelFromSPTiered, getXPForLevel, getSPForLevelTiered, MetadataType, PurchaseType, UserAccountTypes, PaymentCurrency, PeriodOfDay } from '@rpg-engine/shared';
6
6
  import dayjs from 'dayjs';
7
7
  import { ErrorBoundary as ErrorBoundary$1 } from 'react-error-boundary';
8
- import { FaTimes, FaDiscord, FaWhatsapp, FaSearch, FaThumbtack, FaBoxOpen, FaChevronLeft, FaChevronRight, FaClipboardList, FaChevronUp, FaChevronDown, FaReddit, FaTrash, FaShoppingBag, FaInfoCircle, FaCartPlus, FaArrowLeft, FaHistory, FaWallet, FaShoppingCart } from 'react-icons/fa';
8
+ import { FaTimes, FaDiscord, FaWhatsapp, FaSearch, FaThumbtack, FaBoxOpen, FaChevronLeft, FaChevronRight, FaClipboardList, FaPaperPlane, FaShoppingCart, FaChevronUp, FaChevronDown, FaReddit, FaTrash, FaShoppingBag, FaInfoCircle, FaCartPlus, FaArrowLeft, FaHistory, FaWallet } from 'react-icons/fa';
9
9
  import { RxMagnifyingGlass, RxCross2 } from 'react-icons/rx';
10
10
  import { IoMdContract, IoMdExpand } from 'react-icons/io';
11
11
  import Draggable from 'react-draggable';
@@ -30185,6 +30185,739 @@ var TaskTitle$1 = /*#__PURE__*/styled.h2.withConfig({
30185
30185
  return props.isMobile ? '4px 0' : '8px 0';
30186
30186
  });
30187
30187
 
30188
+ var UI_BREAKPOINT_MOBILE = '950px';
30189
+ var UI_BREAKPOINT_SMALL_LAPTOP = '1400px';
30190
+
30191
+ var InternalTabs = function InternalTabs(_ref) {
30192
+ var _tabs$, _tabs$find;
30193
+ var tabs = _ref.tabs,
30194
+ _ref$activeColor = _ref.activeColor,
30195
+ activeColor = _ref$activeColor === void 0 ? '#fef08a' : _ref$activeColor,
30196
+ _ref$activeTextColor = _ref.activeTextColor,
30197
+ activeTextColor = _ref$activeTextColor === void 0 ? '#000000' : _ref$activeTextColor,
30198
+ _ref$inactiveColor = _ref.inactiveColor,
30199
+ inactiveColor = _ref$inactiveColor === void 0 ? '#6b7280' : _ref$inactiveColor,
30200
+ _ref$borderColor = _ref.borderColor,
30201
+ borderColor = _ref$borderColor === void 0 ? '#f59e0b' : _ref$borderColor,
30202
+ _ref$hoverColor = _ref.hoverColor,
30203
+ hoverColor = _ref$hoverColor === void 0 ? '#fef3c7' : _ref$hoverColor,
30204
+ onTabChange = _ref.onTabChange,
30205
+ externalActiveTab = _ref.activeTab;
30206
+ var _useState = useState((_tabs$ = tabs[0]) == null ? void 0 : _tabs$.id),
30207
+ internalActiveTab = _useState[0],
30208
+ setInternalActiveTab = _useState[1];
30209
+ var activeTabId = externalActiveTab != null ? externalActiveTab : internalActiveTab;
30210
+ var handleTabClick = function handleTabClick(tabId) {
30211
+ setInternalActiveTab(tabId);
30212
+ onTabChange == null ? void 0 : onTabChange(tabId);
30213
+ };
30214
+ return React.createElement(TableWrapper, null, React.createElement(TabHeader, {
30215
+ borderColor: borderColor
30216
+ }, tabs.map(function (tab) {
30217
+ return React.createElement(TabButton, {
30218
+ key: tab.id,
30219
+ active: activeTabId === tab.id,
30220
+ activeColor: activeColor,
30221
+ activeTextColor: activeTextColor,
30222
+ inactiveColor: inactiveColor,
30223
+ borderColor: borderColor,
30224
+ hoverColor: hoverColor,
30225
+ onClick: function onClick() {
30226
+ return handleTabClick(tab.id);
30227
+ }
30228
+ }, tab.title);
30229
+ })), React.createElement(ContentWrapper, null, (_tabs$find = tabs.find(function (tab) {
30230
+ return tab.id === activeTabId;
30231
+ })) == null ? void 0 : _tabs$find.content));
30232
+ };
30233
+ var TableWrapper = /*#__PURE__*/styled.div.withConfig({
30234
+ displayName: "InternalTabs__TableWrapper",
30235
+ componentId: "sc-ldufv0-0"
30236
+ })(["width:100%;"]);
30237
+ var TabHeader = /*#__PURE__*/styled.div.withConfig({
30238
+ displayName: "InternalTabs__TabHeader",
30239
+ componentId: "sc-ldufv0-1"
30240
+ })(["display:flex;border-bottom:1px solid ", ";"], function (props) {
30241
+ return props.borderColor;
30242
+ });
30243
+ var TabButton = /*#__PURE__*/styled.button.withConfig({
30244
+ displayName: "InternalTabs__TabButton",
30245
+ componentId: "sc-ldufv0-2"
30246
+ })(["flex:1;padding:0.25rem 0.5rem;font-size:0.75rem;font-weight:500;border-right:1px solid ", ";background-color:", ";color:", ";white-space:nowrap;overflow:hidden;text-overflow:ellipsis;@media (min-width:480px){padding:0.375rem 0.75rem;font-size:0.8125rem;}@media (min-width:", "){padding:0.5rem 1rem;font-size:0.875rem;}&:last-child{border-right:none;}&:hover{background-color:", ";}"], function (props) {
30247
+ return props.borderColor;
30248
+ }, function (props) {
30249
+ return props.active ? props.activeColor : 'transparent';
30250
+ }, function (props) {
30251
+ return props.active ? props.activeTextColor : props.inactiveColor;
30252
+ }, UI_BREAKPOINT_MOBILE, function (props) {
30253
+ return props.active ? props.activeColor : props.hoverColor;
30254
+ });
30255
+ var ContentWrapper = /*#__PURE__*/styled.div.withConfig({
30256
+ displayName: "InternalTabs__ContentWrapper",
30257
+ componentId: "sc-ldufv0-3"
30258
+ })(["width:100%;"]);
30259
+
30260
+ var Pagination = function Pagination(_ref) {
30261
+ var currentPage = _ref.currentPage,
30262
+ totalPages = _ref.totalPages,
30263
+ onPageChange = _ref.onPageChange,
30264
+ className = _ref.className;
30265
+ return React.createElement(Container$j, {
30266
+ className: className
30267
+ }, React.createElement(PaginationButton$1, {
30268
+ onClick: function onClick() {
30269
+ return onPageChange(Math.max(1, currentPage - 1));
30270
+ },
30271
+ disabled: currentPage === 1
30272
+ }, React.createElement(FaChevronLeft, {
30273
+ size: 12
30274
+ })), React.createElement(PageInfo$1, null, "Page ", currentPage, " of ", totalPages), React.createElement(PaginationButton$1, {
30275
+ onClick: function onClick() {
30276
+ return onPageChange(Math.min(totalPages, currentPage + 1));
30277
+ },
30278
+ disabled: currentPage === totalPages
30279
+ }, React.createElement(FaChevronRight, {
30280
+ size: 12
30281
+ })));
30282
+ };
30283
+ var Container$j = /*#__PURE__*/styled.div.withConfig({
30284
+ displayName: "Pagination__Container",
30285
+ componentId: "sc-3k4m4u-0"
30286
+ })(["display:flex;align-items:center;justify-content:center;gap:16px;padding:8px;"]);
30287
+ var PaginationButton$1 = /*#__PURE__*/styled.button.withConfig({
30288
+ displayName: "Pagination__PaginationButton",
30289
+ componentId: "sc-3k4m4u-1"
30290
+ })(["background:none;border:none;color:", ";cursor:", ";opacity:", ";padding:4px;display:flex;align-items:center;justify-content:center;transition:opacity 0.2s;&:hover:not(:disabled){opacity:1;}"], function (props) {
30291
+ return props.disabled ? uiColors.darkGray : uiColors.yellow;
30292
+ }, function (props) {
30293
+ return props.disabled ? 'not-allowed' : 'pointer';
30294
+ }, function (props) {
30295
+ return props.disabled ? 0.5 : 0.8;
30296
+ });
30297
+ var PageInfo$1 = /*#__PURE__*/styled.div.withConfig({
30298
+ displayName: "Pagination__PageInfo",
30299
+ componentId: "sc-3k4m4u-2"
30300
+ })(["color:", ";font-size:0.8rem;font-family:'Press Start 2P',cursive;"], uiColors.lightGray);
30301
+
30302
+ var TRANSACTION_TYPE_LABELS = {
30303
+ Purchase: 'Purchase',
30304
+ Transfer: 'Transfer',
30305
+ MarketplaceSale: 'Mkt Sale',
30306
+ MarketplacePurchase: 'Mkt Buy',
30307
+ StorePurchase: 'Store',
30308
+ Fee: 'Fee',
30309
+ Refund: 'Refund',
30310
+ AdminAdjustment: 'Admin'
30311
+ };
30312
+ var TRANSACTION_TYPE_OPTIONS = [{
30313
+ value: '',
30314
+ label: 'All Types'
30315
+ }, {
30316
+ value: 'Purchase',
30317
+ label: 'Purchase'
30318
+ }, {
30319
+ value: 'Transfer',
30320
+ label: 'Transfer'
30321
+ }, {
30322
+ value: 'MarketplaceSale',
30323
+ label: 'Marketplace Sale'
30324
+ }, {
30325
+ value: 'MarketplacePurchase',
30326
+ label: 'Marketplace Buy'
30327
+ }, {
30328
+ value: 'StorePurchase',
30329
+ label: 'Store Purchase'
30330
+ }, {
30331
+ value: 'Fee',
30332
+ label: 'Fee'
30333
+ }, {
30334
+ value: 'Refund',
30335
+ label: 'Refund'
30336
+ }, {
30337
+ value: 'AdminAdjustment',
30338
+ label: 'Admin Adjustment'
30339
+ }];
30340
+ var DCHistoryPanel = function DCHistoryPanel(_ref) {
30341
+ var transactions = _ref.transactions,
30342
+ totalPages = _ref.totalPages,
30343
+ currentPage = _ref.currentPage,
30344
+ loading = _ref.loading,
30345
+ onRequestHistory = _ref.onRequestHistory;
30346
+ var _React$useState = React.useState(''),
30347
+ selectedType = _React$useState[0],
30348
+ setSelectedType = _React$useState[1];
30349
+ // Auto-load on first mount (when History tab is opened)
30350
+ React.useEffect(function () {
30351
+ onRequestHistory(1);
30352
+ // eslint-disable-next-line react-hooks/exhaustive-deps
30353
+ }, []);
30354
+ var handleTypeChange = function handleTypeChange(e) {
30355
+ var value = e.target.value;
30356
+ setSelectedType(value);
30357
+ onRequestHistory(1, value || undefined);
30358
+ };
30359
+ var handlePageChange = function handlePageChange(page) {
30360
+ onRequestHistory(page, selectedType || undefined);
30361
+ };
30362
+ var formatDate = function formatDate(dateStr) {
30363
+ var d = new Date(dateStr);
30364
+ return d.getMonth() + 1 + "/" + d.getDate() + "/" + String(d.getFullYear()).slice(-2);
30365
+ };
30366
+ return React.createElement(PanelContainer, null, React.createElement(FilterRow, null, React.createElement(FilterLabel, null, "Filter:"), React.createElement(TypeSelect, {
30367
+ value: selectedType,
30368
+ onChange: handleTypeChange
30369
+ }, TRANSACTION_TYPE_OPTIONS.map(function (opt) {
30370
+ return React.createElement("option", {
30371
+ key: opt.value,
30372
+ value: opt.value
30373
+ }, opt.label);
30374
+ }))), loading && React.createElement(LoadingRow, null, React.createElement(Spinner, null), React.createElement("span", null, "Loading...")), !loading && transactions.length === 0 && React.createElement(EmptyMessage, null, "No transactions found."), !loading && transactions.length > 0 && React.createElement(TransactionList, null, transactions.map(function (tx) {
30375
+ var _TRANSACTION_TYPE_LAB, _tx$note;
30376
+ var isCredit = tx.amount > 0;
30377
+ var label = (_TRANSACTION_TYPE_LAB = TRANSACTION_TYPE_LABELS[tx.type]) != null ? _TRANSACTION_TYPE_LAB : tx.type;
30378
+ var subtitle = (_tx$note = tx.note) != null ? _tx$note : tx.relatedCharacterName ? tx.relatedCharacterName : '';
30379
+ return React.createElement(TransactionRow, {
30380
+ key: tx._id
30381
+ }, React.createElement(TxLeft, null, React.createElement(TxType, null, label), subtitle ? React.createElement(TxNote, null, subtitle) : null), React.createElement(TxRight, null, React.createElement(TxAmount, {
30382
+ "$credit": isCredit
30383
+ }, isCredit ? '+' : '', tx.amount, " DC"), React.createElement(TxDate, null, formatDate(tx.createdAt))));
30384
+ })), totalPages > 1 && React.createElement(Pagination, {
30385
+ currentPage: currentPage,
30386
+ totalPages: totalPages,
30387
+ onPageChange: handlePageChange
30388
+ }));
30389
+ };
30390
+ var PanelContainer = /*#__PURE__*/styled.div.withConfig({
30391
+ displayName: "DCHistoryPanel__PanelContainer",
30392
+ componentId: "sc-debjdj-0"
30393
+ })(["display:flex;flex-direction:column;gap:6px;padding:4px 0;"]);
30394
+ var FilterRow = /*#__PURE__*/styled.div.withConfig({
30395
+ displayName: "DCHistoryPanel__FilterRow",
30396
+ componentId: "sc-debjdj-1"
30397
+ })(["display:flex;align-items:center;gap:8px;margin-bottom:2px;"]);
30398
+ var FilterLabel = /*#__PURE__*/styled.span.withConfig({
30399
+ displayName: "DCHistoryPanel__FilterLabel",
30400
+ componentId: "sc-debjdj-2"
30401
+ })(["font-size:7px;color:#f59e0b;font-family:'Press Start 2P',cursive;white-space:nowrap;"]);
30402
+ var TypeSelect = /*#__PURE__*/styled.select.withConfig({
30403
+ displayName: "DCHistoryPanel__TypeSelect",
30404
+ componentId: "sc-debjdj-3"
30405
+ })(["background:rgba(0,0,0,0.7);border:1px solid rgba(245,158,11,0.4);border-radius:3px;color:#f59e0b;font-size:7px;font-family:'Press Start 2P',cursive;padding:3px 5px;cursor:pointer;outline:none;flex:1;option{background:#1a1a2e;color:#f59e0b;}&:hover{border-color:#f59e0b;}&:focus{border-color:#f59e0b;box-shadow:0 0 0 1px rgba(245,158,11,0.3);}"]);
30406
+ var TransactionList = /*#__PURE__*/styled.div.withConfig({
30407
+ displayName: "DCHistoryPanel__TransactionList",
30408
+ componentId: "sc-debjdj-4"
30409
+ })(["display:flex;flex-direction:column;gap:3px;max-height:260px;overflow-y:auto;&::-webkit-scrollbar{width:4px;}&::-webkit-scrollbar-track{background:rgba(0,0,0,0.3);}&::-webkit-scrollbar-thumb{background:rgba(245,158,11,0.4);border-radius:2px;}"]);
30410
+ var TransactionRow = /*#__PURE__*/styled.div.withConfig({
30411
+ displayName: "DCHistoryPanel__TransactionRow",
30412
+ componentId: "sc-debjdj-5"
30413
+ })(["background:rgba(0,0,0,0.35);border:1px solid rgba(245,158,11,0.15);border-radius:2px;padding:5px 7px;display:flex;align-items:center;gap:8px;"]);
30414
+ var TxLeft = /*#__PURE__*/styled.div.withConfig({
30415
+ displayName: "DCHistoryPanel__TxLeft",
30416
+ componentId: "sc-debjdj-6"
30417
+ })(["flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;"]);
30418
+ var TxRight = /*#__PURE__*/styled.div.withConfig({
30419
+ displayName: "DCHistoryPanel__TxRight",
30420
+ componentId: "sc-debjdj-7"
30421
+ })(["display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0;"]);
30422
+ var TxType = /*#__PURE__*/styled.span.withConfig({
30423
+ displayName: "DCHistoryPanel__TxType",
30424
+ componentId: "sc-debjdj-8"
30425
+ })(["font-size:7px;color:#f59e0b;font-family:'Press Start 2P',cursive;"]);
30426
+ var TxAmount = /*#__PURE__*/styled.span.withConfig({
30427
+ displayName: "DCHistoryPanel__TxAmount",
30428
+ componentId: "sc-debjdj-9"
30429
+ })(["font-size:8px;font-family:'Press Start 2P',cursive;color:", ";white-space:nowrap;"], function (_ref2) {
30430
+ var $credit = _ref2.$credit;
30431
+ return $credit ? uiColors.green : uiColors.red;
30432
+ });
30433
+ var TxNote = /*#__PURE__*/styled.span.withConfig({
30434
+ displayName: "DCHistoryPanel__TxNote",
30435
+ componentId: "sc-debjdj-10"
30436
+ })(["font-size:6px;color:", ";font-family:'Press Start 2P',cursive;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;"], uiColors.lightGray);
30437
+ var TxDate = /*#__PURE__*/styled.span.withConfig({
30438
+ displayName: "DCHistoryPanel__TxDate",
30439
+ componentId: "sc-debjdj-11"
30440
+ })(["font-size:6px;color:rgba(255,255,255,0.4);font-family:'Press Start 2P',cursive;white-space:nowrap;"]);
30441
+ var LoadingRow = /*#__PURE__*/styled.div.withConfig({
30442
+ displayName: "DCHistoryPanel__LoadingRow",
30443
+ componentId: "sc-debjdj-12"
30444
+ })(["display:flex;align-items:center;gap:8px;justify-content:center;padding:16px;color:", ";font-size:9px;font-family:'Press Start 2P',cursive;"], uiColors.white);
30445
+ var Spinner = /*#__PURE__*/styled.div.withConfig({
30446
+ displayName: "DCHistoryPanel__Spinner",
30447
+ componentId: "sc-debjdj-13"
30448
+ })(["border:3px solid rgba(255,255,255,0.2);border-radius:50%;border-top:3px solid #f59e0b;width:16px;height:16px;animation:spin 0.8s linear infinite;@keyframes spin{0%{transform:rotate(0deg);}100%{transform:rotate(360deg);}}"]);
30449
+ var EmptyMessage = /*#__PURE__*/styled.div.withConfig({
30450
+ displayName: "DCHistoryPanel__EmptyMessage",
30451
+ componentId: "sc-debjdj-14"
30452
+ })(["font-size:8px;color:", ";font-family:'Press Start 2P',cursive;text-align:center;padding:20px;"], uiColors.lightGray);
30453
+
30454
+ // Global style to prevent body scrolling when modal is open
30455
+ var GlobalStyle = /*#__PURE__*/createGlobalStyle(["body{overflow:hidden;width:100%;height:100%;}"]);
30456
+ var ConfirmModal = function ConfirmModal(_ref) {
30457
+ var onConfirm = _ref.onConfirm,
30458
+ onClose = _ref.onClose,
30459
+ _ref$message = _ref.message,
30460
+ message = _ref$message === void 0 ? 'Are you sure?' : _ref$message;
30461
+ var handleConfirm = useCallback(function (e) {
30462
+ e.preventDefault();
30463
+ e.stopPropagation();
30464
+ onConfirm();
30465
+ }, [onConfirm]);
30466
+ var handleClose = useCallback(function (e) {
30467
+ e.preventDefault();
30468
+ e.stopPropagation();
30469
+ onClose();
30470
+ }, [onClose]);
30471
+ // Fix type issues by separating event handlers for different event types
30472
+ var stopPropagationClick = useCallback(function (e) {
30473
+ e.stopPropagation();
30474
+ }, []);
30475
+ var stopPropagationTouch = useCallback(function (e) {
30476
+ e.stopPropagation();
30477
+ }, []);
30478
+ var stopPropagationPointer = useCallback(function (e) {
30479
+ e.stopPropagation();
30480
+ }, []);
30481
+ return React.createElement(ModalPortal, null, React.createElement(GlobalStyle, null), React.createElement(Overlay, {
30482
+ onPointerDown: handleClose
30483
+ }), React.createElement(ModalContainer, null, React.createElement(ModalContent, {
30484
+ onClick: stopPropagationClick,
30485
+ onTouchStart: stopPropagationTouch,
30486
+ onTouchEnd: stopPropagationTouch,
30487
+ onTouchMove: stopPropagationTouch,
30488
+ onPointerDown: stopPropagationPointer
30489
+ }, React.createElement(MessageContainer, null, typeof message === 'string' ? React.createElement(Message$1, null, message) : message), React.createElement(ButtonsContainer$2, null, React.createElement(CancelButtonWrapper, null, React.createElement(Button, {
30490
+ buttonType: ButtonTypes.RPGUIButton,
30491
+ onPointerDown: handleClose
30492
+ }, "No")), React.createElement(Button, {
30493
+ buttonType: ButtonTypes.RPGUIButton,
30494
+ onPointerDown: handleConfirm
30495
+ }, "Yes")))));
30496
+ };
30497
+ var Overlay = /*#__PURE__*/styled.div.withConfig({
30498
+ displayName: "ConfirmModal__Overlay",
30499
+ componentId: "sc-11qkyu1-0"
30500
+ })(["position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.6);z-index:1000;animation:fadeIn 0.2s ease-out;cursor:pointer;touch-action:none;@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}"]);
30501
+ var ModalContainer = /*#__PURE__*/styled.div.withConfig({
30502
+ displayName: "ConfirmModal__ModalContainer",
30503
+ componentId: "sc-11qkyu1-1"
30504
+ })(["position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;z-index:1001;pointer-events:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);"]);
30505
+ var ModalContent = /*#__PURE__*/styled.div.withConfig({
30506
+ displayName: "ConfirmModal__ModalContent",
30507
+ componentId: "sc-11qkyu1-2"
30508
+ })(["background-color:#2a2a2a;border:2px solid #444;border-radius:8px;padding:20px;min-width:300px;max-width:90%;margin:0 auto;animation:scaleIn 0.2s ease-out;transform-origin:center;box-shadow:0 4px 20px rgba(0,0,0,0.5),0 0 40px rgba(0,0,0,0.3);pointer-events:auto;@keyframes scaleIn{from{transform:scale(0.8);opacity:0;}to{transform:scale(1);opacity:1;}}@media (max-width:768px){padding:25px;width:85%;}"]);
30509
+ var MessageContainer = /*#__PURE__*/styled.div.withConfig({
30510
+ displayName: "ConfirmModal__MessageContainer",
30511
+ componentId: "sc-11qkyu1-3"
30512
+ })(["margin-bottom:20px;text-align:center;"]);
30513
+ var Message$1 = /*#__PURE__*/styled.p.withConfig({
30514
+ displayName: "ConfirmModal__Message",
30515
+ componentId: "sc-11qkyu1-4"
30516
+ })(["margin:0;font-size:16px;color:#fff;text-shadow:0 1px 0 rgba(0,0,0,0.5);@media (max-width:768px){font-size:18px;}"]);
30517
+ var ButtonsContainer$2 = /*#__PURE__*/styled.div.withConfig({
30518
+ displayName: "ConfirmModal__ButtonsContainer",
30519
+ componentId: "sc-11qkyu1-5"
30520
+ })(["display:flex;justify-content:center;gap:20px;@media (max-width:768px){gap:30px;transform:scale(1.1);margin-top:5px;}"]);
30521
+ var CancelButtonWrapper = /*#__PURE__*/styled.div.withConfig({
30522
+ displayName: "ConfirmModal__CancelButtonWrapper",
30523
+ componentId: "sc-11qkyu1-6"
30524
+ })(["filter:grayscale(0.7);"]);
30525
+
30526
+ var CTAButton = function CTAButton(_ref) {
30527
+ var icon = _ref.icon,
30528
+ label = _ref.label,
30529
+ onClick = _ref.onClick,
30530
+ className = _ref.className,
30531
+ _ref$fullWidth = _ref.fullWidth,
30532
+ fullWidth = _ref$fullWidth === void 0 ? false : _ref$fullWidth,
30533
+ _ref$textColor = _ref.textColor,
30534
+ textColor = _ref$textColor === void 0 ? '#ffffff' : _ref$textColor,
30535
+ _ref$iconColor = _ref.iconColor,
30536
+ iconColor = _ref$iconColor === void 0 ? '#f59e0b' : _ref$iconColor,
30537
+ _ref$disabled = _ref.disabled,
30538
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled;
30539
+ return React.createElement(ButtonContainer$1, {
30540
+ className: className,
30541
+ onPointerDown: disabled ? undefined : onClick,
30542
+ "$fullWidth": fullWidth,
30543
+ "$disabled": disabled,
30544
+ "$color": textColor
30545
+ }, React.createElement(ButtonContent, null, React.createElement(IconWrapper$1, {
30546
+ "$color": iconColor,
30547
+ "$disabled": disabled
30548
+ }, icon), label && React.createElement(ButtonLabel, {
30549
+ "$color": textColor,
30550
+ "$disabled": disabled
30551
+ }, label)));
30552
+ };
30553
+ var ButtonContainer$1 = /*#__PURE__*/styled.div.withConfig({
30554
+ displayName: "CTAButton__ButtonContainer",
30555
+ componentId: "sc-1azvwn5-0"
30556
+ })(["display:inline-flex;align-items:center;padding:0.75rem 1.25rem;background:rgba(0,0,0,0.3);border:2px solid #f59e0b;box-shadow:0 0 10px rgba(245,158,11,0.3);border-radius:4px;cursor:", ";transition:all 0.2s;position:relative;opacity:", ";color:", ";", " &:hover{background:", ";box-shadow:", ";transform:", ";}&:active{transform:", ";box-shadow:", ";}&:before{content:'';position:absolute;inset:-1px;border-radius:5px;padding:1px;background:linear-gradient(45deg,#f59e0b,#fbbf24,#f59e0b);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;-webkit-mask-composite:destination-out;}"], function (props) {
30557
+ return props.$disabled ? 'not-allowed' : 'pointer';
30558
+ }, function (props) {
30559
+ return props.$disabled ? 0.5 : 1;
30560
+ }, function (props) {
30561
+ return props.$disabled ? '#6b7280' : props.$color;
30562
+ }, function (props) {
30563
+ return props.$fullWidth && css(["display:flex;justify-content:center;"]);
30564
+ }, function (props) {
30565
+ return props.$disabled ? 'rgba(0, 0, 0, 0.3)' : 'rgba(0, 0, 0, 0.4)';
30566
+ }, function (props) {
30567
+ return props.$disabled ? '0 0 10px rgba(245, 158, 11, 0.3)' : '0 0 15px rgba(245, 158, 11, 0.4)';
30568
+ }, function (props) {
30569
+ return props.$disabled ? 'none' : 'translateY(-1px)';
30570
+ }, function (props) {
30571
+ return props.$disabled ? 'none' : 'translateY(1px)';
30572
+ }, function (props) {
30573
+ return props.$disabled ? '0 0 10px rgba(245, 158, 11, 0.3)' : '0 0 5px rgba(245, 158, 11, 0.2)';
30574
+ });
30575
+ var ButtonContent = /*#__PURE__*/styled.div.withConfig({
30576
+ displayName: "CTAButton__ButtonContent",
30577
+ componentId: "sc-1azvwn5-1"
30578
+ })(["display:flex;align-items:center;gap:0.75rem;"]);
30579
+ var IconWrapper$1 = /*#__PURE__*/styled.div.withConfig({
30580
+ displayName: "CTAButton__IconWrapper",
30581
+ componentId: "sc-1azvwn5-2"
30582
+ })(["svg{font-size:1.25rem;color:", ";filter:drop-shadow(0 0 2px rgba(245,158,11,0.5));opacity:", ";}"], function (props) {
30583
+ return props.$color;
30584
+ }, function (props) {
30585
+ return props.$disabled ? 0.5 : 1;
30586
+ });
30587
+ var ButtonLabel = /*#__PURE__*/styled.span.withConfig({
30588
+ displayName: "CTAButton__ButtonLabel",
30589
+ componentId: "sc-1azvwn5-3"
30590
+ })(["color:", ";font-family:'Press Start 2P',cursive;font-size:0.875rem;text-shadow:0 0 4px rgba(245,158,11,0.5);opacity:", ";"], function (props) {
30591
+ return props.$color;
30592
+ }, function (props) {
30593
+ return props.$disabled ? 0.5 : 1;
30594
+ });
30595
+
30596
+ var DCTransferPanel = function DCTransferPanel(_ref) {
30597
+ var dcBalance = _ref.dcBalance,
30598
+ transferLoading = _ref.transferLoading,
30599
+ transferResult = _ref.transferResult,
30600
+ onSendTransfer = _ref.onSendTransfer,
30601
+ onClearTransferResult = _ref.onClearTransferResult,
30602
+ characterName = _ref.characterName,
30603
+ onInputFocus = _ref.onInputFocus,
30604
+ onInputBlur = _ref.onInputBlur,
30605
+ onSearchCharacter = _ref.onSearchCharacter,
30606
+ searchResults = _ref.searchResults;
30607
+ var _useState = useState(''),
30608
+ recipientName = _useState[0],
30609
+ setRecipientName = _useState[1];
30610
+ var _useState2 = useState(''),
30611
+ amount = _useState2[0],
30612
+ setAmount = _useState2[1];
30613
+ var _useState3 = useState(''),
30614
+ validationError = _useState3[0],
30615
+ setValidationError = _useState3[1];
30616
+ var _useState4 = useState(false),
30617
+ showConfirm = _useState4[0],
30618
+ setShowConfirm = _useState4[1];
30619
+ var _useState5 = useState(false),
30620
+ showDropdown = _useState5[0],
30621
+ setShowDropdown = _useState5[1];
30622
+ var dropdownRef = useRef(null);
30623
+ var clearResultTimerRef = useRef(null);
30624
+ var debouncedSearch = useMemo(function () {
30625
+ return debounce(function (name) {
30626
+ if (name.trim().length >= 2) {
30627
+ onSearchCharacter == null ? void 0 : onSearchCharacter(name.trim());
30628
+ }
30629
+ }, 300);
30630
+ }, [onSearchCharacter]);
30631
+ useEffect(function () {
30632
+ return function () {
30633
+ debouncedSearch.cancel();
30634
+ };
30635
+ }, [debouncedSearch]);
30636
+ useEffect(function () {
30637
+ if (transferResult) {
30638
+ if (clearResultTimerRef.current) {
30639
+ clearTimeout(clearResultTimerRef.current);
30640
+ }
30641
+ clearResultTimerRef.current = setTimeout(function () {
30642
+ onClearTransferResult();
30643
+ }, 5000);
30644
+ }
30645
+ return function () {
30646
+ if (clearResultTimerRef.current) {
30647
+ clearTimeout(clearResultTimerRef.current);
30648
+ }
30649
+ };
30650
+ }, [transferResult]);
30651
+ var validate = function validate() {
30652
+ var parsedAmount = parseInt(amount, 10);
30653
+ var trimmedRecipient = recipientName.trim();
30654
+ if (!trimmedRecipient) {
30655
+ setValidationError('Recipient name is required.');
30656
+ return false;
30657
+ }
30658
+ if (characterName && trimmedRecipient.toLowerCase() === characterName.toLowerCase()) {
30659
+ setValidationError('You cannot transfer DC to yourself.');
30660
+ return false;
30661
+ }
30662
+ if (isNaN(parsedAmount) || parsedAmount <= 0 || !Number.isInteger(parsedAmount)) {
30663
+ setValidationError('Amount must be a positive integer.');
30664
+ return false;
30665
+ }
30666
+ if (parsedAmount > dcBalance) {
30667
+ setValidationError('Insufficient DC balance.');
30668
+ return false;
30669
+ }
30670
+ setValidationError('');
30671
+ return true;
30672
+ };
30673
+ var handleSendClick = useCallback(function () {
30674
+ if (!validate()) return;
30675
+ setShowConfirm(true);
30676
+ }, [recipientName, amount, dcBalance, characterName]);
30677
+ var handleConfirmTransfer = useCallback(function () {
30678
+ setShowConfirm(false);
30679
+ onSendTransfer(recipientName.trim(), parseInt(amount, 10));
30680
+ setRecipientName('');
30681
+ setAmount('');
30682
+ }, [recipientName, amount, onSendTransfer]);
30683
+ return React.createElement(PanelContainer$1, null, React.createElement(FieldLabel, null, "Recipient Character Name"), React.createElement(AutocompleteWrapper, {
30684
+ ref: dropdownRef
30685
+ }, React.createElement(StyledInput, {
30686
+ type: "text",
30687
+ value: recipientName,
30688
+ onChange: function onChange(e) {
30689
+ setRecipientName(e.target.value);
30690
+ debouncedSearch(e.target.value);
30691
+ setShowDropdown(true);
30692
+ },
30693
+ onFocus: function onFocus() {
30694
+ onInputFocus == null ? void 0 : onInputFocus();
30695
+ if (recipientName.trim().length >= 2 && searchResults && searchResults.length > 0) {
30696
+ setShowDropdown(true);
30697
+ }
30698
+ },
30699
+ onBlur: function onBlur() {
30700
+ // Delay to allow dropdown click to register
30701
+ setTimeout(function () {
30702
+ return setShowDropdown(false);
30703
+ }, 150);
30704
+ onInputBlur == null ? void 0 : onInputBlur();
30705
+ },
30706
+ placeholder: "Enter character name",
30707
+ disabled: transferLoading,
30708
+ autoComplete: "off"
30709
+ }), showDropdown && searchResults && searchResults.length > 0 && React.createElement(DropdownList, null, searchResults.map(function (_char) {
30710
+ return React.createElement(DropdownItem, {
30711
+ key: _char._id,
30712
+ onPointerDown: function onPointerDown() {
30713
+ setRecipientName(_char.name);
30714
+ setShowDropdown(false);
30715
+ }
30716
+ }, _char.name);
30717
+ }))), React.createElement(FieldLabel, null, "Amount (DC)"), React.createElement(StyledInput, {
30718
+ type: "number",
30719
+ min: 1,
30720
+ value: amount,
30721
+ onChange: function onChange(e) {
30722
+ return setAmount(e.target.value);
30723
+ },
30724
+ onFocus: onInputFocus,
30725
+ onBlur: onInputBlur,
30726
+ placeholder: "0",
30727
+ disabled: transferLoading
30728
+ }), validationError && React.createElement(ErrorMessage, null, validationError), React.createElement(ButtonRow, null, React.createElement(CTAButton, {
30729
+ icon: React.createElement(FaPaperPlane, null),
30730
+ label: transferLoading ? 'Sending...' : 'Send',
30731
+ onClick: handleSendClick,
30732
+ disabled: transferLoading,
30733
+ fullWidth: true
30734
+ })), transferLoading && React.createElement(Spinner$1, null), transferResult && React.createElement(ResultMessage, {
30735
+ "$success": transferResult.success
30736
+ }, transferResult.message), showConfirm && React.createElement(ConfirmModal, {
30737
+ message: "Transfer " + parseInt(amount, 10) + " DC to \"" + recipientName.trim() + "\"?",
30738
+ onConfirm: handleConfirmTransfer,
30739
+ onClose: function onClose() {
30740
+ return setShowConfirm(false);
30741
+ }
30742
+ }));
30743
+ };
30744
+ var PanelContainer$1 = /*#__PURE__*/styled.div.withConfig({
30745
+ displayName: "DCTransferPanel__PanelContainer",
30746
+ componentId: "sc-k1vvb1-0"
30747
+ })(["display:flex;flex-direction:column;gap:8px;padding:8px 0;"]);
30748
+ var FieldLabel = /*#__PURE__*/styled.label.withConfig({
30749
+ displayName: "DCTransferPanel__FieldLabel",
30750
+ componentId: "sc-k1vvb1-1"
30751
+ })(["font-size:9px;color:#f59e0b;font-family:'Press Start 2P',cursive;margin-top:8px;"]);
30752
+ var StyledInput = /*#__PURE__*/styled(Input).withConfig({
30753
+ displayName: "DCTransferPanel__StyledInput",
30754
+ componentId: "sc-k1vvb1-2"
30755
+ })(["background:rgba(0,0,0,0.6);border:1px solid #f59e0b;color:", ";padding:6px 8px;font-size:12px;font-family:'Press Start 2P',cursive;width:100%;box-sizing:border-box;&:disabled{opacity:0.5;}&:focus{outline:none;border-color:", ";}"], uiColors.white, uiColors.white);
30756
+ var ButtonRow = /*#__PURE__*/styled.div.withConfig({
30757
+ displayName: "DCTransferPanel__ButtonRow",
30758
+ componentId: "sc-k1vvb1-3"
30759
+ })(["margin-top:8px;"]);
30760
+ var Spinner$1 = /*#__PURE__*/styled.div.withConfig({
30761
+ displayName: "DCTransferPanel__Spinner",
30762
+ componentId: "sc-k1vvb1-4"
30763
+ })(["border:3px solid rgba(255,255,255,0.2);border-radius:50%;border-top:3px solid #f59e0b;width:24px;height:24px;animation:spin 0.8s linear infinite;margin:8px auto 0;@keyframes spin{0%{transform:rotate(0deg);}100%{transform:rotate(360deg);}}"]);
30764
+ var ResultMessage = /*#__PURE__*/styled.div.withConfig({
30765
+ displayName: "DCTransferPanel__ResultMessage",
30766
+ componentId: "sc-k1vvb1-5"
30767
+ })(["margin-top:8px;padding:8px;font-size:9px;font-family:'Press Start 2P',cursive;color:", ";border:1px solid ", ";background:rgba(0,0,0,0.4);text-align:center;"], function (_ref2) {
30768
+ var $success = _ref2.$success;
30769
+ return $success ? uiColors.green : uiColors.red;
30770
+ }, function (_ref3) {
30771
+ var $success = _ref3.$success;
30772
+ return $success ? uiColors.green : uiColors.red;
30773
+ });
30774
+ var ErrorMessage = /*#__PURE__*/styled.div.withConfig({
30775
+ displayName: "DCTransferPanel__ErrorMessage",
30776
+ componentId: "sc-k1vvb1-6"
30777
+ })(["font-size:9px;color:", ";font-family:'Press Start 2P',cursive;"], uiColors.red);
30778
+ var AutocompleteWrapper = /*#__PURE__*/styled.div.withConfig({
30779
+ displayName: "DCTransferPanel__AutocompleteWrapper",
30780
+ componentId: "sc-k1vvb1-7"
30781
+ })(["position:relative;width:100%;"]);
30782
+ var DropdownList = /*#__PURE__*/styled.ul.withConfig({
30783
+ displayName: "DCTransferPanel__DropdownList",
30784
+ componentId: "sc-k1vvb1-8"
30785
+ })(["position:absolute;top:100%;left:0;right:0;background:rgba(10,10,30,0.95);border:1px solid #f59e0b;border-top:none;list-style:none;padding:0;margin:0;max-height:120px;overflow-y:auto;z-index:10;"]);
30786
+ var DropdownItem = /*#__PURE__*/styled.li.withConfig({
30787
+ displayName: "DCTransferPanel__DropdownItem",
30788
+ componentId: "sc-k1vvb1-9"
30789
+ })(["padding:6px 8px;font-size:11px;font-family:'Press Start 2P',cursive;color:", ";cursor:pointer;&:hover{background:rgba(245,158,11,0.3);}"], uiColors.white);
30790
+
30791
+ var DCWalletModal = function DCWalletModal(_ref) {
30792
+ var _historyData$transact, _historyData$totalPag, _historyData$currentP;
30793
+ var dcBalance = _ref.dcBalance,
30794
+ onClose = _ref.onClose,
30795
+ historyData = _ref.historyData,
30796
+ historyLoading = _ref.historyLoading,
30797
+ onRequestHistory = _ref.onRequestHistory,
30798
+ transferLoading = _ref.transferLoading,
30799
+ transferResult = _ref.transferResult,
30800
+ onSendTransfer = _ref.onSendTransfer,
30801
+ onClearTransferResult = _ref.onClearTransferResult,
30802
+ characterName = _ref.characterName,
30803
+ onInputFocus = _ref.onInputFocus,
30804
+ onInputBlur = _ref.onInputBlur,
30805
+ onBuyDC = _ref.onBuyDC,
30806
+ onSearchCharacter = _ref.onSearchCharacter,
30807
+ searchResults = _ref.searchResults;
30808
+ var _useState = useState('balance'),
30809
+ activeTab = _useState[0],
30810
+ setActiveTab = _useState[1];
30811
+ var stopPropagation = useCallback(function (e) {
30812
+ e.stopPropagation();
30813
+ }, []);
30814
+ var tabs = [{
30815
+ id: 'balance',
30816
+ title: 'Balance',
30817
+ content: React.createElement(BalanceContent, null, React.createElement(BalanceLabel, null, "Your DC Balance"), React.createElement(BalanceAmount, null, dcBalance.toLocaleString(), " DC"), onBuyDC && React.createElement(BuyButton, {
30818
+ onPointerDown: onBuyDC,
30819
+ title: "Buy Definya Coins"
30820
+ }, React.createElement(FaShoppingCart, null), React.createElement(BuyButtonLabel, null, "Buy DC")))
30821
+ }, {
30822
+ id: 'transfer',
30823
+ title: 'Transfer',
30824
+ content: React.createElement(DCTransferPanel, {
30825
+ dcBalance: dcBalance,
30826
+ transferLoading: transferLoading,
30827
+ transferResult: transferResult,
30828
+ onSendTransfer: onSendTransfer,
30829
+ onClearTransferResult: onClearTransferResult,
30830
+ characterName: characterName,
30831
+ onInputFocus: onInputFocus,
30832
+ onInputBlur: onInputBlur,
30833
+ onSearchCharacter: onSearchCharacter,
30834
+ searchResults: searchResults
30835
+ })
30836
+ }, {
30837
+ id: 'history',
30838
+ title: 'History',
30839
+ content: React.createElement(DCHistoryPanel, {
30840
+ transactions: (_historyData$transact = historyData == null ? void 0 : historyData.transactions) != null ? _historyData$transact : [],
30841
+ totalPages: (_historyData$totalPag = historyData == null ? void 0 : historyData.totalPages) != null ? _historyData$totalPag : 0,
30842
+ currentPage: (_historyData$currentP = historyData == null ? void 0 : historyData.currentPage) != null ? _historyData$currentP : 1,
30843
+ loading: historyLoading,
30844
+ onRequestHistory: onRequestHistory
30845
+ })
30846
+ }];
30847
+ return React.createElement(ModalPortal, null, React.createElement(Overlay$1, {
30848
+ onPointerDown: onClose
30849
+ }), React.createElement(ModalContainer$1, null, React.createElement(ModalContent$1, {
30850
+ onClick: stopPropagation,
30851
+ onTouchStart: stopPropagation,
30852
+ onPointerDown: stopPropagation
30853
+ }, React.createElement(Header$2, null, React.createElement(Title$3, null, "DC Wallet"), React.createElement(CloseButton$4, {
30854
+ onPointerDown: onClose,
30855
+ "aria-label": "Close"
30856
+ }, React.createElement(FaTimes, null))), React.createElement(WalletContainer, null, React.createElement(InternalTabs, {
30857
+ tabs: tabs,
30858
+ activeTab: activeTab,
30859
+ onTabChange: function onTabChange(tabId) {
30860
+ setActiveTab(tabId);
30861
+ if (tabId === 'history') {
30862
+ onRequestHistory(1);
30863
+ }
30864
+ },
30865
+ activeTextColor: "#000000",
30866
+ activeColor: "#fef08a",
30867
+ inactiveColor: "#6b7280",
30868
+ borderColor: "#f59e0b",
30869
+ hoverColor: "#fef3c7"
30870
+ })))));
30871
+ };
30872
+ var Overlay$1 = /*#__PURE__*/styled.div.withConfig({
30873
+ displayName: "DCWalletModal__Overlay",
30874
+ componentId: "sc-12xy88y-0"
30875
+ })(["position:fixed;inset:0;background:rgba(0,0,0,0.65);z-index:1000;"]);
30876
+ var ModalContainer$1 = /*#__PURE__*/styled.div.withConfig({
30877
+ displayName: "DCWalletModal__ModalContainer",
30878
+ componentId: "sc-12xy88y-1"
30879
+ })(["position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:1001;pointer-events:none;"]);
30880
+ var ModalContent$1 = /*#__PURE__*/styled.div.withConfig({
30881
+ displayName: "DCWalletModal__ModalContent",
30882
+ componentId: "sc-12xy88y-2"
30883
+ })(["background:#1a1a2e;border:2px solid #f59e0b;border-radius:8px;padding:16px 20px 20px;min-width:400px;max-width:90%;display:flex;flex-direction:column;gap:12px;pointer-events:auto;animation:scaleIn 0.15s ease-out;@keyframes scaleIn{from{transform:scale(0.85);opacity:0;}to{transform:scale(1);opacity:1;}}"]);
30884
+ var Header$2 = /*#__PURE__*/styled.div.withConfig({
30885
+ displayName: "DCWalletModal__Header",
30886
+ componentId: "sc-12xy88y-3"
30887
+ })(["display:flex;align-items:center;justify-content:space-between;"]);
30888
+ var Title$3 = /*#__PURE__*/styled.h3.withConfig({
30889
+ displayName: "DCWalletModal__Title",
30890
+ componentId: "sc-12xy88y-4"
30891
+ })(["margin:0;font-family:'Press Start 2P',cursive;font-size:0.7rem;color:#fef08a;"]);
30892
+ var CloseButton$4 = /*#__PURE__*/styled.button.withConfig({
30893
+ displayName: "DCWalletModal__CloseButton",
30894
+ componentId: "sc-12xy88y-5"
30895
+ })(["background:none;border:none;color:rgba(255,255,255,0.6);cursor:pointer;font-size:1rem;padding:4px;display:flex;align-items:center;&:hover{color:#ffffff;}"]);
30896
+ var WalletContainer = /*#__PURE__*/styled.div.withConfig({
30897
+ displayName: "DCWalletModal__WalletContainer",
30898
+ componentId: "sc-12xy88y-6"
30899
+ })(["display:flex;flex-direction:column;width:100%;min-height:300px;gap:0.5rem;"]);
30900
+ var BalanceContent = /*#__PURE__*/styled.div.withConfig({
30901
+ displayName: "DCWalletModal__BalanceContent",
30902
+ componentId: "sc-12xy88y-7"
30903
+ })(["display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px 16px;"]);
30904
+ var BalanceLabel = /*#__PURE__*/styled.span.withConfig({
30905
+ displayName: "DCWalletModal__BalanceLabel",
30906
+ componentId: "sc-12xy88y-8"
30907
+ })(["font-family:'Press Start 2P',cursive;font-size:10px;color:", ";"], uiColors.lightGray);
30908
+ var BalanceAmount = /*#__PURE__*/styled.div.withConfig({
30909
+ displayName: "DCWalletModal__BalanceAmount",
30910
+ componentId: "sc-12xy88y-9"
30911
+ })(["font-family:'Press Start 2P',cursive;font-size:28px;color:#fef08a;text-shadow:2px 2px 0 #000;letter-spacing:2px;"]);
30912
+ var BuyButton = /*#__PURE__*/styled.button.withConfig({
30913
+ displayName: "DCWalletModal__BuyButton",
30914
+ componentId: "sc-12xy88y-10"
30915
+ })(["display:flex;align-items:center;gap:8px;margin-top:8px;padding:10px 20px;background:#f59e0b;border:none;border-radius:6px;color:#000;cursor:pointer;font-size:1rem;&:hover{background:#fbbf24;}&:active{background:#d97706;}"]);
30916
+ var BuyButtonLabel = /*#__PURE__*/styled.span.withConfig({
30917
+ displayName: "DCWalletModal__BuyButtonLabel",
30918
+ componentId: "sc-12xy88y-11"
30919
+ })(["font-family:'Press Start 2P',cursive;font-size:8px;"]);
30920
+
30188
30921
  var SimpleProgressBar = function SimpleProgressBar(_ref) {
30189
30922
  var value = _ref.value,
30190
30923
  _ref$bgColor = _ref.bgColor,
@@ -30193,7 +30926,7 @@ var SimpleProgressBar = function SimpleProgressBar(_ref) {
30193
30926
  margin = _ref$margin === void 0 ? 20 : _ref$margin;
30194
30927
  // Ensure the width is at least 1% if value is greater than 0, capped at 99.99%
30195
30928
  var width = value > 0 ? Math.max(1, Math.min(99.99, value)) : 0;
30196
- return React.createElement(Container$j, {
30929
+ return React.createElement(Container$k, {
30197
30930
  className: "simple-progress-bar"
30198
30931
  }, React.createElement(ProgressBarContainer, {
30199
30932
  margin: margin
@@ -30202,7 +30935,7 @@ var SimpleProgressBar = function SimpleProgressBar(_ref) {
30202
30935
  bgColor: bgColor
30203
30936
  }))));
30204
30937
  };
30205
- var Container$j = /*#__PURE__*/styled.div.withConfig({
30938
+ var Container$k = /*#__PURE__*/styled.div.withConfig({
30206
30939
  displayName: "SimpleProgressBar__Container",
30207
30940
  componentId: "sc-mbeil3-0"
30208
30941
  })(["display:flex;justify-content:center;align-items:center;width:100%;"]);
@@ -30254,7 +30987,7 @@ var LoginStreakPanel = function LoginStreakPanel(_ref) {
30254
30987
  onCloseButton: onClose,
30255
30988
  type: RPGUIContainerTypes.Framed,
30256
30989
  width: isMobile ? '90vw' : '380px'
30257
- }, React.createElement(Container$k, null, React.createElement(StreakHeader, null, React.createElement(StreakDay, null, streak === 1 && !isConsecutive ? 'Day 1 — Fresh Start!' : "Day " + streak + " Streak!"), React.createElement(LongestStreak, null, "Longest: ", longestStreak, " days")), React.createElement(XPBonusSection, null, React.createElement(XPBonusLabel, null, "XP Bonus: ", React.createElement(XPBonusValue, {
30990
+ }, React.createElement(Container$l, null, React.createElement(StreakHeader, null, React.createElement(StreakDay, null, streak === 1 && !isConsecutive ? 'Day 1 — Fresh Start!' : "Day " + streak + " Streak!"), React.createElement(LongestStreak, null, "Longest: ", longestStreak, " days")), React.createElement(XPBonusSection, null, React.createElement(XPBonusLabel, null, "XP Bonus: ", React.createElement(XPBonusValue, {
30258
30991
  isMax: isMaxBonus
30259
30992
  }, "+", xpBonusPercent, "%"), isMaxBonus && React.createElement(MaxTag, null, " MAX")), React.createElement(SimpleProgressBar, {
30260
30993
  value: maxXpBonusPercent > 0 ? xpBonusPercent / maxXpBonusPercent * 100 : 0,
@@ -30271,7 +31004,7 @@ var LoginStreakPanel = function LoginStreakPanel(_ref) {
30271
31004
  }, milestone.reached ? '✓' : '○'));
30272
31005
  })), React.createElement(MotivationalText, null, getMotivationalText(streak, isConsecutive, milestones))));
30273
31006
  };
30274
- var Container$k = /*#__PURE__*/styled.div.withConfig({
31007
+ var Container$l = /*#__PURE__*/styled.div.withConfig({
30275
31008
  displayName: "LoginStreakPanel__Container",
30276
31009
  componentId: "sc-1eiinkh-0"
30277
31010
  })(["display:flex;flex-direction:column;gap:8px;padding:4px 14px 14px;color:", ";width:100%;box-sizing:border-box;hr.golden{margin:4px 0;}"], uiColors.white);
@@ -30709,7 +31442,7 @@ var DraggedItem = function DraggedItem(_ref) {
30709
31442
  var centeredX = x - OFFSET$1;
30710
31443
  var centeredY = y - OFFSET$1;
30711
31444
  var stackInfo = onRenderStackInfo((_item$_id = item == null ? void 0 : item._id) != null ? _item$_id : '', (_item$stackQty = item == null ? void 0 : item.stackQty) != null ? _item$stackQty : 0);
30712
- return React.createElement(Container$l, null, React.createElement(SpriteContainer, {
31445
+ return React.createElement(Container$m, null, React.createElement(SpriteContainer, {
30713
31446
  x: centeredX,
30714
31447
  y: centeredY
30715
31448
  }, React.createElement(SpriteFromAtlas, {
@@ -30727,7 +31460,7 @@ var DraggedItem = function DraggedItem(_ref) {
30727
31460
  }), stackInfo));
30728
31461
  };
30729
31462
  var pulse = "\n @keyframes pulse {\n 0%, 100% {\n transform: scale(1) rotate(-3deg);\n }\n 50% {\n transform: scale(0.95) rotate(-3deg);\n }\n }\n";
30730
- var Container$l = /*#__PURE__*/styled.div.withConfig({
31463
+ var Container$m = /*#__PURE__*/styled.div.withConfig({
30731
31464
  displayName: "DraggedItem__Container",
30732
31465
  componentId: "sc-mlzzcp-0"
30733
31466
  })(["position:relative;"]);
@@ -30764,7 +31497,7 @@ var RelativeListMenu = function RelativeListMenu(_ref) {
30764
31497
  document.removeEventListener('clickOutside', handleClickOutside);
30765
31498
  };
30766
31499
  }, [handleClickOutside]);
30767
- return React.createElement(ModalPortal, null, React.createElement(Container$m, Object.assign({
31500
+ return React.createElement(ModalPortal, null, React.createElement(Container$n, Object.assign({
30768
31501
  fontSize: fontSize,
30769
31502
  ref: ref
30770
31503
  }, pos), React.createElement("ul", {
@@ -30781,7 +31514,7 @@ var RelativeListMenu = function RelativeListMenu(_ref) {
30781
31514
  }, (params == null ? void 0 : params.text) || 'No text');
30782
31515
  }))));
30783
31516
  };
30784
- var Container$m = /*#__PURE__*/styled.div.withConfig({
31517
+ var Container$n = /*#__PURE__*/styled.div.withConfig({
30785
31518
  displayName: "RelativeListMenu__Container",
30786
31519
  componentId: "sc-7hohf-0"
30787
31520
  })(["position:absolute;top:", "px;left:", "px;display:flex;flex-direction:column;width:max-content;justify-content:start;align-items:flex-start;li{font-size:", "em;}"], function (props) {
@@ -30968,78 +31701,6 @@ var EquipmentColumn = /*#__PURE__*/styled.div.withConfig({
30968
31701
  componentId: "sc-1wuddg2-1"
30969
31702
  })(["display:flex;justify-content:center;flex-wrap:wrap;flex-direction:column;touch-action:none;"]);
30970
31703
 
30971
- var UI_BREAKPOINT_MOBILE = '950px';
30972
- var UI_BREAKPOINT_SMALL_LAPTOP = '1400px';
30973
-
30974
- var InternalTabs = function InternalTabs(_ref) {
30975
- var _tabs$, _tabs$find;
30976
- var tabs = _ref.tabs,
30977
- _ref$activeColor = _ref.activeColor,
30978
- activeColor = _ref$activeColor === void 0 ? '#fef08a' : _ref$activeColor,
30979
- _ref$activeTextColor = _ref.activeTextColor,
30980
- activeTextColor = _ref$activeTextColor === void 0 ? '#000000' : _ref$activeTextColor,
30981
- _ref$inactiveColor = _ref.inactiveColor,
30982
- inactiveColor = _ref$inactiveColor === void 0 ? '#6b7280' : _ref$inactiveColor,
30983
- _ref$borderColor = _ref.borderColor,
30984
- borderColor = _ref$borderColor === void 0 ? '#f59e0b' : _ref$borderColor,
30985
- _ref$hoverColor = _ref.hoverColor,
30986
- hoverColor = _ref$hoverColor === void 0 ? '#fef3c7' : _ref$hoverColor,
30987
- onTabChange = _ref.onTabChange,
30988
- externalActiveTab = _ref.activeTab;
30989
- var _useState = useState((_tabs$ = tabs[0]) == null ? void 0 : _tabs$.id),
30990
- internalActiveTab = _useState[0],
30991
- setInternalActiveTab = _useState[1];
30992
- var activeTabId = externalActiveTab != null ? externalActiveTab : internalActiveTab;
30993
- var handleTabClick = function handleTabClick(tabId) {
30994
- setInternalActiveTab(tabId);
30995
- onTabChange == null ? void 0 : onTabChange(tabId);
30996
- };
30997
- return React.createElement(TableWrapper, null, React.createElement(TabHeader, {
30998
- borderColor: borderColor
30999
- }, tabs.map(function (tab) {
31000
- return React.createElement(TabButton, {
31001
- key: tab.id,
31002
- active: activeTabId === tab.id,
31003
- activeColor: activeColor,
31004
- activeTextColor: activeTextColor,
31005
- inactiveColor: inactiveColor,
31006
- borderColor: borderColor,
31007
- hoverColor: hoverColor,
31008
- onClick: function onClick() {
31009
- return handleTabClick(tab.id);
31010
- }
31011
- }, tab.title);
31012
- })), React.createElement(ContentWrapper, null, (_tabs$find = tabs.find(function (tab) {
31013
- return tab.id === activeTabId;
31014
- })) == null ? void 0 : _tabs$find.content));
31015
- };
31016
- var TableWrapper = /*#__PURE__*/styled.div.withConfig({
31017
- displayName: "InternalTabs__TableWrapper",
31018
- componentId: "sc-ldufv0-0"
31019
- })(["width:100%;"]);
31020
- var TabHeader = /*#__PURE__*/styled.div.withConfig({
31021
- displayName: "InternalTabs__TabHeader",
31022
- componentId: "sc-ldufv0-1"
31023
- })(["display:flex;border-bottom:1px solid ", ";"], function (props) {
31024
- return props.borderColor;
31025
- });
31026
- var TabButton = /*#__PURE__*/styled.button.withConfig({
31027
- displayName: "InternalTabs__TabButton",
31028
- componentId: "sc-ldufv0-2"
31029
- })(["flex:1;padding:0.25rem 0.5rem;font-size:0.75rem;font-weight:500;border-right:1px solid ", ";background-color:", ";color:", ";white-space:nowrap;overflow:hidden;text-overflow:ellipsis;@media (min-width:480px){padding:0.375rem 0.75rem;font-size:0.8125rem;}@media (min-width:", "){padding:0.5rem 1rem;font-size:0.875rem;}&:last-child{border-right:none;}&:hover{background-color:", ";}"], function (props) {
31030
- return props.borderColor;
31031
- }, function (props) {
31032
- return props.active ? props.activeColor : 'transparent';
31033
- }, function (props) {
31034
- return props.active ? props.activeTextColor : props.inactiveColor;
31035
- }, UI_BREAKPOINT_MOBILE, function (props) {
31036
- return props.active ? props.activeColor : props.hoverColor;
31037
- });
31038
- var ContentWrapper = /*#__PURE__*/styled.div.withConfig({
31039
- displayName: "InternalTabs__ContentWrapper",
31040
- componentId: "sc-ldufv0-3"
31041
- })(["width:100%;"]);
31042
-
31043
31704
  var Table = /*#__PURE__*/styled.table.withConfig({
31044
31705
  displayName: "Table",
31045
31706
  componentId: "sc-1c24pcj-0"
@@ -31204,7 +31865,7 @@ var FriendRequestSection = function FriendRequestSection(_ref3) {
31204
31865
  return onReject(character);
31205
31866
  }
31206
31867
  }, "Reject")));
31207
- })) : React.createElement(EmptyMessage, null, "No pending friend requests"));
31868
+ })) : React.createElement(EmptyMessage$1, null, "No pending friend requests"));
31208
31869
  };
31209
31870
  // Styled components for FriendList UI
31210
31871
  var ListWrapper = /*#__PURE__*/styled.div.withConfig({
@@ -31246,7 +31907,7 @@ var AcceptRejectActions = /*#__PURE__*/styled.div.withConfig({
31246
31907
  displayName: "FriendList__AcceptRejectActions",
31247
31908
  componentId: "sc-3jf9vt-8"
31248
31909
  })(["display:flex;gap:0.5rem;"]);
31249
- var EmptyMessage = /*#__PURE__*/styled.p.withConfig({
31910
+ var EmptyMessage$1 = /*#__PURE__*/styled.p.withConfig({
31250
31911
  displayName: "FriendList__EmptyMessage",
31251
31912
  componentId: "sc-3jf9vt-9"
31252
31913
  })(["text-align:center;color:#888;padding:1rem;font-size:", ";"], uiFonts.size.small);
@@ -31346,7 +32007,7 @@ var NPCDialogText = function NPCDialogText(_ref) {
31346
32007
  var _useState2 = useState(false),
31347
32008
  showGoNextIndicator = _useState2[0],
31348
32009
  setShowGoNextIndicator = _useState2[1];
31349
- return React.createElement(Container$n, null, React.createElement(DynamicText, {
32010
+ return React.createElement(Container$o, null, React.createElement(DynamicText, {
31350
32011
  text: (textChunks == null ? void 0 : textChunks[chunkIndex]) || '',
31351
32012
  onFinish: function onFinish() {
31352
32013
  setShowGoNextIndicator(true);
@@ -31364,7 +32025,7 @@ var NPCDialogText = function NPCDialogText(_ref) {
31364
32025
  }
31365
32026
  }));
31366
32027
  };
31367
- var Container$n = /*#__PURE__*/styled.div.withConfig({
32028
+ var Container$o = /*#__PURE__*/styled.div.withConfig({
31368
32029
  displayName: "NPCDialogText__Container",
31369
32030
  componentId: "sc-1cxkdh9-0"
31370
32031
  })([""]);
@@ -31516,7 +32177,7 @@ var QuestionDialog = function QuestionDialog(_ref) {
31516
32177
  return null;
31517
32178
  });
31518
32179
  };
31519
- return React.createElement(Container$o, null, React.createElement(QuestionContainer, null, React.createElement(DynamicText, {
32180
+ return React.createElement(Container$p, null, React.createElement(QuestionContainer, null, React.createElement(DynamicText, {
31520
32181
  text: currentQuestion.text,
31521
32182
  onStart: function onStart() {
31522
32183
  return setCanShowAnswers(false);
@@ -31526,7 +32187,7 @@ var QuestionDialog = function QuestionDialog(_ref) {
31526
32187
  }
31527
32188
  })), canShowAnswers && React.createElement(AnswersContainer, null, onRenderCurrentAnswers()));
31528
32189
  };
31529
- var Container$o = /*#__PURE__*/styled.div.withConfig({
32190
+ var Container$p = /*#__PURE__*/styled.div.withConfig({
31530
32191
  displayName: "QuestionDialog__Container",
31531
32192
  componentId: "sc-bxc5u0-0"
31532
32193
  })(["display:flex;word-break:break-all;box-sizing:border-box;justify-content:flex-start;align-items:flex-start;flex-wrap:wrap;"]);
@@ -31587,7 +32248,7 @@ var NPCDialog = function NPCDialog(_ref) {
31587
32248
  }
31588
32249
  })), type === NPCDialogType.TextAndThumbnail && React.createElement(ThumbnailContainer, null, React.createElement(NPCThumbnail, {
31589
32250
  src: imagePath || img$7
31590
- }))) : React.createElement(React.Fragment, null, React.createElement(Container$p, null, React.createElement(CloseIcon, {
32251
+ }))) : React.createElement(React.Fragment, null, React.createElement(Container$q, null, React.createElement(CloseIcon, {
31591
32252
  onPointerDown: _onClose
31592
32253
  }, "X"), React.createElement(TextContainer$1, {
31593
32254
  flex: type === NPCDialogType.TextAndThumbnail ? '70%' : '100%'
@@ -31603,7 +32264,7 @@ var NPCDialog = function NPCDialog(_ref) {
31603
32264
  src: imagePath || img$7
31604
32265
  })))));
31605
32266
  };
31606
- var Container$p = /*#__PURE__*/styled.div.withConfig({
32267
+ var Container$q = /*#__PURE__*/styled.div.withConfig({
31607
32268
  displayName: "NPCDialog__Container",
31608
32269
  componentId: "sc-1b4aw74-0"
31609
32270
  })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
@@ -31664,7 +32325,7 @@ var NPCMultiDialog = function NPCMultiDialog(_ref) {
31664
32325
  type: RPGUIContainerTypes.FramedGold,
31665
32326
  width: '50%',
31666
32327
  height: '180px'
31667
- }, React.createElement(React.Fragment, null, React.createElement(Container$q, null, ((_textAndTypeArray$sli = textAndTypeArray[slide]) == null ? void 0 : _textAndTypeArray$sli.imageSide) === 'right' && React.createElement(React.Fragment, null, React.createElement(TextContainer$2, {
32328
+ }, React.createElement(React.Fragment, null, React.createElement(Container$r, null, ((_textAndTypeArray$sli = textAndTypeArray[slide]) == null ? void 0 : _textAndTypeArray$sli.imageSide) === 'right' && React.createElement(React.Fragment, null, React.createElement(TextContainer$2, {
31668
32329
  flex: '70%'
31669
32330
  }, React.createElement(NPCDialogText, {
31670
32331
  onStartStep: function onStartStep() {
@@ -31706,7 +32367,7 @@ var NPCMultiDialog = function NPCMultiDialog(_ref) {
31706
32367
  src: img$6
31707
32368
  }))), ")"));
31708
32369
  };
31709
- var Container$q = /*#__PURE__*/styled.div.withConfig({
32370
+ var Container$r = /*#__PURE__*/styled.div.withConfig({
31710
32371
  displayName: "NPCMultiDialog__Container",
31711
32372
  componentId: "sc-rvu5wg-0"
31712
32373
  })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
@@ -31855,7 +32516,7 @@ var ImageCarousel = function ImageCarousel(_ref) {
31855
32516
  onPointerDown: function onPointerDown() {
31856
32517
  return goToNextImage();
31857
32518
  }
31858
- }))), onCloseButton && React.createElement(CloseButton$4, {
32519
+ }))), onCloseButton && React.createElement(CloseButton$5, {
31859
32520
  className: "container-close",
31860
32521
  onPointerDown: onCloseButton
31861
32522
  }, "X"));
@@ -31886,7 +32547,7 @@ var Description$1 = /*#__PURE__*/styled.div.withConfig({
31886
32547
  }, function (props) {
31887
32548
  return props.isTextFixed ? 'none' : 'rgba(0, 0, 0, 0.6)';
31888
32549
  });
31889
- var CloseButton$4 = /*#__PURE__*/styled.div.withConfig({
32550
+ var CloseButton$5 = /*#__PURE__*/styled.div.withConfig({
31890
32551
  displayName: "ImageCarousel__CloseButton",
31891
32552
  componentId: "sc-jl6f8-4"
31892
32553
  })(["position:absolute;top:3px;right:0px;color:white;z-index:22;font-size:1.5rem;@media (max-width:950px){font-size:1.7rem;padding:12px;}"]);
@@ -32068,48 +32729,6 @@ var usePagination = function usePagination(_ref) {
32068
32729
  };
32069
32730
  };
32070
32731
 
32071
- var Pagination = function Pagination(_ref) {
32072
- var currentPage = _ref.currentPage,
32073
- totalPages = _ref.totalPages,
32074
- onPageChange = _ref.onPageChange,
32075
- className = _ref.className;
32076
- return React.createElement(Container$r, {
32077
- className: className
32078
- }, React.createElement(PaginationButton$1, {
32079
- onClick: function onClick() {
32080
- return onPageChange(Math.max(1, currentPage - 1));
32081
- },
32082
- disabled: currentPage === 1
32083
- }, React.createElement(FaChevronLeft, {
32084
- size: 12
32085
- })), React.createElement(PageInfo$1, null, "Page ", currentPage, " of ", totalPages), React.createElement(PaginationButton$1, {
32086
- onClick: function onClick() {
32087
- return onPageChange(Math.min(totalPages, currentPage + 1));
32088
- },
32089
- disabled: currentPage === totalPages
32090
- }, React.createElement(FaChevronRight, {
32091
- size: 12
32092
- })));
32093
- };
32094
- var Container$r = /*#__PURE__*/styled.div.withConfig({
32095
- displayName: "Pagination__Container",
32096
- componentId: "sc-3k4m4u-0"
32097
- })(["display:flex;align-items:center;justify-content:center;gap:16px;padding:8px;"]);
32098
- var PaginationButton$1 = /*#__PURE__*/styled.button.withConfig({
32099
- displayName: "Pagination__PaginationButton",
32100
- componentId: "sc-3k4m4u-1"
32101
- })(["background:none;border:none;color:", ";cursor:", ";opacity:", ";padding:4px;display:flex;align-items:center;justify-content:center;transition:opacity 0.2s;&:hover:not(:disabled){opacity:1;}"], function (props) {
32102
- return props.disabled ? uiColors.darkGray : uiColors.yellow;
32103
- }, function (props) {
32104
- return props.disabled ? 'not-allowed' : 'pointer';
32105
- }, function (props) {
32106
- return props.disabled ? 0.5 : 0.8;
32107
- });
32108
- var PageInfo$1 = /*#__PURE__*/styled.div.withConfig({
32109
- displayName: "Pagination__PageInfo",
32110
- componentId: "sc-3k4m4u-2"
32111
- })(["color:", ";font-size:0.8rem;font-family:'Press Start 2P',cursive;"], uiColors.lightGray);
32112
-
32113
32732
  var SearchHeader$1 = function SearchHeader(_ref) {
32114
32733
  var searchOptions = _ref.searchOptions,
32115
32734
  filterOptions = _ref.filterOptions,
@@ -32204,7 +32823,7 @@ var PaginatedContent = function PaginatedContent(_ref) {
32204
32823
  }, (searchOptions || filterOptions) && React.createElement(SearchHeader$1, {
32205
32824
  searchOptions: searchOptions,
32206
32825
  filterOptions: filterOptions
32207
- }), items.length === 0 ? React.createElement(EmptyMessage$1, null, emptyMessage) : React.createElement(React.Fragment, null, React.createElement(Content, {
32826
+ }), items.length === 0 ? React.createElement(EmptyMessage$2, null, emptyMessage) : React.createElement(React.Fragment, null, React.createElement(Content, {
32208
32827
  className: "PaginatedContent-content " + layout,
32209
32828
  "$gridColumns": gridColumns,
32210
32829
  "$itemHeight": itemHeight
@@ -32240,7 +32859,7 @@ var PaginationContainer$1 = /*#__PURE__*/styled.div.withConfig({
32240
32859
  displayName: "PaginatedContent__PaginationContainer",
32241
32860
  componentId: "sc-lzp9hn-2"
32242
32861
  })(["display:flex;justify-content:center;padding:0.5rem;@media (min-width:480px){padding:1rem;}"]);
32243
- var EmptyMessage$1 = /*#__PURE__*/styled.div.withConfig({
32862
+ var EmptyMessage$2 = /*#__PURE__*/styled.div.withConfig({
32244
32863
  displayName: "PaginatedContent__EmptyMessage",
32245
32864
  componentId: "sc-lzp9hn-3"
32246
32865
  })(["text-align:center;color:#9ca3af;padding:2rem;flex:1;display:flex;align-items:center;justify-content:center;"]);
@@ -32343,24 +32962,24 @@ var BaseInformationDetails = function BaseInformationDetails(_ref) {
32343
32962
  atlasIMG = _ref.atlasIMG,
32344
32963
  onBack = _ref.onBack,
32345
32964
  children = _ref.children;
32346
- return React.createElement(Container$t, null, React.createElement(Overlay, {
32965
+ return React.createElement(Container$t, null, React.createElement(Overlay$2, {
32347
32966
  onClick: onBack
32348
- }), React.createElement(Modal, null, React.createElement(CloseButton$5, {
32967
+ }), React.createElement(Modal, null, React.createElement(CloseButton$6, {
32349
32968
  onClick: onBack
32350
- }, React.createElement(FaTimes, null)), React.createElement(Header$2, null, React.createElement(SpriteContainer$2, null, React.createElement(SpriteFromAtlas, {
32969
+ }, React.createElement(FaTimes, null)), React.createElement(Header$3, null, React.createElement(SpriteContainer$2, null, React.createElement(SpriteFromAtlas, {
32351
32970
  atlasJSON: atlasJSON,
32352
32971
  atlasIMG: atlasIMG,
32353
32972
  spriteKey: spriteKey,
32354
32973
  width: 32,
32355
32974
  height: 32,
32356
32975
  imgScale: 1
32357
- })), React.createElement(Title$3, null, name)), React.createElement(Content$1, null, children)));
32976
+ })), React.createElement(Title$4, null, name)), React.createElement(Content$1, null, children)));
32358
32977
  };
32359
32978
  var Container$t = /*#__PURE__*/styled.div.withConfig({
32360
32979
  displayName: "BaseInformationDetails__Container",
32361
32980
  componentId: "sc-1vguuz8-0"
32362
32981
  })(["position:fixed;inset:0;display:flex;justify-content:center;align-items:center;z-index:9999;"]);
32363
- var Overlay = /*#__PURE__*/styled.div.withConfig({
32982
+ var Overlay$2 = /*#__PURE__*/styled.div.withConfig({
32364
32983
  displayName: "BaseInformationDetails__Overlay",
32365
32984
  componentId: "sc-1vguuz8-1"
32366
32985
  })(["position:fixed;inset:0;background-color:rgba(0,0,0,0.8);"]);
@@ -32368,11 +32987,11 @@ var Modal = /*#__PURE__*/styled.div.withConfig({
32368
32987
  displayName: "BaseInformationDetails__Modal",
32369
32988
  componentId: "sc-1vguuz8-2"
32370
32989
  })(["position:relative;background-color:rgba(0,0,0,0.95);border-radius:4px;padding:12px;overflow:hidden;z-index:1;font-family:'Press Start 2P',cursive;border:1px solid ", ";box-shadow:0 2px 4px rgba(0,0,0,0.2);width:90%;height:90vh;max-width:800px;max-height:800px;@media (max-width:768px){width:100%;height:100%;border-radius:0;padding:8px;}&::-webkit-scrollbar{width:2px;}&::-webkit-scrollbar-track{background:transparent;}&::-webkit-scrollbar-thumb{background-color:", ";border-radius:4px;opacity:0.5;&:hover{opacity:1;}}scrollbar-width:thin;scrollbar-color:", " transparent;"], uiColors.darkGray, uiColors.yellow, uiColors.yellow);
32371
- var CloseButton$5 = /*#__PURE__*/styled.button.withConfig({
32990
+ var CloseButton$6 = /*#__PURE__*/styled.button.withConfig({
32372
32991
  displayName: "BaseInformationDetails__CloseButton",
32373
32992
  componentId: "sc-1vguuz8-3"
32374
32993
  })(["position:absolute;top:20px;right:20px;background:none;border:none;color:", ";font-size:1.2rem;cursor:pointer;padding:0;z-index:1;transition:transform 0.2s ease;&:hover{transform:scale(1.1);}"], uiColors.yellow);
32375
- var Header$2 = /*#__PURE__*/styled.div.withConfig({
32994
+ var Header$3 = /*#__PURE__*/styled.div.withConfig({
32376
32995
  displayName: "BaseInformationDetails__Header",
32377
32996
  componentId: "sc-1vguuz8-4"
32378
32997
  })(["display:flex;align-items:center;gap:16px;margin-bottom:24px;"]);
@@ -32380,7 +32999,7 @@ var Content$1 = /*#__PURE__*/styled.div.withConfig({
32380
32999
  displayName: "BaseInformationDetails__Content",
32381
33000
  componentId: "sc-1vguuz8-5"
32382
33001
  })(["display:flex;flex-direction:column;gap:12px;height:calc(100% - 80px);overflow-y:auto;overflow-x:hidden;padding-right:6px;margin-right:-6px;@media (max-width:768px){height:calc(100% - 64px);gap:8px;padding-right:4px;margin-right:-4px;}"]);
32383
- var Title$3 = /*#__PURE__*/styled.h2.withConfig({
33002
+ var Title$4 = /*#__PURE__*/styled.h2.withConfig({
32384
33003
  displayName: "BaseInformationDetails__Title",
32385
33004
  componentId: "sc-1vguuz8-6"
32386
33005
  })(["color:", ";font-size:1rem;margin:0;"], uiColors.yellow);
@@ -32400,21 +33019,21 @@ var Collapsible = function Collapsible(_ref) {
32400
33019
  setIsOpen = _useState[1];
32401
33020
  return React.createElement(Container$u, {
32402
33021
  className: className
32403
- }, React.createElement(Header$3, {
33022
+ }, React.createElement(Header$4, {
32404
33023
  onClick: function onClick() {
32405
33024
  return setIsOpen(!isOpen);
32406
33025
  }
32407
- }, React.createElement(Title$4, null, title), React.createElement(Icon$1, null, isOpen ? React.createElement(FaChevronUp, null) : React.createElement(FaChevronDown, null))), isOpen && React.createElement(Content$2, null, children));
33026
+ }, React.createElement(Title$5, null, title), React.createElement(Icon$1, null, isOpen ? React.createElement(FaChevronUp, null) : React.createElement(FaChevronDown, null))), isOpen && React.createElement(Content$2, null, children));
32408
33027
  };
32409
33028
  var Container$u = /*#__PURE__*/styled.div.withConfig({
32410
33029
  displayName: "Collapsible__Container",
32411
33030
  componentId: "sc-s4h8ey-0"
32412
33031
  })(["background:rgba(0,0,0,0.3);border-radius:4px;overflow:hidden;border:1px solid ", ";"], uiColors.darkGray);
32413
- var Header$3 = /*#__PURE__*/styled.div.withConfig({
33032
+ var Header$4 = /*#__PURE__*/styled.div.withConfig({
32414
33033
  displayName: "Collapsible__Header",
32415
33034
  componentId: "sc-s4h8ey-1"
32416
33035
  })(["padding:10px 12px;background:rgba(0,0,0,0.2);display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:background-color 0.2s ease;&:hover{background:rgba(0,0,0,0.4);}"]);
32417
- var Title$4 = /*#__PURE__*/styled.h3.withConfig({
33036
+ var Title$5 = /*#__PURE__*/styled.h3.withConfig({
32418
33037
  displayName: "Collapsible__Title",
32419
33038
  componentId: "sc-s4h8ey-2"
32420
33039
  })(["margin:0;font-size:0.6rem;color:", ";font-family:'Press Start 2P',cursive;letter-spacing:0.5px;"], uiColors.yellow);
@@ -32752,7 +33371,7 @@ var AdvancedFilters = function AdvancedFilters(_ref) {
32752
33371
  return rangeValue[0] !== undefined || rangeValue[1] !== undefined;
32753
33372
  }
32754
33373
  return section.value !== 'all';
32755
- }).length)), isOpen && React.createElement(Portal, null, isMobile && React.createElement(Overlay$1, null), React.createElement(FiltersPanel, {
33374
+ }).length)), isOpen && React.createElement(Portal, null, isMobile && React.createElement(Overlay$3, null), React.createElement(FiltersPanel, {
32756
33375
  ref: panelRef,
32757
33376
  style: {
32758
33377
  position: 'fixed',
@@ -32761,7 +33380,7 @@ var AdvancedFilters = function AdvancedFilters(_ref) {
32761
33380
  zIndex: 9999
32762
33381
  },
32763
33382
  "$isMobile": isMobile
32764
- }, React.createElement(FilterHeader, null, React.createElement(FilterTitle, null, "Advanced Filters"), React.createElement(CloseButton$6, {
33383
+ }, React.createElement(FilterHeader, null, React.createElement(FilterTitle, null, "Advanced Filters"), React.createElement(CloseButton$7, {
32765
33384
  onClick: handleClose
32766
33385
  }, "\xD7")), sections.map(renderFilterSection), hasActiveFilters && React.createElement(ClearFiltersButton, {
32767
33386
  onClick: onClearAll
@@ -32809,7 +33428,7 @@ var FilterHeader = /*#__PURE__*/styled.div.withConfig({
32809
33428
  displayName: "AdvancedFilters__FilterHeader",
32810
33429
  componentId: "sc-1xj6ldr-4"
32811
33430
  })(["display:flex;align-items:center;justify-content:space-between;padding-bottom:0.75rem;margin-bottom:0.5rem;border-bottom:1px solid #333;"]);
32812
- var Overlay$1 = /*#__PURE__*/styled.div.withConfig({
33431
+ var Overlay$3 = /*#__PURE__*/styled.div.withConfig({
32813
33432
  displayName: "AdvancedFilters__Overlay",
32814
33433
  componentId: "sc-1xj6ldr-5"
32815
33434
  })(["position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.6);z-index:9998;animation:fadeIn 0.2s ease-out;@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}"]);
@@ -32833,7 +33452,7 @@ var ClearFiltersButton = /*#__PURE__*/styled.button.withConfig({
32833
33452
  displayName: "AdvancedFilters__ClearFiltersButton",
32834
33453
  componentId: "sc-1xj6ldr-10"
32835
33454
  })(["width:100%;background:transparent;color:#666;border:none;padding:0.75rem 0;margin-top:0.5rem;cursor:pointer;font-size:0.65rem;transition:all 0.2s;border-top:1px solid #333;text-transform:uppercase;letter-spacing:0.05em;font-family:'Press Start 2P',cursive;&:hover{color:#ffd700;}"]);
32836
- var CloseButton$6 = /*#__PURE__*/styled.button.withConfig({
33455
+ var CloseButton$7 = /*#__PURE__*/styled.button.withConfig({
32837
33456
  displayName: "AdvancedFilters__CloseButton",
32838
33457
  componentId: "sc-1xj6ldr-11"
32839
33458
  })(["background:transparent;border:none;color:#999;font-size:1.5rem;line-height:1;cursor:pointer;padding:0;margin:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;&:hover{color:#ffd700;}"]);
@@ -33818,7 +34437,7 @@ var InformationCenter = function InformationCenter(_ref) {
33818
34437
  return React.createElement(LoadingMessage, null, "Loading...");
33819
34438
  }
33820
34439
  if (error) {
33821
- return React.createElement(ErrorMessage, null, error);
34440
+ return React.createElement(ErrorMessage$1, null, error);
33822
34441
  }
33823
34442
  var tabs = [{
33824
34443
  id: 'bestiary',
@@ -33880,7 +34499,7 @@ var LoadingMessage = /*#__PURE__*/styled.div.withConfig({
33880
34499
  displayName: "InformationCenter__LoadingMessage",
33881
34500
  componentId: "sc-1ttl62e-1"
33882
34501
  })(["text-align:center;color:#ffffff;padding:2rem;"]);
33883
- var ErrorMessage = /*#__PURE__*/styled.div.withConfig({
34502
+ var ErrorMessage$1 = /*#__PURE__*/styled.div.withConfig({
33884
34503
  displayName: "InformationCenter__ErrorMessage",
33885
34504
  componentId: "sc-1ttl62e-2"
33886
34505
  })(["text-align:center;color:#ef4444;padding:2rem;"]);
@@ -34175,7 +34794,7 @@ var QuantitySelector = function QuantitySelector(_ref) {
34175
34794
  return React.createElement(StyledContainer, {
34176
34795
  type: RPGUIContainerTypes.Framed,
34177
34796
  width: "25rem"
34178
- }, React.createElement(CloseButton$7, {
34797
+ }, React.createElement(CloseButton$8, {
34179
34798
  className: "container-close",
34180
34799
  onPointerDown: onClose
34181
34800
  }, "X"), React.createElement("h2", null, title), React.createElement(StyledForm, {
@@ -34187,7 +34806,7 @@ var QuantitySelector = function QuantitySelector(_ref) {
34187
34806
  }
34188
34807
  },
34189
34808
  noValidate: true
34190
- }, React.createElement(StyledInput, {
34809
+ }, React.createElement(StyledInput$1, {
34191
34810
  ref: inputRef,
34192
34811
  placeholder: "Enter quantity",
34193
34812
  type: "number",
@@ -34220,7 +34839,7 @@ var StyledContainer = /*#__PURE__*/styled(RPGUIContainer).withConfig({
34220
34839
  displayName: "QuantitySelector__StyledContainer",
34221
34840
  componentId: "sc-z4ut57-0"
34222
34841
  })(["position:relative;display:flex;flex-direction:column;align-items:center;padding:1rem;h2{margin:0;margin-bottom:1rem;font-size:1rem;}"]);
34223
- var CloseButton$7 = /*#__PURE__*/styled.div.withConfig({
34842
+ var CloseButton$8 = /*#__PURE__*/styled.div.withConfig({
34224
34843
  displayName: "QuantitySelector__CloseButton",
34225
34844
  componentId: "sc-z4ut57-1"
34226
34845
  })(["position:absolute;top:3px;right:0px;color:white;z-index:22;font-size:1.5rem;cursor:pointer;"]);
@@ -34228,7 +34847,7 @@ var StyledForm = /*#__PURE__*/styled.form.withConfig({
34228
34847
  displayName: "QuantitySelector__StyledForm",
34229
34848
  componentId: "sc-z4ut57-2"
34230
34849
  })(["display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%;"]);
34231
- var StyledInput = /*#__PURE__*/styled.input.withConfig({
34850
+ var StyledInput$1 = /*#__PURE__*/styled.input.withConfig({
34232
34851
  displayName: "QuantitySelector__StyledInput",
34233
34852
  componentId: "sc-z4ut57-3"
34234
34853
  })(["width:100%;padding:0.5rem;background-color:rgba(0,0,0,0.25);border:none;color:white;font-size:1rem;text-align:center;&::-webkit-inner-spin-button,&::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;}&[type='number']{-moz-appearance:textfield;}"]);
@@ -34491,78 +35110,6 @@ var ItemsContainer = /*#__PURE__*/styled.div.withConfig({
34491
35110
  return isFullScreen && '50%';
34492
35111
  });
34493
35112
 
34494
- // Global style to prevent body scrolling when modal is open
34495
- var GlobalStyle = /*#__PURE__*/createGlobalStyle(["body{overflow:hidden;width:100%;height:100%;}"]);
34496
- var ConfirmModal = function ConfirmModal(_ref) {
34497
- var onConfirm = _ref.onConfirm,
34498
- onClose = _ref.onClose,
34499
- _ref$message = _ref.message,
34500
- message = _ref$message === void 0 ? 'Are you sure?' : _ref$message;
34501
- var handleConfirm = useCallback(function (e) {
34502
- e.preventDefault();
34503
- e.stopPropagation();
34504
- onConfirm();
34505
- }, [onConfirm]);
34506
- var handleClose = useCallback(function (e) {
34507
- e.preventDefault();
34508
- e.stopPropagation();
34509
- onClose();
34510
- }, [onClose]);
34511
- // Fix type issues by separating event handlers for different event types
34512
- var stopPropagationClick = useCallback(function (e) {
34513
- e.stopPropagation();
34514
- }, []);
34515
- var stopPropagationTouch = useCallback(function (e) {
34516
- e.stopPropagation();
34517
- }, []);
34518
- var stopPropagationPointer = useCallback(function (e) {
34519
- e.stopPropagation();
34520
- }, []);
34521
- return React.createElement(ModalPortal, null, React.createElement(GlobalStyle, null), React.createElement(Overlay$2, {
34522
- onPointerDown: handleClose
34523
- }), React.createElement(ModalContainer, null, React.createElement(ModalContent, {
34524
- onClick: stopPropagationClick,
34525
- onTouchStart: stopPropagationTouch,
34526
- onTouchEnd: stopPropagationTouch,
34527
- onTouchMove: stopPropagationTouch,
34528
- onPointerDown: stopPropagationPointer
34529
- }, React.createElement(MessageContainer, null, typeof message === 'string' ? React.createElement(Message$1, null, message) : message), React.createElement(ButtonsContainer$2, null, React.createElement(CancelButtonWrapper, null, React.createElement(Button, {
34530
- buttonType: ButtonTypes.RPGUIButton,
34531
- onPointerDown: handleClose
34532
- }, "No")), React.createElement(Button, {
34533
- buttonType: ButtonTypes.RPGUIButton,
34534
- onPointerDown: handleConfirm
34535
- }, "Yes")))));
34536
- };
34537
- var Overlay$2 = /*#__PURE__*/styled.div.withConfig({
34538
- displayName: "ConfirmModal__Overlay",
34539
- componentId: "sc-11qkyu1-0"
34540
- })(["position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.6);z-index:1000;animation:fadeIn 0.2s ease-out;cursor:pointer;touch-action:none;@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}"]);
34541
- var ModalContainer = /*#__PURE__*/styled.div.withConfig({
34542
- displayName: "ConfirmModal__ModalContainer",
34543
- componentId: "sc-11qkyu1-1"
34544
- })(["position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;z-index:1001;pointer-events:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);"]);
34545
- var ModalContent = /*#__PURE__*/styled.div.withConfig({
34546
- displayName: "ConfirmModal__ModalContent",
34547
- componentId: "sc-11qkyu1-2"
34548
- })(["background-color:#2a2a2a;border:2px solid #444;border-radius:8px;padding:20px;min-width:300px;max-width:90%;margin:0 auto;animation:scaleIn 0.2s ease-out;transform-origin:center;box-shadow:0 4px 20px rgba(0,0,0,0.5),0 0 40px rgba(0,0,0,0.3);pointer-events:auto;@keyframes scaleIn{from{transform:scale(0.8);opacity:0;}to{transform:scale(1);opacity:1;}}@media (max-width:768px){padding:25px;width:85%;}"]);
34549
- var MessageContainer = /*#__PURE__*/styled.div.withConfig({
34550
- displayName: "ConfirmModal__MessageContainer",
34551
- componentId: "sc-11qkyu1-3"
34552
- })(["margin-bottom:20px;text-align:center;"]);
34553
- var Message$1 = /*#__PURE__*/styled.p.withConfig({
34554
- displayName: "ConfirmModal__Message",
34555
- componentId: "sc-11qkyu1-4"
34556
- })(["margin:0;font-size:16px;color:#fff;text-shadow:0 1px 0 rgba(0,0,0,0.5);@media (max-width:768px){font-size:18px;}"]);
34557
- var ButtonsContainer$2 = /*#__PURE__*/styled.div.withConfig({
34558
- displayName: "ConfirmModal__ButtonsContainer",
34559
- componentId: "sc-11qkyu1-5"
34560
- })(["display:flex;justify-content:center;gap:20px;@media (max-width:768px){gap:30px;transform:scale(1.1);margin-top:5px;}"]);
34561
- var CancelButtonWrapper = /*#__PURE__*/styled.div.withConfig({
34562
- displayName: "ConfirmModal__CancelButtonWrapper",
34563
- componentId: "sc-11qkyu1-6"
34564
- })(["filter:grayscale(0.7);"]);
34565
-
34566
35113
  var ColorSelector = function ColorSelector(_ref) {
34567
35114
  var selectedColor = _ref.selectedColor,
34568
35115
  isOpen = _ref.isOpen,
@@ -34605,13 +35152,13 @@ var ColorSelector = function ColorSelector(_ref) {
34605
35152
  cancelDrag: ".react-colorful",
34606
35153
  width: "25rem",
34607
35154
  onCloseButton: onClose
34608
- }, React.createElement(Container$y, null, React.createElement(Header$4, null, "Select Color"), React.createElement(ColorPickerWrapper, null, React.createElement(HexColorPicker, {
35155
+ }, React.createElement(Container$y, null, React.createElement(Header$5, null, "Select Color"), React.createElement(ColorPickerWrapper, null, React.createElement(HexColorPicker, {
34609
35156
  color: currentColor,
34610
35157
  onChange: function onChange(color) {
34611
35158
  setCurrentColor(color);
34612
35159
  _onChange(color);
34613
35160
  }
34614
- })), React.createElement(ButtonContainer$1, null, React.createElement(Button, {
35161
+ })), React.createElement(ButtonContainer$2, null, React.createElement(Button, {
34615
35162
  buttonType: ButtonTypes.RPGUIButton,
34616
35163
  type: "button",
34617
35164
  onClick: handleConfirm
@@ -34625,7 +35172,7 @@ var Container$y = /*#__PURE__*/styled.div.withConfig({
34625
35172
  displayName: "ItemPropertyColorSelector__Container",
34626
35173
  componentId: "sc-me1r4z-0"
34627
35174
  })(["text-align:center;background:inherit;display:flex;flex-direction:column;gap:1.5rem;align-items:center;width:100%;max-width:24rem;margin:0 auto;"]);
34628
- var Header$4 = /*#__PURE__*/styled.h2.withConfig({
35175
+ var Header$5 = /*#__PURE__*/styled.h2.withConfig({
34629
35176
  displayName: "ItemPropertyColorSelector__Header",
34630
35177
  componentId: "sc-me1r4z-1"
34631
35178
  })(["color:white;font-size:1rem;margin:0;width:100%;text-align:center;"]);
@@ -34633,7 +35180,7 @@ var ColorPickerWrapper = /*#__PURE__*/styled.div.withConfig({
34633
35180
  displayName: "ItemPropertyColorSelector__ColorPickerWrapper",
34634
35181
  componentId: "sc-me1r4z-2"
34635
35182
  })(["display:flex;justify-content:center;width:100%;.react-colorful{width:100%;max-width:200px;}"]);
34636
- var ButtonContainer$1 = /*#__PURE__*/styled.div.withConfig({
35183
+ var ButtonContainer$2 = /*#__PURE__*/styled.div.withConfig({
34637
35184
  displayName: "ItemPropertyColorSelector__ButtonContainer",
34638
35185
  componentId: "sc-me1r4z-3"
34639
35186
  })(["display:flex;justify-content:center;width:100%;"]);
@@ -34696,7 +35243,7 @@ var GemSelector = function GemSelector(_ref) {
34696
35243
  scale: scale,
34697
35244
  cancelDrag: ".gem-selector-container",
34698
35245
  onCloseButton: onClose
34699
- }, React.createElement(ContentWrapper$1, null, React.createElement(Header$5, null, React.createElement(Title$5, null, "GEM SELECTION"), React.createElement(Subtitle, null, "Select gems to detach")), React.createElement(GemGrid, null, (_item$attachedGems = item.attachedGems) == null ? void 0 : _item$attachedGems.map(function (gem, index) {
35246
+ }, React.createElement(ContentWrapper$1, null, React.createElement(Header$6, null, React.createElement(Title$6, null, "GEM SELECTION"), React.createElement(Subtitle, null, "Select gems to detach")), React.createElement(GemGrid, null, (_item$attachedGems = item.attachedGems) == null ? void 0 : _item$attachedGems.map(function (gem, index) {
34700
35247
  return React.createElement(GemItem, {
34701
35248
  key: gem.key + "-" + index
34702
35249
  }, React.createElement(CheckItemWrapper$1, null, React.createElement(CheckItem, {
@@ -34727,7 +35274,7 @@ var GemSelector = function GemSelector(_ref) {
34727
35274
  disabled: selectedGems.length === 0
34728
35275
  }, "Confirm"))));
34729
35276
  };
34730
- var Title$5 = /*#__PURE__*/styled.h1.withConfig({
35277
+ var Title$6 = /*#__PURE__*/styled.h1.withConfig({
34731
35278
  displayName: "GemSelector__Title",
34732
35279
  componentId: "sc-gbt8g4-0"
34733
35280
  })(["font-size:0.8rem;color:", " !important;"], uiColors.yellow);
@@ -34735,7 +35282,7 @@ var Subtitle = /*#__PURE__*/styled.h2.withConfig({
34735
35282
  displayName: "GemSelector__Subtitle",
34736
35283
  componentId: "sc-gbt8g4-1"
34737
35284
  })(["font-size:0.6rem;color:", ";margin:0;"], uiColors.white);
34738
- var Header$5 = /*#__PURE__*/styled.div.withConfig({
35285
+ var Header$6 = /*#__PURE__*/styled.div.withConfig({
34739
35286
  displayName: "GemSelector__Header",
34740
35287
  componentId: "sc-gbt8g4-2"
34741
35288
  })(["text-align:center;padding:5px;border-bottom:2px solid #444;"]);
@@ -34800,7 +35347,7 @@ var ItemSelector = function ItemSelector(_ref) {
34800
35347
  style: {
34801
35348
  width: '100%'
34802
35349
  }
34803
- }, React.createElement(Title$6, null, 'Harvesting instruments'), React.createElement(Subtitle$1, null, 'Use the tool, you need it'), React.createElement("hr", {
35350
+ }, React.createElement(Title$7, null, 'Harvesting instruments'), React.createElement(Subtitle$1, null, 'Use the tool, you need it'), React.createElement("hr", {
34804
35351
  className: "golden"
34805
35352
  })), React.createElement(RadioInputScroller$1, null, options == null ? void 0 : options.map(function (option, index) {
34806
35353
  return React.createElement(RadioOptionsWrapper$1, {
@@ -34829,7 +35376,7 @@ var ItemSelector = function ItemSelector(_ref) {
34829
35376
  buttonType: ButtonTypes.RPGUIButton
34830
35377
  }, "Select")));
34831
35378
  };
34832
- var Title$6 = /*#__PURE__*/styled.h1.withConfig({
35379
+ var Title$7 = /*#__PURE__*/styled.h1.withConfig({
34833
35380
  displayName: "ItemSelector__Title",
34834
35381
  componentId: "sc-gptoxp-0"
34835
35382
  })(["font-size:0.6rem;color:yellow !important;"]);
@@ -35081,7 +35628,7 @@ var MarketplaceRows = function MarketplaceRows(_ref) {
35081
35628
  maxLines: 1,
35082
35629
  maxWidth: "200px",
35083
35630
  fontSize: "10px"
35084
- }, "$", itemPrice)))), React.createElement(ButtonContainer$2, null, React.createElement(Button, {
35631
+ }, "$", itemPrice)))), React.createElement(ButtonContainer$3, null, React.createElement(Button, {
35085
35632
  buttonType: ButtonTypes.RPGUIButton,
35086
35633
  disabled: disabled,
35087
35634
  onPointerDown: function onPointerDown() {
@@ -35123,7 +35670,7 @@ var PriceValue = /*#__PURE__*/styled.div.withConfig({
35123
35670
  displayName: "MarketplaceRows__PriceValue",
35124
35671
  componentId: "sc-wmpr1o-7"
35125
35672
  })(["margin-left:40px;"]);
35126
- var ButtonContainer$2 = /*#__PURE__*/styled.div.withConfig({
35673
+ var ButtonContainer$3 = /*#__PURE__*/styled.div.withConfig({
35127
35674
  displayName: "MarketplaceRows__ButtonContainer",
35128
35675
  componentId: "sc-wmpr1o-8"
35129
35676
  })(["margin:auto;"]);
@@ -35700,7 +36247,7 @@ var PartyCreate = function PartyCreate(_ref) {
35700
36247
  style: {
35701
36248
  width: '100%'
35702
36249
  }
35703
- }, React.createElement(Title$7, null, "Create Party"), React.createElement("hr", {
36250
+ }, React.createElement(Title$8, null, "Create Party"), React.createElement("hr", {
35704
36251
  className: "golden"
35705
36252
  }))), React.createElement("h1", null, "Type your party name"), React.createElement(Input, {
35706
36253
  placeholder: "Type party name",
@@ -35723,7 +36270,7 @@ var Wrapper$1 = /*#__PURE__*/styled.div.withConfig({
35723
36270
  displayName: "PartyCreate__Wrapper",
35724
36271
  componentId: "sc-13brop0-0"
35725
36272
  })(["display:flex;flex-direction:column;width:100%;"]);
35726
- var Title$7 = /*#__PURE__*/styled.h1.withConfig({
36273
+ var Title$8 = /*#__PURE__*/styled.h1.withConfig({
35727
36274
  displayName: "PartyCreate__Title",
35728
36275
  componentId: "sc-13brop0-1"
35729
36276
  })(["font-size:0.6rem;color:", " !important;"], uiColors.yellow);
@@ -35772,7 +36319,7 @@ var PartyDashboard = function PartyDashboard(_ref) {
35772
36319
  style: {
35773
36320
  width: '100%'
35774
36321
  }
35775
- }, React.createElement(Title$8, null, "Party Dashboard"), React.createElement(Button, {
36322
+ }, React.createElement(Title$9, null, "Party Dashboard"), React.createElement(Button, {
35776
36323
  buttonType: ButtonTypes.RPGUIButton
35777
36324
  }, "Create"), React.createElement("hr", {
35778
36325
  className: "golden"
@@ -35799,7 +36346,7 @@ var RowsWrapper = /*#__PURE__*/styled.div.withConfig({
35799
36346
  displayName: "PartyDashboard__RowsWrapper",
35800
36347
  componentId: "sc-16cm41r-1"
35801
36348
  })(["overflow-y:scroll;-webkit-overflow-scrolling:touch;width:100%;height:200px;"]);
35802
- var Title$8 = /*#__PURE__*/styled.h1.withConfig({
36349
+ var Title$9 = /*#__PURE__*/styled.h1.withConfig({
35803
36350
  displayName: "PartyDashboard__Title",
35804
36351
  componentId: "sc-16cm41r-2"
35805
36352
  })(["font-size:0.6rem;color:", " !important;"], uiColors.yellow);
@@ -35836,7 +36383,7 @@ var PartyInvite = function PartyInvite(_ref) {
35836
36383
  style: {
35837
36384
  width: '100%'
35838
36385
  }
35839
- }, React.createElement(Title$9, null, "Invite for Party"), React.createElement("hr", {
36386
+ }, React.createElement(Title$a, null, "Invite for Party"), React.createElement("hr", {
35840
36387
  className: "golden"
35841
36388
  }))), React.createElement(RowsWrapper$1, {
35842
36389
  className: "playersRows"
@@ -35855,7 +36402,7 @@ var Wrapper$3 = /*#__PURE__*/styled.div.withConfig({
35855
36402
  displayName: "PartyInvite__Wrapper",
35856
36403
  componentId: "sc-eu8ggt-0"
35857
36404
  })(["display:flex;flex-direction:column;width:100%;"]);
35858
- var Title$9 = /*#__PURE__*/styled.h1.withConfig({
36405
+ var Title$a = /*#__PURE__*/styled.h1.withConfig({
35859
36406
  displayName: "PartyInvite__Title",
35860
36407
  componentId: "sc-eu8ggt-1"
35861
36408
  })(["font-size:0.6rem;color:", " !important;"], uiColors.yellow);
@@ -35892,7 +36439,7 @@ var PartyManagerRow = function PartyManagerRow(_ref) {
35892
36439
  }, charName, " ", isCurrentUser ? '(You)' : '', " ", isLeader ? '(Leader)' : '')), React.createElement(TextContainer$5, null, React.createElement(Ellipsis, {
35893
36440
  maxLines: 1,
35894
36441
  maxWidth: "300px"
35895
- }, charClass)), React.createElement(ButtonContainer$3, null, canRemove && React.createElement(HighlightedText, {
36442
+ }, charClass)), React.createElement(ButtonContainer$4, null, canRemove && React.createElement(HighlightedText, {
35896
36443
  onPointerDown: function onPointerDown() {
35897
36444
  return onRemovePlayer(id);
35898
36445
  }
@@ -35910,7 +36457,7 @@ var TextContainer$5 = /*#__PURE__*/styled.div.withConfig({
35910
36457
  displayName: "PartyManagerRows__TextContainer",
35911
36458
  componentId: "sc-uqajew-1"
35912
36459
  })(["color:", ";overflow:hidden;white-space:nowrap;text-overflow:ellipsis;"], uiColors.white);
35913
- var ButtonContainer$3 = /*#__PURE__*/styled.div.withConfig({
36460
+ var ButtonContainer$4 = /*#__PURE__*/styled.div.withConfig({
35914
36461
  displayName: "PartyManagerRows__ButtonContainer",
35915
36462
  componentId: "sc-uqajew-2"
35916
36463
  })(["display:flex;align-items:center;gap:1rem;justify-content:flex-start;"]);
@@ -36297,7 +36844,7 @@ var QuestInfo = function QuestInfo(_ref) {
36297
36844
  onPointerDown: onRightClick
36298
36845
  }), React.createElement(QuestContainer, null, React.createElement(TitleContainer$1, {
36299
36846
  className: "drag-handler"
36300
- }, React.createElement(Title$a, null, React.createElement(Thumbnail, {
36847
+ }, React.createElement(Title$b, null, React.createElement(Thumbnail, {
36301
36848
  src: quests[currentIndex].thumbnail || img$8
36302
36849
  }), quests[currentIndex].title), React.createElement(QuestSplitDiv, null, React.createElement("hr", {
36303
36850
  className: "golden"
@@ -36316,7 +36863,7 @@ var QuestInfo = function QuestInfo(_ref) {
36316
36863
  }, button.title);
36317
36864
  })))) : React.createElement(QuestsContainer, null, React.createElement(QuestContainer, null, React.createElement(TitleContainer$1, {
36318
36865
  className: "drag-handler"
36319
- }, React.createElement(Title$a, null, React.createElement(Thumbnail, {
36866
+ }, React.createElement(Title$b, null, React.createElement(Thumbnail, {
36320
36867
  src: quests[0].thumbnail || img$8
36321
36868
  }), quests[0].title), React.createElement(QuestSplitDiv, null, React.createElement("hr", {
36322
36869
  className: "golden"
@@ -36363,7 +36910,7 @@ var TitleContainer$1 = /*#__PURE__*/styled.div.withConfig({
36363
36910
  displayName: "QuestInfo__TitleContainer",
36364
36911
  componentId: "sc-1wccpiy-6"
36365
36912
  })(["width:100%;display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;margin-top:1rem;"]);
36366
- var Title$a = /*#__PURE__*/styled.h1.withConfig({
36913
+ var Title$b = /*#__PURE__*/styled.h1.withConfig({
36367
36914
  displayName: "QuestInfo__Title",
36368
36915
  componentId: "sc-1wccpiy-7"
36369
36916
  })(["color:white;z-index:22;font-size:", " !important;color:", " !important;"], uiFonts.size.medium, uiColors.yellow);
@@ -36503,76 +37050,6 @@ var RPGUIRoot = function RPGUIRoot(_ref) {
36503
37050
  }, children));
36504
37051
  };
36505
37052
 
36506
- var CTAButton = function CTAButton(_ref) {
36507
- var icon = _ref.icon,
36508
- label = _ref.label,
36509
- onClick = _ref.onClick,
36510
- className = _ref.className,
36511
- _ref$fullWidth = _ref.fullWidth,
36512
- fullWidth = _ref$fullWidth === void 0 ? false : _ref$fullWidth,
36513
- _ref$textColor = _ref.textColor,
36514
- textColor = _ref$textColor === void 0 ? '#ffffff' : _ref$textColor,
36515
- _ref$iconColor = _ref.iconColor,
36516
- iconColor = _ref$iconColor === void 0 ? '#f59e0b' : _ref$iconColor,
36517
- _ref$disabled = _ref.disabled,
36518
- disabled = _ref$disabled === void 0 ? false : _ref$disabled;
36519
- return React.createElement(ButtonContainer$4, {
36520
- className: className,
36521
- onPointerDown: disabled ? undefined : onClick,
36522
- "$fullWidth": fullWidth,
36523
- "$disabled": disabled,
36524
- "$color": textColor
36525
- }, React.createElement(ButtonContent, null, React.createElement(IconWrapper$1, {
36526
- "$color": iconColor,
36527
- "$disabled": disabled
36528
- }, icon), label && React.createElement(ButtonLabel, {
36529
- "$color": textColor,
36530
- "$disabled": disabled
36531
- }, label)));
36532
- };
36533
- var ButtonContainer$4 = /*#__PURE__*/styled.div.withConfig({
36534
- displayName: "CTAButton__ButtonContainer",
36535
- componentId: "sc-1azvwn5-0"
36536
- })(["display:inline-flex;align-items:center;padding:0.75rem 1.25rem;background:rgba(0,0,0,0.3);border:2px solid #f59e0b;box-shadow:0 0 10px rgba(245,158,11,0.3);border-radius:4px;cursor:", ";transition:all 0.2s;position:relative;opacity:", ";color:", ";", " &:hover{background:", ";box-shadow:", ";transform:", ";}&:active{transform:", ";box-shadow:", ";}&:before{content:'';position:absolute;inset:-1px;border-radius:5px;padding:1px;background:linear-gradient(45deg,#f59e0b,#fbbf24,#f59e0b);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;-webkit-mask-composite:destination-out;}"], function (props) {
36537
- return props.$disabled ? 'not-allowed' : 'pointer';
36538
- }, function (props) {
36539
- return props.$disabled ? 0.5 : 1;
36540
- }, function (props) {
36541
- return props.$disabled ? '#6b7280' : props.$color;
36542
- }, function (props) {
36543
- return props.$fullWidth && css(["display:flex;justify-content:center;"]);
36544
- }, function (props) {
36545
- return props.$disabled ? 'rgba(0, 0, 0, 0.3)' : 'rgba(0, 0, 0, 0.4)';
36546
- }, function (props) {
36547
- return props.$disabled ? '0 0 10px rgba(245, 158, 11, 0.3)' : '0 0 15px rgba(245, 158, 11, 0.4)';
36548
- }, function (props) {
36549
- return props.$disabled ? 'none' : 'translateY(-1px)';
36550
- }, function (props) {
36551
- return props.$disabled ? 'none' : 'translateY(1px)';
36552
- }, function (props) {
36553
- return props.$disabled ? '0 0 10px rgba(245, 158, 11, 0.3)' : '0 0 5px rgba(245, 158, 11, 0.2)';
36554
- });
36555
- var ButtonContent = /*#__PURE__*/styled.div.withConfig({
36556
- displayName: "CTAButton__ButtonContent",
36557
- componentId: "sc-1azvwn5-1"
36558
- })(["display:flex;align-items:center;gap:0.75rem;"]);
36559
- var IconWrapper$1 = /*#__PURE__*/styled.div.withConfig({
36560
- displayName: "CTAButton__IconWrapper",
36561
- componentId: "sc-1azvwn5-2"
36562
- })(["svg{font-size:1.25rem;color:", ";filter:drop-shadow(0 0 2px rgba(245,158,11,0.5));opacity:", ";}"], function (props) {
36563
- return props.$color;
36564
- }, function (props) {
36565
- return props.$disabled ? 0.5 : 1;
36566
- });
36567
- var ButtonLabel = /*#__PURE__*/styled.span.withConfig({
36568
- displayName: "CTAButton__ButtonLabel",
36569
- componentId: "sc-1azvwn5-3"
36570
- })(["color:", ";font-family:'Press Start 2P',cursive;font-size:0.875rem;text-shadow:0 0 4px rgba(245,158,11,0.5);opacity:", ";"], function (props) {
36571
- return props.$color;
36572
- }, function (props) {
36573
- return props.$disabled ? 0.5 : 1;
36574
- });
36575
-
36576
37053
  var Shortcuts = function Shortcuts(_ref) {
36577
37054
  var shortcuts = _ref.shortcuts,
36578
37055
  onShortcutCast = _ref.onShortcutCast,
@@ -36961,7 +37438,7 @@ var SkillsContainer = function SkillsContainer(_ref) {
36961
37438
  cancelDrag: "#skillsDiv",
36962
37439
  scale: scale,
36963
37440
  width: "100%"
36964
- }, onCloseButton && React.createElement(CloseButton$8, {
37441
+ }, onCloseButton && React.createElement(CloseButton$9, {
36965
37442
  onPointerDown: onCloseButton
36966
37443
  }, "X"), React.createElement(SkillsContainerDiv, {
36967
37444
  id: "skillsDiv"
@@ -36996,7 +37473,7 @@ var SkillSplitDiv = /*#__PURE__*/styled.div.withConfig({
36996
37473
  displayName: "SkillsContainer__SkillSplitDiv",
36997
37474
  componentId: "sc-1g0c67q-2"
36998
37475
  })(["width:100%;font-size:11px;hr{margin:0;margin-bottom:1rem;padding:0px;}p{margin-bottom:0px;}"]);
36999
- var CloseButton$8 = /*#__PURE__*/styled.div.withConfig({
37476
+ var CloseButton$9 = /*#__PURE__*/styled.div.withConfig({
37000
37477
  displayName: "SkillsContainer__CloseButton",
37001
37478
  componentId: "sc-1g0c67q-3"
37002
37479
  })(["position:absolute;top:2px;right:2px;color:white;z-index:22;font-size:1.1rem;"]);
@@ -37132,7 +37609,7 @@ var SpellInfo$1 = function SpellInfo(_ref) {
37132
37609
  castingType = spell.castingType,
37133
37610
  cooldown = spell.cooldown,
37134
37611
  maxDistanceGrid = spell.maxDistanceGrid;
37135
- return React.createElement(Container$F, null, React.createElement(Header$6, null, React.createElement("div", null, React.createElement(Title$b, null, name), React.createElement(Type$1, null, magicWords))), React.createElement(Statistic$1, null, React.createElement("div", {
37612
+ return React.createElement(Container$F, null, React.createElement(Header$7, null, React.createElement("div", null, React.createElement(Title$c, null, name), React.createElement(Type$1, null, magicWords))), React.createElement(Statistic$1, null, React.createElement("div", {
37136
37613
  className: "label"
37137
37614
  }, "Casting Type:"), React.createElement("div", {
37138
37615
  className: "value"
@@ -37162,7 +37639,7 @@ var Container$F = /*#__PURE__*/styled.div.withConfig({
37162
37639
  displayName: "SpellInfo__Container",
37163
37640
  componentId: "sc-4hbw3q-0"
37164
37641
  })(["color:white;background-color:#222;border-radius:5px;padding:0.5rem;font-size:", ";border:3px solid ", ";height:max-content;width:30rem;@media (max-width:580px){width:80vw;}"], uiFonts.size.small, uiColors.lightGray);
37165
- var Title$b = /*#__PURE__*/styled.div.withConfig({
37642
+ var Title$c = /*#__PURE__*/styled.div.withConfig({
37166
37643
  displayName: "SpellInfo__Title",
37167
37644
  componentId: "sc-4hbw3q-1"
37168
37645
  })(["font-size:", ";font-weight:bold;margin-bottom:0.5rem;display:flex;align-items:center;margin:0;"], uiFonts.size.medium);
@@ -37174,7 +37651,7 @@ var Description$4 = /*#__PURE__*/styled.div.withConfig({
37174
37651
  displayName: "SpellInfo__Description",
37175
37652
  componentId: "sc-4hbw3q-3"
37176
37653
  })(["margin-top:1.5rem;font-size:", ";color:", ";font-style:italic;"], uiFonts.size.small, uiColors.lightGray);
37177
- var Header$6 = /*#__PURE__*/styled.div.withConfig({
37654
+ var Header$7 = /*#__PURE__*/styled.div.withConfig({
37178
37655
  displayName: "SpellInfo__Header",
37179
37656
  componentId: "sc-4hbw3q-4"
37180
37657
  })(["display:flex;align-items:center;justify-content:space-between;margin-bottom:0.5rem;"]);
@@ -37390,7 +37867,7 @@ var Spell = function Spell(_ref) {
37390
37867
  onPointerUp: onPointerUp == null ? void 0 : onPointerUp.bind(null, spellKey),
37391
37868
  isSettingShortcut: isSettingShortcut && !disabled,
37392
37869
  className: "spell"
37393
- }, disabled && React.createElement(Overlay$3, null, characterSkillLevel < requiredLevel ? "Low " + getSkillName(attribute || 'magic level') + " level" : manaCost > charMana && 'No mana'), React.createElement(SpellImage, null, activeCooldown && activeCooldown > 0 ? React.createElement("span", {
37870
+ }, disabled && React.createElement(Overlay$4, null, characterSkillLevel < requiredLevel ? "Low " + getSkillName(attribute || 'magic level') + " level" : manaCost > charMana && 'No mana'), React.createElement(SpellImage, null, activeCooldown && activeCooldown > 0 ? React.createElement("span", {
37394
37871
  className: "cooldown"
37395
37872
  }, activeCooldown.toFixed(activeCooldown > 10 ? 0 : 1)) : null, React.createElement(SpriteFromAtlas, {
37396
37873
  atlasIMG: atlasIMG,
@@ -37399,7 +37876,7 @@ var Spell = function Spell(_ref) {
37399
37876
  imgScale: IMAGE_SCALE,
37400
37877
  containerStyle: CONTAINER_STYLE,
37401
37878
  centered: true
37402
- })), React.createElement(Info, null, React.createElement(Title$c, null, React.createElement("span", null, name), React.createElement("span", {
37879
+ })), React.createElement(Info, null, React.createElement(Title$d, null, React.createElement("span", null, name), React.createElement("span", {
37403
37880
  className: "spell"
37404
37881
  }, "(", magicWords, ")")), React.createElement(Description$5, null, description)), React.createElement(Divider$1, null), React.createElement(Cost, null, React.createElement("span", null, "Mana cost:"), React.createElement("span", {
37405
37882
  className: "mana"
@@ -37420,7 +37897,7 @@ var Info = /*#__PURE__*/styled.span.withConfig({
37420
37897
  displayName: "Spell__Info",
37421
37898
  componentId: "sc-j96fa2-2"
37422
37899
  })(["width:0;flex:1;@media (orientation:portrait){display:none;}"]);
37423
- var Title$c = /*#__PURE__*/styled.p.withConfig({
37900
+ var Title$d = /*#__PURE__*/styled.p.withConfig({
37424
37901
  displayName: "Spell__Title",
37425
37902
  componentId: "sc-j96fa2-3"
37426
37903
  })(["display:flex;flex-wrap:wrap;align-items:center;margin-bottom:5px;margin:0;span{font-size:", " !important;font-weight:bold !important;color:", " !important;margin-right:0.5rem;}.spell{font-size:", " !important;font-weight:normal !important;color:", " !important;}"], uiFonts.size.medium, uiColors.yellow, uiFonts.size.small, uiColors.lightGray);
@@ -37436,7 +37913,7 @@ var Cost = /*#__PURE__*/styled.p.withConfig({
37436
37913
  displayName: "Spell__Cost",
37437
37914
  componentId: "sc-j96fa2-6"
37438
37915
  })(["display:flex;align-items:center;flex-direction:column;gap:0.5rem;div{z-index:1;}.mana{position:relative;font-size:", ";font-weight:bold;z-index:1;&::after{position:absolute;content:'';top:0;left:0;background-color:", ";width:100%;height:100%;border-radius:50%;transform:scale(1.8);filter:blur(10px);z-index:-1;}}"], uiFonts.size.medium, uiColors.blue);
37439
- var Overlay$3 = /*#__PURE__*/styled.p.withConfig({
37916
+ var Overlay$4 = /*#__PURE__*/styled.p.withConfig({
37440
37917
  displayName: "Spell__Overlay",
37441
37918
  componentId: "sc-j96fa2-7"
37442
37919
  })(["margin:0 !important;position:absolute;top:0;left:0;width:100%;height:100%;border-radius:1rem;display:flex;justify-content:center;align-items:center;color:", ";font-size:", " !important;font-weight:bold;z-index:10;background-color:rgba(0 0 0 / 0.2);"], uiColors.yellow, uiFonts.size.large);
@@ -37485,7 +37962,7 @@ var Spellbook = function Spellbook(_ref) {
37485
37962
  height: "inherit",
37486
37963
  cancelDrag: "#spellbook-search, #shortcuts_list, .spell",
37487
37964
  scale: scale
37488
- }, React.createElement(Container$J, null, React.createElement(Title$d, null, "Learned Spells"), React.createElement(ShortcutsSetter, {
37965
+ }, React.createElement(Container$J, null, React.createElement(Title$e, null, "Learned Spells"), React.createElement(ShortcutsSetter, {
37489
37966
  setSettingShortcutIndex: setSettingShortcutIndex,
37490
37967
  settingShortcutIndex: settingShortcutIndex,
37491
37968
  shortcuts: shortcuts,
@@ -37518,7 +37995,7 @@ var Spellbook = function Spellbook(_ref) {
37518
37995
  }, spell)));
37519
37996
  }))));
37520
37997
  };
37521
- var Title$d = /*#__PURE__*/styled.h1.withConfig({
37998
+ var Title$e = /*#__PURE__*/styled.h1.withConfig({
37522
37999
  displayName: "Spellbook__Title",
37523
38000
  componentId: "sc-r02nfq-0"
37524
38001
  })(["font-size:", " !important;margin-bottom:0 !important;"], uiFonts.size.large);
@@ -57960,7 +58437,7 @@ var CartView = function CartView(_ref2) {
57960
58437
  return _ref3.apply(this, arguments);
57961
58438
  };
57962
58439
  }();
57963
- return React.createElement(Container$K, null, React.createElement(Header$7, null, React.createElement(Title$e, null, "Shopping Cart"), React.createElement(CloseButton$9, {
58440
+ return React.createElement(Container$K, null, React.createElement(Header$8, null, React.createElement(Title$f, null, "Shopping Cart"), React.createElement(CloseButton$a, {
57964
58441
  onPointerDown: onClose
57965
58442
  }, React.createElement(FaTimes, null))), React.createElement(CartItems, null, cartItems.length === 0 ? React.createElement(EmptyCart, null, "Your cart is empty") : cartItems.map(function (cartItem) {
57966
58443
  var _cartItem$metadata, _cartItem$metadata2;
@@ -57988,7 +58465,7 @@ var CartView = function CartView(_ref2) {
57988
58465
  onRemoveFromCart(cartItem.item.key);
57989
58466
  }
57990
58467
  }));
57991
- })), React.createElement(Footer$1, null, React.createElement(TotalInfo, null, React.createElement(TotalRow, null, React.createElement("span", null, "Total:"), React.createElement("span", null, "$", formatPrice(total))), error && React.createElement(ErrorMessage$1, null, error)), React.createElement(CTAButton, {
58468
+ })), React.createElement(Footer$1, null, React.createElement(TotalInfo, null, React.createElement(TotalRow, null, React.createElement("span", null, "Total:"), React.createElement("span", null, "$", formatPrice(total))), error && React.createElement(ErrorMessage$2, null, error)), React.createElement(CTAButton, {
57992
58469
  icon: React.createElement(FaShoppingBag, null),
57993
58470
  label: isLoading ? 'Processing...' : 'Complete Purchase',
57994
58471
  onClick: handlePurchase,
@@ -58000,15 +58477,15 @@ var Container$K = /*#__PURE__*/styled.div.withConfig({
58000
58477
  displayName: "CartView__Container",
58001
58478
  componentId: "sc-ydtyl1-0"
58002
58479
  })(["display:flex;flex-direction:column;width:100%;height:100%;gap:1.5rem;padding:1.5rem;"]);
58003
- var Header$7 = /*#__PURE__*/styled.div.withConfig({
58480
+ var Header$8 = /*#__PURE__*/styled.div.withConfig({
58004
58481
  displayName: "CartView__Header",
58005
58482
  componentId: "sc-ydtyl1-1"
58006
58483
  })(["display:flex;justify-content:space-between;align-items:center;"]);
58007
- var Title$e = /*#__PURE__*/styled.h2.withConfig({
58484
+ var Title$f = /*#__PURE__*/styled.h2.withConfig({
58008
58485
  displayName: "CartView__Title",
58009
58486
  componentId: "sc-ydtyl1-2"
58010
58487
  })(["font-family:'Press Start 2P',cursive;font-size:1rem;color:#ffffff;margin:0;"]);
58011
- var CloseButton$9 = /*#__PURE__*/styled.div.withConfig({
58488
+ var CloseButton$a = /*#__PURE__*/styled.div.withConfig({
58012
58489
  displayName: "CartView__CloseButton",
58013
58490
  componentId: "sc-ydtyl1-3"
58014
58491
  })(["padding:0.5rem;min-width:unset;width:42px;height:42px;display:flex;font-size:1.5rem;align-items:center;color:white;justify-content:center;"]);
@@ -58052,7 +58529,7 @@ var TotalRow = /*#__PURE__*/styled.div.withConfig({
58052
58529
  displayName: "CartView__TotalRow",
58053
58530
  componentId: "sc-ydtyl1-13"
58054
58531
  })(["display:flex;align-items:center;justify-content:space-between;gap:1rem;font-family:'Press Start 2P',cursive;font-size:1rem;color:#ffffff;span:last-child{color:#fef08a;}"]);
58055
- var ErrorMessage$1 = /*#__PURE__*/styled.div.withConfig({
58532
+ var ErrorMessage$2 = /*#__PURE__*/styled.div.withConfig({
58056
58533
  displayName: "CartView__ErrorMessage",
58057
58534
  componentId: "sc-ydtyl1-14"
58058
58535
  })(["color:#ef4444;font-size:0.875rem;font-family:'Press Start 2P',cursive;text-align:center;"]);
@@ -58350,7 +58827,7 @@ var ScrollableContent = function ScrollableContent(_ref) {
58350
58827
  _ref$maxHeight = _ref.maxHeight,
58351
58828
  maxHeight = _ref$maxHeight === void 0 ? '500px' : _ref$maxHeight;
58352
58829
  if (items.length === 0) {
58353
- return React.createElement(EmptyMessage$2, null, emptyMessage);
58830
+ return React.createElement(EmptyMessage$3, null, emptyMessage);
58354
58831
  }
58355
58832
  return React.createElement(Container$L, {
58356
58833
  className: className
@@ -58409,7 +58886,7 @@ var Content$4 = /*#__PURE__*/styled.div.withConfig({
58409
58886
  }, function (props) {
58410
58887
  return props.$gridColumns;
58411
58888
  });
58412
- var EmptyMessage$2 = /*#__PURE__*/styled.div.withConfig({
58889
+ var EmptyMessage$3 = /*#__PURE__*/styled.div.withConfig({
58413
58890
  displayName: "ScrollableContent__EmptyMessage",
58414
58891
  componentId: "sc-xhh2um-8"
58415
58892
  })(["text-align:center;color:#9ca3af;padding:2rem;flex:1;display:flex;align-items:center;justify-content:center;"]);
@@ -58490,7 +58967,7 @@ var StoreCharacterSkinRow = function StoreCharacterSkinRow(_ref) {
58490
58967
  height: 32,
58491
58968
  imgScale: 2,
58492
58969
  centered: true
58493
- }) : React.createElement(DefaultIcon, null, "\uD83D\uDC64")), React.createElement(ItemDetails$1, null, React.createElement(Header$8, null, React.createElement(ItemName$1, null, item.name)), availableCharacters.length > 0 && currentCharacter && React.createElement(SelectedSkinNav, null, React.createElement(SelectedSkin, null, "Selected:"), React.createElement(SkinNavArrow, {
58970
+ }) : React.createElement(DefaultIcon, null, "\uD83D\uDC64")), React.createElement(ItemDetails$1, null, React.createElement(Header$9, null, React.createElement(ItemName$1, null, item.name)), availableCharacters.length > 0 && currentCharacter && React.createElement(SelectedSkinNav, null, React.createElement(SelectedSkin, null, "Selected:"), React.createElement(SkinNavArrow, {
58494
58971
  direction: "left",
58495
58972
  onPointerDown: handlePreviousSkin,
58496
58973
  size: 24
@@ -58542,7 +59019,7 @@ var SkinNavArrow = /*#__PURE__*/styled(SelectArrow).withConfig({
58542
59019
  displayName: "StoreCharacterSkinRow__SkinNavArrow",
58543
59020
  componentId: "sc-81xqsx-7"
58544
59021
  })(["position:static;"]);
58545
- var Header$8 = /*#__PURE__*/styled.div.withConfig({
59022
+ var Header$9 = /*#__PURE__*/styled.div.withConfig({
58546
59023
  displayName: "StoreCharacterSkinRow__Header",
58547
59024
  componentId: "sc-81xqsx-8"
58548
59025
  })(["display:flex;align-items:center;gap:0.5rem;"]);
@@ -58945,7 +59422,7 @@ var StoreItemDetails = function StoreItemDetails(_ref) {
58945
59422
  if (typeof imageUrl === 'string') return imageUrl;
58946
59423
  return imageUrl["default"] || imageUrl.src;
58947
59424
  };
58948
- return React.createElement(Container$M, null, React.createElement(Header$9, null, React.createElement(BackButton, {
59425
+ return React.createElement(Container$M, null, React.createElement(Header$a, null, React.createElement(BackButton, {
58949
59426
  onClick: onBack
58950
59427
  }, React.createElement(FaArrowLeft, null), React.createElement("span", null, "Back"))), React.createElement(Content$5, null, React.createElement(DetailsGrid, null, React.createElement(ItemIcon, null, React.createElement("img", {
58951
59428
  src: getImageSrc(),
@@ -58963,7 +59440,7 @@ var Container$M = /*#__PURE__*/styled.div.withConfig({
58963
59440
  displayName: "StoreItemDetails__Container",
58964
59441
  componentId: "sc-k3ho5z-0"
58965
59442
  })(["display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem;height:100%;"]);
58966
- var Header$9 = /*#__PURE__*/styled.div.withConfig({
59443
+ var Header$a = /*#__PURE__*/styled.div.withConfig({
58967
59444
  displayName: "StoreItemDetails__Header",
58968
59445
  componentId: "sc-k3ho5z-1"
58969
59446
  })(["display:flex;align-items:center;gap:1rem;"]);
@@ -59131,7 +59608,7 @@ var Store = function Store(_ref) {
59131
59608
  return React.createElement(LoadingMessage$1, null, "Loading...");
59132
59609
  }
59133
59610
  if (error) {
59134
- return React.createElement(ErrorMessage$2, null, error);
59611
+ return React.createElement(ErrorMessage$3, null, error);
59135
59612
  }
59136
59613
  // Build tabs dynamically based on props
59137
59614
  var tabIds = tabOrder != null ? tabOrder : ['premium', 'packs', 'items'];
@@ -59299,7 +59776,7 @@ var LoadingMessage$1 = /*#__PURE__*/styled.div.withConfig({
59299
59776
  displayName: "Store__LoadingMessage",
59300
59777
  componentId: "sc-64dj00-8"
59301
59778
  })(["text-align:center;color:", ";padding:2rem;"], uiColors.white);
59302
- var ErrorMessage$2 = /*#__PURE__*/styled.div.withConfig({
59779
+ var ErrorMessage$3 = /*#__PURE__*/styled.div.withConfig({
59303
59780
  displayName: "Store__ErrorMessage",
59304
59781
  componentId: "sc-64dj00-9"
59305
59782
  })(["text-align:center;color:", ";padding:2rem;"], uiColors.red);
@@ -59322,13 +59799,13 @@ var PaymentMethodModal = function PaymentMethodModal(_ref) {
59322
59799
  onPayWithCard();
59323
59800
  }
59324
59801
  }, [selected, onPayWithDC, onPayWithCard]);
59325
- return React.createElement(ModalPortal, null, React.createElement(Overlay$4, {
59802
+ return React.createElement(ModalPortal, null, React.createElement(Overlay$5, {
59326
59803
  onPointerDown: onClose
59327
- }), React.createElement(ModalContainer$1, null, React.createElement(ModalContent$1, {
59804
+ }), React.createElement(ModalContainer$2, null, React.createElement(ModalContent$2, {
59328
59805
  onClick: stopPropagation,
59329
59806
  onTouchStart: stopPropagation,
59330
59807
  onPointerDown: stopPropagation
59331
- }, React.createElement(Header$a, null, React.createElement(Title$f, null, "How would you like to pay?"), React.createElement(CloseButton$a, {
59808
+ }, React.createElement(Header$b, null, React.createElement(Title$g, null, "How would you like to pay?"), React.createElement(CloseButton$b, {
59332
59809
  onPointerDown: onClose,
59333
59810
  "aria-label": "Close"
59334
59811
  }, React.createElement(FaTimes, null))), React.createElement(Options, null, React.createElement(RadioOption, {
@@ -59350,27 +59827,27 @@ var PaymentMethodModal = function PaymentMethodModal(_ref) {
59350
59827
  onPointerDown: handleConfirm
59351
59828
  }, "Confirm")))));
59352
59829
  };
59353
- var Overlay$4 = /*#__PURE__*/styled.div.withConfig({
59830
+ var Overlay$5 = /*#__PURE__*/styled.div.withConfig({
59354
59831
  displayName: "PaymentMethodModal__Overlay",
59355
59832
  componentId: "sc-1dxy6lr-0"
59356
59833
  })(["position:fixed;inset:0;background:rgba(0,0,0,0.65);z-index:1000;"]);
59357
- var ModalContainer$1 = /*#__PURE__*/styled.div.withConfig({
59834
+ var ModalContainer$2 = /*#__PURE__*/styled.div.withConfig({
59358
59835
  displayName: "PaymentMethodModal__ModalContainer",
59359
59836
  componentId: "sc-1dxy6lr-1"
59360
59837
  })(["position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:1001;pointer-events:none;"]);
59361
- var ModalContent$1 = /*#__PURE__*/styled.div.withConfig({
59838
+ var ModalContent$2 = /*#__PURE__*/styled.div.withConfig({
59362
59839
  displayName: "PaymentMethodModal__ModalContent",
59363
59840
  componentId: "sc-1dxy6lr-2"
59364
59841
  })(["background:#1a1a2e;border:2px solid #f59e0b;border-radius:8px;padding:20px 24px 24px;min-width:300px;max-width:90%;display:flex;flex-direction:column;gap:16px;pointer-events:auto;animation:scaleIn 0.15s ease-out;@keyframes scaleIn{from{transform:scale(0.85);opacity:0;}to{transform:scale(1);opacity:1;}}"]);
59365
- var Header$a = /*#__PURE__*/styled.div.withConfig({
59842
+ var Header$b = /*#__PURE__*/styled.div.withConfig({
59366
59843
  displayName: "PaymentMethodModal__Header",
59367
59844
  componentId: "sc-1dxy6lr-3"
59368
59845
  })(["display:flex;align-items:center;justify-content:space-between;"]);
59369
- var Title$f = /*#__PURE__*/styled.h3.withConfig({
59846
+ var Title$g = /*#__PURE__*/styled.h3.withConfig({
59370
59847
  displayName: "PaymentMethodModal__Title",
59371
59848
  componentId: "sc-1dxy6lr-4"
59372
59849
  })(["margin:0;font-family:'Press Start 2P',cursive;font-size:0.7rem;color:#fef08a;"]);
59373
- var CloseButton$a = /*#__PURE__*/styled.button.withConfig({
59850
+ var CloseButton$b = /*#__PURE__*/styled.button.withConfig({
59374
59851
  displayName: "PaymentMethodModal__CloseButton",
59375
59852
  componentId: "sc-1dxy6lr-5"
59376
59853
  })(["background:none;border:none;color:rgba(255,255,255,0.6);cursor:pointer;font-size:1rem;padding:4px;display:flex;align-items:center;&:hover{color:#ffffff;}"]);
@@ -59449,7 +59926,7 @@ var TimeWidget = function TimeWidget(_ref) {
59449
59926
  return React.createElement(Draggable, {
59450
59927
  scale: scale,
59451
59928
  cancel: ".time-widget-close,.time-widget-container,.time-widget-container *"
59452
- }, React.createElement(WidgetContainer, null, React.createElement(CloseButton$b, {
59929
+ }, React.createElement(WidgetContainer, null, React.createElement(CloseButton$c, {
59453
59930
  onPointerDown: onClose,
59454
59931
  className: "time-widget-close"
59455
59932
  }, "X"), React.createElement(DayNightContainer, {
@@ -59466,7 +59943,7 @@ var Time = /*#__PURE__*/styled.div.withConfig({
59466
59943
  displayName: "TimeWidget__Time",
59467
59944
  componentId: "sc-1ja236h-1"
59468
59945
  })(["top:0.75rem;right:0.5rem;position:absolute;font-size:", ";color:white;"], uiFonts.size.small);
59469
- var CloseButton$b = /*#__PURE__*/styled.p.withConfig({
59946
+ var CloseButton$c = /*#__PURE__*/styled.p.withConfig({
59470
59947
  displayName: "TimeWidget__CloseButton",
59471
59948
  componentId: "sc-1ja236h-2"
59472
59949
  })(["position:absolute;top:-0.5rem;margin:0;right:-0.2rem;font-size:", " !important;z-index:1;"], uiFonts.size.small);
@@ -59745,7 +60222,7 @@ var TradingMenu = function TradingMenu(_ref) {
59745
60222
  width: "500px",
59746
60223
  cancelDrag: "#TraderContainer",
59747
60224
  scale: scale
59748
- }, React.createElement(Container$O, null, React.createElement(Title$g, null, type.charAt(0).toUpperCase() + type.slice(1), " Menu"), React.createElement("hr", {
60225
+ }, React.createElement(Container$O, null, React.createElement(Title$h, null, type.charAt(0).toUpperCase() + type.slice(1), " Menu"), React.createElement("hr", {
59749
60226
  className: "golden"
59750
60227
  }), React.createElement(ScrollWrapper, {
59751
60228
  id: "TraderContainer"
@@ -59777,7 +60254,7 @@ var Container$O = /*#__PURE__*/styled.div.withConfig({
59777
60254
  displayName: "TradingMenu__Container",
59778
60255
  componentId: "sc-1wjsz1l-0"
59779
60256
  })(["width:100%;"]);
59780
- var Title$g = /*#__PURE__*/styled.h1.withConfig({
60257
+ var Title$h = /*#__PURE__*/styled.h1.withConfig({
59781
60258
  displayName: "TradingMenu__Title",
59782
60259
  componentId: "sc-1wjsz1l-1"
59783
60260
  })(["font-size:0.7rem !important;color:yellow !important;text-align:center;"]);
@@ -59957,5 +60434,5 @@ var LessonContainer = /*#__PURE__*/styled.div.withConfig({
59957
60434
  componentId: "sc-7tgzv2-6"
59958
60435
  })(["display:flex;flex-direction:column;justify-content:space-between;min-height:200px;p{font-size:0.7rem !important;}"]);
59959
60436
 
59960
- export { ActionButtons, AsyncDropdown, Button, ButtonTypes, CTAButton, CartView, CharacterSelection, CharacterSkinSelectionModal, Chat, ChatDeprecated, ChatRevamp, CheckButton, CheckItem, CircularController, CraftBook, DailyTasks, DraggableContainer, Dropdown, DropdownSelectorContainer, DynamicText, EquipmentSet, EquipmentSlotSpriteByType, ErrorBoundary, FriendList, GemSelector, HistoryDialog, ImageCarousel, ImgSide, InformationCenter, Input, InputRadio, InternalTabs, ItemContainer$1 as ItemContainer, ItemPropertySimpleHandler, ItemQuantitySelectorModal, ItemSelector, ItemSlot, JoystickDPad, Leaderboard, ListMenu, LoginStreakPanel, Marketplace, MarketplaceRows, MetadataCollector, MultitabType, NPCDialog, NPCDialogType, NPCMultiDialog, PartyCreate, PartyDashboard, PartyInvite, PartyManager, PartyManagerRow, PartyRow, PaymentMethodModal, PlayersRow, ProgressBar$1 as ProgressBar, PropertySelect, QuantitySelectorModal, QuestInfo, QuestList, QuestionDialog, RPGUIContainer, RPGUIContainerTypes, RPGUIRoot, RangeSlider, RangeSliderType, SelectArrow, Shortcuts, SimpleImageCarousel, SkillProgressBar, SkillsContainer, SocialModal, Spellbook, SpriteFromAtlas, Stepper, Store, TabBody, Table, TableCell, TableHeader, TableRow, TabsContainer, TextArea, TimeWidget, Tooltip, TradingMenu, Truncate, TutorialStepper, UserActionLink, _RPGUI, formatQuestStatus, formatQuestText, getMockedPlayersRowsLeader, getMockedPlayersRowsNotLeader, getQuestStatusColor, mockedPartyManager, mockedPartyRows, mockedPlayersRows, mockedPlayersRows2, useEventListener, useStoreCart };
60437
+ export { ActionButtons, AsyncDropdown, Button, ButtonTypes, CTAButton, CartView, CharacterSelection, CharacterSkinSelectionModal, Chat, ChatDeprecated, ChatRevamp, CheckButton, CheckItem, CircularController, CraftBook, DCWalletModal, DailyTasks, DraggableContainer, Dropdown, DropdownSelectorContainer, DynamicText, EquipmentSet, EquipmentSlotSpriteByType, ErrorBoundary, FriendList, GemSelector, HistoryDialog, ImageCarousel, ImgSide, InformationCenter, Input, InputRadio, InternalTabs, ItemContainer$1 as ItemContainer, ItemPropertySimpleHandler, ItemQuantitySelectorModal, ItemSelector, ItemSlot, JoystickDPad, Leaderboard, ListMenu, LoginStreakPanel, Marketplace, MarketplaceRows, MetadataCollector, MultitabType, NPCDialog, NPCDialogType, NPCMultiDialog, PartyCreate, PartyDashboard, PartyInvite, PartyManager, PartyManagerRow, PartyRow, PaymentMethodModal, PlayersRow, ProgressBar$1 as ProgressBar, PropertySelect, QuantitySelectorModal, QuestInfo, QuestList, QuestionDialog, RPGUIContainer, RPGUIContainerTypes, RPGUIRoot, RangeSlider, RangeSliderType, SelectArrow, Shortcuts, SimpleImageCarousel, SkillProgressBar, SkillsContainer, SocialModal, Spellbook, SpriteFromAtlas, Stepper, Store, TabBody, Table, TableCell, TableHeader, TableRow, TabsContainer, TextArea, TimeWidget, Tooltip, TradingMenu, Truncate, TutorialStepper, UserActionLink, _RPGUI, formatQuestStatus, formatQuestText, getMockedPlayersRowsLeader, getMockedPlayersRowsNotLeader, getQuestStatusColor, mockedPartyManager, mockedPartyRows, mockedPlayersRows, mockedPlayersRows2, useEventListener, useStoreCart };
59961
60438
  //# sourceMappingURL=long-bow.esm.js.map