@rpg-engine/long-bow 0.8.14 → 0.8.16

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.
@@ -1,7 +1,7 @@
1
- import React from 'react';
1
+ import React, { ReactNode } from 'react';
2
2
  export interface IConfirmModalProps {
3
3
  onConfirm: () => void;
4
4
  onClose: () => void;
5
- message?: string;
5
+ message?: string | ReactNode;
6
6
  }
7
7
  export declare const ConfirmModal: React.FC<IConfirmModalProps>;
@@ -1,10 +1,14 @@
1
1
  import React from 'react';
2
- interface Props {
2
+ interface IColorSelectorProps {
3
3
  selectedColor: string;
4
4
  isOpen: boolean;
5
5
  onClose: () => void;
6
6
  onConfirm: (color: string) => void;
7
7
  onChange: (color: string) => void;
8
+ costWarning?: {
9
+ cost: number;
10
+ currency?: string;
11
+ };
8
12
  }
9
- export declare const ColorSelector: React.FC<Props>;
13
+ export declare const ColorSelector: React.FC<IColorSelectorProps>;
10
14
  export {};
@@ -1,10 +1,14 @@
1
1
  import React from 'react';
2
- interface Props {
2
+ interface IItemPropertySimpleHandlerProps {
3
3
  isOpen: boolean;
4
4
  selectedColor: string;
5
5
  onClose: () => void;
6
6
  onConfirm: (color: string) => void;
7
7
  onChange: (color: string) => void;
8
+ costWarning?: {
9
+ cost: number;
10
+ currency?: string;
11
+ };
8
12
  }
9
- export declare const ItemPropertySimpleHandler: React.FC<Props>;
13
+ export declare const ItemPropertySimpleHandler: React.FC<IItemPropertySimpleHandlerProps>;
10
14
  export {};
@@ -32769,61 +32769,154 @@ var ItemsContainer = /*#__PURE__*/styled__default.div.withConfig({
32769
32769
  return isFullScreen && '50%';
32770
32770
  });
32771
32771
 
32772
+ var ConfirmModal = function ConfirmModal(_ref) {
32773
+ var onConfirm = _ref.onConfirm,
32774
+ onClose = _ref.onClose,
32775
+ _ref$message = _ref.message,
32776
+ message = _ref$message === void 0 ? 'Are you sure?' : _ref$message;
32777
+ var handleConfirm = function handleConfirm(e) {
32778
+ e.preventDefault();
32779
+ e.stopPropagation();
32780
+ onConfirm();
32781
+ };
32782
+ var handleClose = function handleClose(e) {
32783
+ e.preventDefault();
32784
+ e.stopPropagation();
32785
+ onClose();
32786
+ };
32787
+ return React__default.createElement(ModalPortal, null, React__default.createElement(Background, null), React__default.createElement(Container$t, {
32788
+ onClick: handleClose
32789
+ }, React__default.createElement(DraggableContainer, {
32790
+ width: "auto",
32791
+ dragDisabled: true
32792
+ }, React__default.createElement(Wrapper$1, {
32793
+ onClick: function onClick(e) {
32794
+ return e.stopPropagation();
32795
+ }
32796
+ }, typeof message === 'string' ? React__default.createElement("p", null, message) : message, React__default.createElement(ButtonsWrapper, null, React__default.createElement("div", {
32797
+ className: "cancel-button"
32798
+ }, React__default.createElement(Button, {
32799
+ buttonType: exports.ButtonTypes.RPGUIButton,
32800
+ onClick: handleClose
32801
+ }, "No")), React__default.createElement(Button, {
32802
+ buttonType: exports.ButtonTypes.RPGUIButton,
32803
+ onClick: handleConfirm
32804
+ }, "Yes"))))));
32805
+ };
32806
+ var Background = /*#__PURE__*/styled__default.div.withConfig({
32807
+ displayName: "ConfirmModal__Background",
32808
+ componentId: "sc-11qkyu1-0"
32809
+ })(["position:absolute;width:100%;height:100%;background-color:#000000;opacity:0.5;left:0;top:0;z-index:1000;"]);
32810
+ var Container$t = /*#__PURE__*/styled__default.div.withConfig({
32811
+ displayName: "ConfirmModal__Container",
32812
+ componentId: "sc-11qkyu1-1"
32813
+ })(["position:absolute;width:100%;height:100%;left:0;top:0;display:flex;justify-content:center;align-items:center;z-index:1001;"]);
32814
+ var Wrapper$1 = /*#__PURE__*/styled__default.div.withConfig({
32815
+ displayName: "ConfirmModal__Wrapper",
32816
+ componentId: "sc-11qkyu1-2"
32817
+ })(["p{margin:0;}"]);
32818
+ var ButtonsWrapper = /*#__PURE__*/styled__default.div.withConfig({
32819
+ displayName: "ConfirmModal__ButtonsWrapper",
32820
+ componentId: "sc-11qkyu1-3"
32821
+ })(["display:flex;justify-content:flex-end;gap:5px;margin-top:5px;.cancel-button{filter:grayscale(0.7);}"]);
32822
+
32772
32823
  var ColorSelector = function ColorSelector(_ref) {
32773
32824
  var selectedColor = _ref.selectedColor,
32774
32825
  isOpen = _ref.isOpen,
32775
32826
  onClose = _ref.onClose,
32776
32827
  onConfirm = _ref.onConfirm,
32777
- _onChange = _ref.onChange;
32828
+ _onChange = _ref.onChange,
32829
+ costWarning = _ref.costWarning;
32778
32830
  var _useState = React.useState(selectedColor),
32779
32831
  currentColor = _useState[0],
32780
32832
  setCurrentColor = _useState[1];
32833
+ var _useState2 = React.useState(false),
32834
+ showConfirmModal = _useState2[0],
32835
+ setShowConfirmModal = _useState2[1];
32781
32836
  React.useEffect(function () {
32782
32837
  if (isOpen) setCurrentColor(selectedColor);
32783
32838
  }, [isOpen, selectedColor]);
32784
- var handleConfirm = function handleConfirm() {
32839
+ var handleConfirm = function handleConfirm(e) {
32840
+ e.preventDefault();
32841
+ if (costWarning) {
32842
+ setShowConfirmModal(true);
32843
+ } else {
32844
+ onConfirm(currentColor);
32845
+ onClose();
32846
+ }
32847
+ };
32848
+ var handleConfirmCost = function handleConfirmCost() {
32785
32849
  onConfirm(currentColor);
32850
+ setShowConfirmModal(false);
32786
32851
  onClose();
32787
32852
  };
32853
+ var handleClose = function handleClose() {
32854
+ setShowConfirmModal(false);
32855
+ };
32856
+ var renderConfirmMessage = function renderConfirmMessage() {
32857
+ return React__default.createElement(ConfirmContent, null, React__default.createElement("p", null, "Cost:", React__default.createElement(CostDisplay, null, costWarning == null ? void 0 : costWarning.cost.toLocaleString(), (costWarning == null ? void 0 : costWarning.currency) || ' gold')), React__default.createElement("p", null, "Proceed with color change?"));
32858
+ };
32788
32859
  if (!isOpen) return null;
32789
- return isOpen ? React__default.createElement(DraggableContainer, {
32860
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(DraggableContainer, {
32790
32861
  type: exports.RPGUIContainerTypes.Framed,
32791
32862
  cancelDrag: ".react-colorful",
32792
- width: "20rem",
32863
+ width: "25rem",
32793
32864
  onCloseButton: onClose
32794
- }, React__default.createElement(Container$t, null, React__default.createElement(Header$3, null, "Select Color"), React__default.createElement(reactColorful.HexColorPicker, {
32865
+ }, React__default.createElement(Container$u, null, React__default.createElement(Header$3, null, "Select Color"), React__default.createElement(ColorPickerWrapper, null, React__default.createElement(reactColorful.HexColorPicker, {
32795
32866
  color: currentColor,
32796
32867
  onChange: function onChange(color) {
32797
32868
  setCurrentColor(color);
32798
32869
  _onChange(color);
32799
32870
  }
32800
- }), React__default.createElement(Button, {
32871
+ })), React__default.createElement(ButtonContainer$2, null, React__default.createElement(Button, {
32801
32872
  buttonType: exports.ButtonTypes.RPGUIButton,
32802
32873
  type: "button",
32803
32874
  onClick: handleConfirm
32804
- }, "Confirm"))) : null;
32875
+ }, "Confirm")))), showConfirmModal && costWarning && React__default.createElement(ConfirmModal, {
32876
+ message: renderConfirmMessage(),
32877
+ onConfirm: handleConfirmCost,
32878
+ onClose: handleClose
32879
+ }));
32805
32880
  };
32806
- var Container$t = /*#__PURE__*/styled__default.div.withConfig({
32881
+ var Container$u = /*#__PURE__*/styled__default.div.withConfig({
32807
32882
  displayName: "ItemPropertyColorSelector__Container",
32808
32883
  componentId: "sc-me1r4z-0"
32809
- })(["padding:2rem;text-align:center;background:inherit;"]);
32884
+ })(["text-align:center;background:inherit;display:flex;flex-direction:column;gap:1.5rem;align-items:center;width:100%;max-width:24rem;margin:0 auto;"]);
32810
32885
  var Header$3 = /*#__PURE__*/styled__default.h2.withConfig({
32811
32886
  displayName: "ItemPropertyColorSelector__Header",
32812
32887
  componentId: "sc-me1r4z-1"
32813
- })(["font-family:'Press Start 2P',cursive;color:white;font-size:1rem;margin-bottom:1rem;"]);
32888
+ })(["color:white;font-size:1rem;margin:0;width:100%;text-align:center;"]);
32889
+ var ColorPickerWrapper = /*#__PURE__*/styled__default.div.withConfig({
32890
+ displayName: "ItemPropertyColorSelector__ColorPickerWrapper",
32891
+ componentId: "sc-me1r4z-2"
32892
+ })(["display:flex;justify-content:center;width:100%;.react-colorful{width:100%;max-width:200px;}"]);
32893
+ var ButtonContainer$2 = /*#__PURE__*/styled__default.div.withConfig({
32894
+ displayName: "ItemPropertyColorSelector__ButtonContainer",
32895
+ componentId: "sc-me1r4z-3"
32896
+ })(["display:flex;justify-content:center;width:100%;"]);
32897
+ var ConfirmContent = /*#__PURE__*/styled__default.div.withConfig({
32898
+ displayName: "ItemPropertyColorSelector__ConfirmContent",
32899
+ componentId: "sc-me1r4z-4"
32900
+ })(["display:flex;flex-direction:column;gap:0.5rem;text-align:center;font-family:'Press Start 2P',cursive;font-size:0.75rem;"]);
32901
+ var CostDisplay = /*#__PURE__*/styled__default.span.withConfig({
32902
+ displayName: "ItemPropertyColorSelector__CostDisplay",
32903
+ componentId: "sc-me1r4z-5"
32904
+ })(["color:", " !important;"], uiColors.yellow);
32814
32905
 
32815
32906
  var ItemPropertySimpleHandler = function ItemPropertySimpleHandler(_ref) {
32816
32907
  var isOpen = _ref.isOpen,
32817
32908
  selectedColor = _ref.selectedColor,
32818
32909
  onClose = _ref.onClose,
32819
32910
  onConfirm = _ref.onConfirm,
32820
- onChange = _ref.onChange;
32911
+ onChange = _ref.onChange,
32912
+ costWarning = _ref.costWarning;
32821
32913
  return React__default.createElement(ColorSelector, {
32822
32914
  selectedColor: selectedColor,
32823
32915
  isOpen: isOpen,
32824
32916
  onClose: onClose,
32825
32917
  onConfirm: onConfirm,
32826
- onChange: onChange
32918
+ onChange: onChange,
32919
+ costWarning: costWarning
32827
32920
  });
32828
32921
  };
32829
32922
 
@@ -33141,7 +33234,7 @@ var ListMenu = function ListMenu(_ref) {
33141
33234
  onSelected = _ref.onSelected,
33142
33235
  x = _ref.x,
33143
33236
  y = _ref.y;
33144
- return React__default.createElement(Container$u, {
33237
+ return React__default.createElement(Container$v, {
33145
33238
  x: x,
33146
33239
  y: y
33147
33240
  }, React__default.createElement("ul", {
@@ -33158,7 +33251,7 @@ var ListMenu = function ListMenu(_ref) {
33158
33251
  }, (params == null ? void 0 : params.text) || 'No text');
33159
33252
  })));
33160
33253
  };
33161
- var Container$u = /*#__PURE__*/styled__default.div.withConfig({
33254
+ var Container$v = /*#__PURE__*/styled__default.div.withConfig({
33162
33255
  displayName: "ListMenu__Container",
33163
33256
  componentId: "sc-i9097t-0"
33164
33257
  })(["display:flex;flex-direction:column;width:100%;justify-content:start;align-items:flex-start;position:absolute;top:", "px;left:", "px;li{font-size:", ";}"], function (props) {
@@ -33177,7 +33270,7 @@ var Pager = function Pager(_ref) {
33177
33270
  itemsPerPage = _ref.itemsPerPage,
33178
33271
  onPageChange = _ref.onPageChange;
33179
33272
  var totalPages = Math.ceil(totalItems / itemsPerPage);
33180
- return React__default.createElement(Container$v, null, React__default.createElement("p", null, "Total items: ", totalItems), React__default.createElement(PagerContainer, null, React__default.createElement("button", {
33273
+ return React__default.createElement(Container$w, null, React__default.createElement("p", null, "Total items: ", totalItems), React__default.createElement(PagerContainer, null, React__default.createElement("button", {
33181
33274
  disabled: currentPage === 1,
33182
33275
  onPointerDown: function onPointerDown() {
33183
33276
  return onPageChange(Math.max(currentPage - 1, 1));
@@ -33191,7 +33284,7 @@ var Pager = function Pager(_ref) {
33191
33284
  }
33192
33285
  }, '>')));
33193
33286
  };
33194
- var Container$v = /*#__PURE__*/styled__default.div.withConfig({
33287
+ var Container$w = /*#__PURE__*/styled__default.div.withConfig({
33195
33288
  displayName: "Pager__Container",
33196
33289
  componentId: "sc-1ekmf50-0"
33197
33290
  })(["display:flex;flex-direction:column;align-items:center;p{margin:0;font-size:", ";}"], uiFonts.size.xsmall);
@@ -33200,46 +33293,6 @@ var PagerContainer = /*#__PURE__*/styled__default.div.withConfig({
33200
33293
  componentId: "sc-1ekmf50-1"
33201
33294
  })(["display:flex;justify-content:center;align-items:center;gap:5px;p{margin:0;}div{color:white;}button{width:40px;height:40px;background-color:", ";border:none;border-radius:5px;color:white;:hover{background-color:", ";}:disabled{opacity:0.5;}&.active{background-color:", ";font-weight:bold;color:black;}}"], uiColors.darkGray, uiColors.lightGray, uiColors.orange);
33202
33295
 
33203
- var ConfirmModal = function ConfirmModal(_ref) {
33204
- var onConfirm = _ref.onConfirm,
33205
- onClose = _ref.onClose,
33206
- message = _ref.message;
33207
- return React__default.createElement(ModalPortal, null, React__default.createElement(Background, null), React__default.createElement(Container$w, {
33208
- onPointerDown: onClose
33209
- }, React__default.createElement(DraggableContainer, {
33210
- width: "auto",
33211
- dragDisabled: true
33212
- }, React__default.createElement(Wrapper$1, {
33213
- onPointerDown: function onPointerDown(e) {
33214
- return e.stopPropagation();
33215
- }
33216
- }, React__default.createElement("p", null, message != null ? message : 'Are you sure?'), React__default.createElement(ButtonsWrapper, null, React__default.createElement("div", {
33217
- className: "cancel-button"
33218
- }, React__default.createElement(Button, {
33219
- buttonType: exports.ButtonTypes.RPGUIButton,
33220
- onPointerDown: onClose
33221
- }, "No")), React__default.createElement(Button, {
33222
- buttonType: exports.ButtonTypes.RPGUIButton,
33223
- onPointerDown: onConfirm
33224
- }, "Yes"))))));
33225
- };
33226
- var Background = /*#__PURE__*/styled__default.div.withConfig({
33227
- displayName: "ConfirmModal__Background",
33228
- componentId: "sc-11qkyu1-0"
33229
- })(["position:absolute;width:100%;height:100%;background-color:#000000;opacity:0.5;left:0;top:0;z-index:1000;"]);
33230
- var Container$w = /*#__PURE__*/styled__default.div.withConfig({
33231
- displayName: "ConfirmModal__Container",
33232
- componentId: "sc-11qkyu1-1"
33233
- })(["position:absolute;width:100%;height:100%;left:0;top:0;display:flex;justify-content:center;align-items:center;z-index:1001;"]);
33234
- var Wrapper$1 = /*#__PURE__*/styled__default.div.withConfig({
33235
- displayName: "ConfirmModal__Wrapper",
33236
- componentId: "sc-11qkyu1-2"
33237
- })(["p{margin:0;}"]);
33238
- var ButtonsWrapper = /*#__PURE__*/styled__default.div.withConfig({
33239
- displayName: "ConfirmModal__ButtonsWrapper",
33240
- componentId: "sc-11qkyu1-3"
33241
- })(["display:flex;justify-content:flex-end;gap:5px;margin-top:5px;.cancel-button{filter:grayscale(0.7);}"]);
33242
-
33243
33296
  var MarketplaceRows = function MarketplaceRows(_ref) {
33244
33297
  var atlasJSON = _ref.atlasJSON,
33245
33298
  atlasIMG = _ref.atlasIMG,
@@ -33285,7 +33338,7 @@ var MarketplaceRows = function MarketplaceRows(_ref) {
33285
33338
  maxLines: 1,
33286
33339
  maxWidth: "200px",
33287
33340
  fontSize: "10px"
33288
- }, "$", itemPrice)))), React__default.createElement(ButtonContainer$2, null, React__default.createElement(Button, {
33341
+ }, "$", itemPrice)))), React__default.createElement(ButtonContainer$3, null, React__default.createElement(Button, {
33289
33342
  buttonType: exports.ButtonTypes.RPGUIButton,
33290
33343
  disabled: disabled,
33291
33344
  onPointerDown: function onPointerDown() {
@@ -33327,7 +33380,7 @@ var PriceValue = /*#__PURE__*/styled__default.div.withConfig({
33327
33380
  displayName: "MarketplaceRows__PriceValue",
33328
33381
  componentId: "sc-wmpr1o-7"
33329
33382
  })(["margin-left:40px;"]);
33330
- var ButtonContainer$2 = /*#__PURE__*/styled__default.div.withConfig({
33383
+ var ButtonContainer$3 = /*#__PURE__*/styled__default.div.withConfig({
33331
33384
  displayName: "MarketplaceRows__ButtonContainer",
33332
33385
  componentId: "sc-wmpr1o-8"
33333
33386
  })(["margin:auto;"]);
@@ -34095,7 +34148,7 @@ var PartyManagerRow = function PartyManagerRow(_ref) {
34095
34148
  }, charName, " ", isCurrentUser ? '(You)' : '', " ", isLeader ? '(Leader)' : '')), React__default.createElement(TextContainer$5, null, React__default.createElement(Ellipsis, {
34096
34149
  maxLines: 1,
34097
34150
  maxWidth: "300px"
34098
- }, charClass)), React__default.createElement(ButtonContainer$3, null, canRemove && React__default.createElement(HighlightedText, {
34151
+ }, charClass)), React__default.createElement(ButtonContainer$4, null, canRemove && React__default.createElement(HighlightedText, {
34099
34152
  onPointerDown: function onPointerDown() {
34100
34153
  return onRemovePlayer(id);
34101
34154
  }
@@ -34113,7 +34166,7 @@ var TextContainer$5 = /*#__PURE__*/styled__default.div.withConfig({
34113
34166
  displayName: "PartyManagerRows__TextContainer",
34114
34167
  componentId: "sc-uqajew-1"
34115
34168
  })(["color:", ";overflow:hidden;white-space:nowrap;text-overflow:ellipsis;"], uiColors.white);
34116
- var ButtonContainer$3 = /*#__PURE__*/styled__default.div.withConfig({
34169
+ var ButtonContainer$4 = /*#__PURE__*/styled__default.div.withConfig({
34117
34170
  displayName: "PartyManagerRows__ButtonContainer",
34118
34171
  componentId: "sc-uqajew-2"
34119
34172
  })(["display:flex;align-items:center;gap:1rem;justify-content:flex-start;"]);