@rpg-engine/long-bow 0.8.13 → 0.8.15

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.
@@ -623,6 +623,8 @@ var SpriteFromAtlas = function SpriteFromAtlas(_ref) {
623
623
  return null;
624
624
  }
625
625
  var normalizedTintColor = toUppercaseHexColor(tintColor);
626
+ // For white tint, we'll use a very light gray instead
627
+ var effectiveTintColor = normalizedTintColor === '#FFFFFF' ? '#EEEEEE' : normalizedTintColor;
626
628
  return React.createElement(Container$1, {
627
629
  width: width,
628
630
  height: height,
@@ -639,7 +641,7 @@ var SpriteFromAtlas = function SpriteFromAtlas(_ref) {
639
641
  style: imgStyle,
640
642
  centered: centered,
641
643
  borderRadius: borderRadius,
642
- tintColor: normalizedTintColor
644
+ tintColor: effectiveTintColor
643
645
  }));
644
646
  };
645
647
  var Container$1 = /*#__PURE__*/styled.div.withConfig({
@@ -655,7 +657,7 @@ var Container$1 = /*#__PURE__*/styled.div.withConfig({
655
657
  var ImgSprite = /*#__PURE__*/styled.div.withConfig({
656
658
  displayName: "SpriteFromAtlas__ImgSprite",
657
659
  componentId: "sc-1lpani8-1"
658
- })(["width:", "px;height:", "px;background-image:url(", ");background-position:-", "px -", "px;transform:scale(", ");position:relative;top:", ";left:", ";filter:", ";opacity:", ";border-radius:", ";overflow:hidden;"], function (props) {
660
+ })(["width:", "px;height:", "px;background-image:url(", ");background-position:-", "px -", "px;transform:scale(", ");position:relative;top:", ";left:", ";opacity:", ";border-radius:", ";overflow:hidden;", " ", ""], function (props) {
659
661
  return props.frame.w;
660
662
  }, function (props) {
661
663
  return props.frame.h;
@@ -671,15 +673,14 @@ var ImgSprite = /*#__PURE__*/styled.div.withConfig({
671
673
  return props.centered ? '0' : '8px';
672
674
  }, function (props) {
673
675
  return props.centered ? '0' : '8px';
674
- }, function (props) {
675
- var filters = [];
676
- if (props.grayScale) filters.push('grayscale(100%)');
677
- if (props.tintColor) filters.push("brightness(0.8) contrast(1.2) sepia(100%) hue-rotate(" + (props.tintColor === '#FFD700' ? '40deg' : '210deg') + ") saturate(400%)");
678
- return filters.length ? filters.join(' ') : 'none';
679
676
  }, function (props) {
680
677
  return props.opacity;
681
678
  }, function (props) {
682
679
  return props.borderRadius || '0';
680
+ }, function (props) {
681
+ return props.grayScale && css(["filter:grayscale(100%);"]);
682
+ }, function (props) {
683
+ return props.tintColor && css(["&::before{content:'';position:absolute;top:0;left:0;width:", "px;height:", "px;background-color:", ";mix-blend-mode:multiply;opacity:0.6;pointer-events:none;-webkit-mask-image:url(", ");-webkit-mask-position:-", "px -", "px;mask-image:url(", ");mask-position:-", "px -", "px;}&::after{content:'';position:absolute;top:0;left:0;width:", "px;height:", "px;background-color:", ";mix-blend-mode:soft-light;opacity:0.6;pointer-events:none;-webkit-mask-image:url(", ");-webkit-mask-position:-", "px -", "px;mask-image:url(", ");mask-position:-", "px -", "px;}"], props.frame.w, props.frame.h, props.tintColor, props.atlasIMG, props.frame.x, props.frame.y, props.atlasIMG, props.frame.x, props.frame.y, props.frame.w, props.frame.h, props.tintColor, props.atlasIMG, props.frame.x, props.frame.y, props.atlasIMG, props.frame.x, props.frame.y);
683
684
  });
684
685
 
685
686
  var frames = {
@@ -32764,48 +32765,139 @@ var ItemsContainer = /*#__PURE__*/styled.div.withConfig({
32764
32765
  return isFullScreen && '50%';
32765
32766
  });
32766
32767
 
32768
+ var ConfirmModal = function ConfirmModal(_ref) {
32769
+ var onConfirm = _ref.onConfirm,
32770
+ onClose = _ref.onClose,
32771
+ _ref$message = _ref.message,
32772
+ message = _ref$message === void 0 ? 'Are you sure?' : _ref$message;
32773
+ var handleConfirm = function handleConfirm(e) {
32774
+ e.preventDefault();
32775
+ e.stopPropagation();
32776
+ onConfirm();
32777
+ };
32778
+ var handleClose = function handleClose(e) {
32779
+ e.preventDefault();
32780
+ e.stopPropagation();
32781
+ onClose();
32782
+ };
32783
+ return React.createElement(ModalPortal, null, React.createElement(Background, null), React.createElement(Container$t, {
32784
+ onClick: handleClose
32785
+ }, React.createElement(DraggableContainer, {
32786
+ width: "auto",
32787
+ dragDisabled: true
32788
+ }, React.createElement(Wrapper$1, {
32789
+ onClick: function onClick(e) {
32790
+ return e.stopPropagation();
32791
+ }
32792
+ }, typeof message === 'string' ? React.createElement("p", null, message) : message, React.createElement(ButtonsWrapper, null, React.createElement("div", {
32793
+ className: "cancel-button"
32794
+ }, React.createElement(Button, {
32795
+ buttonType: ButtonTypes.RPGUIButton,
32796
+ onClick: handleClose
32797
+ }, "No")), React.createElement(Button, {
32798
+ buttonType: ButtonTypes.RPGUIButton,
32799
+ onClick: handleConfirm
32800
+ }, "Yes"))))));
32801
+ };
32802
+ var Background = /*#__PURE__*/styled.div.withConfig({
32803
+ displayName: "ConfirmModal__Background",
32804
+ componentId: "sc-11qkyu1-0"
32805
+ })(["position:absolute;width:100%;height:100%;background-color:#000000;opacity:0.5;left:0;top:0;z-index:1000;"]);
32806
+ var Container$t = /*#__PURE__*/styled.div.withConfig({
32807
+ displayName: "ConfirmModal__Container",
32808
+ componentId: "sc-11qkyu1-1"
32809
+ })(["position:absolute;width:100%;height:100%;left:0;top:0;display:flex;justify-content:center;align-items:center;z-index:1001;"]);
32810
+ var Wrapper$1 = /*#__PURE__*/styled.div.withConfig({
32811
+ displayName: "ConfirmModal__Wrapper",
32812
+ componentId: "sc-11qkyu1-2"
32813
+ })(["p{margin:0;}"]);
32814
+ var ButtonsWrapper = /*#__PURE__*/styled.div.withConfig({
32815
+ displayName: "ConfirmModal__ButtonsWrapper",
32816
+ componentId: "sc-11qkyu1-3"
32817
+ })(["display:flex;justify-content:flex-end;gap:5px;margin-top:5px;.cancel-button{filter:grayscale(0.7);}"]);
32818
+
32767
32819
  var ColorSelector = function ColorSelector(_ref) {
32768
32820
  var selectedColor = _ref.selectedColor,
32769
32821
  isOpen = _ref.isOpen,
32770
32822
  onClose = _ref.onClose,
32771
32823
  onConfirm = _ref.onConfirm,
32772
- _onChange = _ref.onChange;
32824
+ _onChange = _ref.onChange,
32825
+ costWarning = _ref.costWarning;
32773
32826
  var _useState = useState(selectedColor),
32774
32827
  currentColor = _useState[0],
32775
32828
  setCurrentColor = _useState[1];
32829
+ var _useState2 = useState(false),
32830
+ showConfirmModal = _useState2[0],
32831
+ setShowConfirmModal = _useState2[1];
32776
32832
  useEffect(function () {
32777
32833
  if (isOpen) setCurrentColor(selectedColor);
32778
32834
  }, [isOpen, selectedColor]);
32779
- var handleConfirm = function handleConfirm() {
32835
+ var handleConfirm = function handleConfirm(e) {
32836
+ e.preventDefault();
32837
+ if (costWarning) {
32838
+ setShowConfirmModal(true);
32839
+ } else {
32840
+ onConfirm(currentColor);
32841
+ onClose();
32842
+ }
32843
+ };
32844
+ var handleConfirmCost = function handleConfirmCost() {
32780
32845
  onConfirm(currentColor);
32846
+ setShowConfirmModal(false);
32781
32847
  onClose();
32782
32848
  };
32849
+ var handleClose = function handleClose() {
32850
+ setShowConfirmModal(false);
32851
+ };
32852
+ var renderConfirmMessage = function renderConfirmMessage() {
32853
+ return React.createElement(ConfirmContent, null, React.createElement("p", null, "Cost:", React.createElement(CostDisplay, null, costWarning == null ? void 0 : costWarning.cost.toLocaleString(), (costWarning == null ? void 0 : costWarning.currency) || ' gold')), React.createElement("p", null, "Proceed with color change?"));
32854
+ };
32783
32855
  if (!isOpen) return null;
32784
- return isOpen ? React.createElement(DraggableContainer, {
32856
+ return React.createElement(React.Fragment, null, React.createElement(DraggableContainer, {
32785
32857
  type: RPGUIContainerTypes.Framed,
32786
32858
  cancelDrag: ".react-colorful",
32787
- width: "20rem",
32859
+ width: "25rem",
32788
32860
  onCloseButton: onClose
32789
- }, React.createElement(Container$t, null, React.createElement(Header$3, null, "Select Color"), React.createElement(HexColorPicker, {
32861
+ }, React.createElement(Container$u, null, React.createElement(Header$3, null, "Select Color"), React.createElement(ColorPickerWrapper, null, React.createElement(HexColorPicker, {
32790
32862
  color: currentColor,
32791
32863
  onChange: function onChange(color) {
32792
32864
  setCurrentColor(color);
32793
32865
  _onChange(color);
32794
32866
  }
32795
- }), React.createElement(Button, {
32867
+ })), React.createElement(ButtonContainer$2, null, React.createElement(Button, {
32796
32868
  buttonType: ButtonTypes.RPGUIButton,
32797
32869
  type: "button",
32798
32870
  onClick: handleConfirm
32799
- }, "Confirm"))) : null;
32871
+ }, "Confirm")))), showConfirmModal && costWarning && React.createElement(ConfirmModal, {
32872
+ message: renderConfirmMessage(),
32873
+ onConfirm: handleConfirmCost,
32874
+ onClose: handleClose
32875
+ }));
32800
32876
  };
32801
- var Container$t = /*#__PURE__*/styled.div.withConfig({
32877
+ var Container$u = /*#__PURE__*/styled.div.withConfig({
32802
32878
  displayName: "ItemPropertyColorSelector__Container",
32803
32879
  componentId: "sc-me1r4z-0"
32804
- })(["padding:2rem;text-align:center;background:inherit;"]);
32880
+ })(["text-align:center;background:inherit;display:flex;flex-direction:column;gap:1.5rem;align-items:center;width:100%;max-width:24rem;margin:0 auto;"]);
32805
32881
  var Header$3 = /*#__PURE__*/styled.h2.withConfig({
32806
32882
  displayName: "ItemPropertyColorSelector__Header",
32807
32883
  componentId: "sc-me1r4z-1"
32808
- })(["font-family:'Press Start 2P',cursive;color:white;font-size:1rem;margin-bottom:1rem;"]);
32884
+ })(["color:white;font-size:1rem;margin:0;width:100%;text-align:center;"]);
32885
+ var ColorPickerWrapper = /*#__PURE__*/styled.div.withConfig({
32886
+ displayName: "ItemPropertyColorSelector__ColorPickerWrapper",
32887
+ componentId: "sc-me1r4z-2"
32888
+ })(["display:flex;justify-content:center;width:100%;.react-colorful{width:100%;max-width:200px;}"]);
32889
+ var ButtonContainer$2 = /*#__PURE__*/styled.div.withConfig({
32890
+ displayName: "ItemPropertyColorSelector__ButtonContainer",
32891
+ componentId: "sc-me1r4z-3"
32892
+ })(["display:flex;justify-content:center;width:100%;"]);
32893
+ var ConfirmContent = /*#__PURE__*/styled.div.withConfig({
32894
+ displayName: "ItemPropertyColorSelector__ConfirmContent",
32895
+ componentId: "sc-me1r4z-4"
32896
+ })(["display:flex;flex-direction:column;gap:0.5rem;text-align:center;font-family:'Press Start 2P',cursive;font-size:0.75rem;"]);
32897
+ var CostDisplay = /*#__PURE__*/styled.span.withConfig({
32898
+ displayName: "ItemPropertyColorSelector__CostDisplay",
32899
+ componentId: "sc-me1r4z-5"
32900
+ })(["color:", " !important;"], uiColors.yellow);
32809
32901
 
32810
32902
  var ItemPropertySimpleHandler = function ItemPropertySimpleHandler(_ref) {
32811
32903
  var isOpen = _ref.isOpen,
@@ -33136,7 +33228,7 @@ var ListMenu = function ListMenu(_ref) {
33136
33228
  onSelected = _ref.onSelected,
33137
33229
  x = _ref.x,
33138
33230
  y = _ref.y;
33139
- return React.createElement(Container$u, {
33231
+ return React.createElement(Container$v, {
33140
33232
  x: x,
33141
33233
  y: y
33142
33234
  }, React.createElement("ul", {
@@ -33153,7 +33245,7 @@ var ListMenu = function ListMenu(_ref) {
33153
33245
  }, (params == null ? void 0 : params.text) || 'No text');
33154
33246
  })));
33155
33247
  };
33156
- var Container$u = /*#__PURE__*/styled.div.withConfig({
33248
+ var Container$v = /*#__PURE__*/styled.div.withConfig({
33157
33249
  displayName: "ListMenu__Container",
33158
33250
  componentId: "sc-i9097t-0"
33159
33251
  })(["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) {
@@ -33172,7 +33264,7 @@ var Pager = function Pager(_ref) {
33172
33264
  itemsPerPage = _ref.itemsPerPage,
33173
33265
  onPageChange = _ref.onPageChange;
33174
33266
  var totalPages = Math.ceil(totalItems / itemsPerPage);
33175
- return React.createElement(Container$v, null, React.createElement("p", null, "Total items: ", totalItems), React.createElement(PagerContainer, null, React.createElement("button", {
33267
+ return React.createElement(Container$w, null, React.createElement("p", null, "Total items: ", totalItems), React.createElement(PagerContainer, null, React.createElement("button", {
33176
33268
  disabled: currentPage === 1,
33177
33269
  onPointerDown: function onPointerDown() {
33178
33270
  return onPageChange(Math.max(currentPage - 1, 1));
@@ -33186,7 +33278,7 @@ var Pager = function Pager(_ref) {
33186
33278
  }
33187
33279
  }, '>')));
33188
33280
  };
33189
- var Container$v = /*#__PURE__*/styled.div.withConfig({
33281
+ var Container$w = /*#__PURE__*/styled.div.withConfig({
33190
33282
  displayName: "Pager__Container",
33191
33283
  componentId: "sc-1ekmf50-0"
33192
33284
  })(["display:flex;flex-direction:column;align-items:center;p{margin:0;font-size:", ";}"], uiFonts.size.xsmall);
@@ -33195,46 +33287,6 @@ var PagerContainer = /*#__PURE__*/styled.div.withConfig({
33195
33287
  componentId: "sc-1ekmf50-1"
33196
33288
  })(["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);
33197
33289
 
33198
- var ConfirmModal = function ConfirmModal(_ref) {
33199
- var onConfirm = _ref.onConfirm,
33200
- onClose = _ref.onClose,
33201
- message = _ref.message;
33202
- return React.createElement(ModalPortal, null, React.createElement(Background, null), React.createElement(Container$w, {
33203
- onPointerDown: onClose
33204
- }, React.createElement(DraggableContainer, {
33205
- width: "auto",
33206
- dragDisabled: true
33207
- }, React.createElement(Wrapper$1, {
33208
- onPointerDown: function onPointerDown(e) {
33209
- return e.stopPropagation();
33210
- }
33211
- }, React.createElement("p", null, message != null ? message : 'Are you sure?'), React.createElement(ButtonsWrapper, null, React.createElement("div", {
33212
- className: "cancel-button"
33213
- }, React.createElement(Button, {
33214
- buttonType: ButtonTypes.RPGUIButton,
33215
- onPointerDown: onClose
33216
- }, "No")), React.createElement(Button, {
33217
- buttonType: ButtonTypes.RPGUIButton,
33218
- onPointerDown: onConfirm
33219
- }, "Yes"))))));
33220
- };
33221
- var Background = /*#__PURE__*/styled.div.withConfig({
33222
- displayName: "ConfirmModal__Background",
33223
- componentId: "sc-11qkyu1-0"
33224
- })(["position:absolute;width:100%;height:100%;background-color:#000000;opacity:0.5;left:0;top:0;z-index:1000;"]);
33225
- var Container$w = /*#__PURE__*/styled.div.withConfig({
33226
- displayName: "ConfirmModal__Container",
33227
- componentId: "sc-11qkyu1-1"
33228
- })(["position:absolute;width:100%;height:100%;left:0;top:0;display:flex;justify-content:center;align-items:center;z-index:1001;"]);
33229
- var Wrapper$1 = /*#__PURE__*/styled.div.withConfig({
33230
- displayName: "ConfirmModal__Wrapper",
33231
- componentId: "sc-11qkyu1-2"
33232
- })(["p{margin:0;}"]);
33233
- var ButtonsWrapper = /*#__PURE__*/styled.div.withConfig({
33234
- displayName: "ConfirmModal__ButtonsWrapper",
33235
- componentId: "sc-11qkyu1-3"
33236
- })(["display:flex;justify-content:flex-end;gap:5px;margin-top:5px;.cancel-button{filter:grayscale(0.7);}"]);
33237
-
33238
33290
  var MarketplaceRows = function MarketplaceRows(_ref) {
33239
33291
  var atlasJSON = _ref.atlasJSON,
33240
33292
  atlasIMG = _ref.atlasIMG,
@@ -33280,7 +33332,7 @@ var MarketplaceRows = function MarketplaceRows(_ref) {
33280
33332
  maxLines: 1,
33281
33333
  maxWidth: "200px",
33282
33334
  fontSize: "10px"
33283
- }, "$", itemPrice)))), React.createElement(ButtonContainer$2, null, React.createElement(Button, {
33335
+ }, "$", itemPrice)))), React.createElement(ButtonContainer$3, null, React.createElement(Button, {
33284
33336
  buttonType: ButtonTypes.RPGUIButton,
33285
33337
  disabled: disabled,
33286
33338
  onPointerDown: function onPointerDown() {
@@ -33322,7 +33374,7 @@ var PriceValue = /*#__PURE__*/styled.div.withConfig({
33322
33374
  displayName: "MarketplaceRows__PriceValue",
33323
33375
  componentId: "sc-wmpr1o-7"
33324
33376
  })(["margin-left:40px;"]);
33325
- var ButtonContainer$2 = /*#__PURE__*/styled.div.withConfig({
33377
+ var ButtonContainer$3 = /*#__PURE__*/styled.div.withConfig({
33326
33378
  displayName: "MarketplaceRows__ButtonContainer",
33327
33379
  componentId: "sc-wmpr1o-8"
33328
33380
  })(["margin:auto;"]);
@@ -34091,7 +34143,7 @@ var PartyManagerRow = function PartyManagerRow(_ref) {
34091
34143
  }, charName, " ", isCurrentUser ? '(You)' : '', " ", isLeader ? '(Leader)' : '')), React.createElement(TextContainer$5, null, React.createElement(Ellipsis, {
34092
34144
  maxLines: 1,
34093
34145
  maxWidth: "300px"
34094
- }, charClass)), React.createElement(ButtonContainer$3, null, canRemove && React.createElement(HighlightedText, {
34146
+ }, charClass)), React.createElement(ButtonContainer$4, null, canRemove && React.createElement(HighlightedText, {
34095
34147
  onPointerDown: function onPointerDown() {
34096
34148
  return onRemovePlayer(id);
34097
34149
  }
@@ -34109,7 +34161,7 @@ var TextContainer$5 = /*#__PURE__*/styled.div.withConfig({
34109
34161
  displayName: "PartyManagerRows__TextContainer",
34110
34162
  componentId: "sc-uqajew-1"
34111
34163
  })(["color:", ";overflow:hidden;white-space:nowrap;text-overflow:ellipsis;"], uiColors.white);
34112
- var ButtonContainer$3 = /*#__PURE__*/styled.div.withConfig({
34164
+ var ButtonContainer$4 = /*#__PURE__*/styled.div.withConfig({
34113
34165
  displayName: "PartyManagerRows__ButtonContainer",
34114
34166
  componentId: "sc-uqajew-2"
34115
34167
  })(["display:flex;align-items:center;gap:1rem;justify-content:flex-start;"]);