@rpg-engine/long-bow 0.7.85 → 0.7.87

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.
@@ -30497,71 +30497,68 @@ var Input$1 = /*#__PURE__*/styled.input.withConfig({
30497
30497
  componentId: "sc-v8mte9-0"
30498
30498
  })(["opacity:0;position:absolute;width:100%;height:100%;top:0;left:0;margin-top:-5px;"]);
30499
30499
 
30500
- var ItemQuantitySelector = function ItemQuantitySelector(_ref) {
30501
- var quantity = _ref.quantity,
30500
+ var QuantitySelector = function QuantitySelector(_ref) {
30501
+ var maxQuantity = _ref.maxQuantity,
30502
+ initialQuantity = _ref.initialQuantity,
30503
+ _ref$title = _ref.title,
30504
+ title = _ref$title === void 0 ? 'Select quantity' : _ref$title,
30502
30505
  onConfirm = _ref.onConfirm,
30503
30506
  onClose = _ref.onClose;
30504
- var _useState = useState(quantity),
30507
+ var _useState = useState(initialQuantity != null ? initialQuantity : maxQuantity),
30505
30508
  value = _useState[0],
30506
30509
  setValue = _useState[1];
30507
30510
  var inputRef = useRef(null);
30508
30511
  useEffect(function () {
30512
+ var closeSelector = function closeSelector(e) {
30513
+ if (e.key === 'Escape') {
30514
+ onClose();
30515
+ }
30516
+ };
30509
30517
  if (inputRef.current) {
30510
30518
  inputRef.current.focus();
30511
30519
  inputRef.current.select();
30512
- var closeSelector = function closeSelector(e) {
30513
- if (e.key === 'Escape') {
30514
- onClose();
30515
- }
30516
- };
30517
- document.addEventListener('keydown', closeSelector);
30518
- return function () {
30519
- document.removeEventListener('keydown', closeSelector);
30520
- };
30521
30520
  }
30522
- return function () {};
30523
- }, []);
30521
+ document.addEventListener('keydown', closeSelector);
30522
+ return function () {
30523
+ return document.removeEventListener('keydown', closeSelector);
30524
+ };
30525
+ }, [onClose]);
30524
30526
  return React.createElement(StyledContainer, {
30525
30527
  type: RPGUIContainerTypes.Framed,
30526
30528
  width: "25rem"
30527
30529
  }, React.createElement(CloseButton$5, {
30528
30530
  className: "container-close",
30529
30531
  onPointerDown: onClose
30530
- }, "X"), React.createElement("h2", null, "Select quantity to move"), React.createElement(StyledForm, {
30531
- style: {
30532
- width: '100%'
30533
- },
30532
+ }, "X"), React.createElement("h2", null, title), React.createElement(StyledForm, {
30534
30533
  onSubmit: function onSubmit(e) {
30535
30534
  e.preventDefault();
30536
30535
  var numberValue = Number(value);
30537
- if (Number.isNaN(numberValue)) {
30538
- return;
30536
+ if (!Number.isNaN(numberValue)) {
30537
+ onConfirm(Math.max(1, Math.min(maxQuantity, numberValue)));
30539
30538
  }
30540
- onConfirm(Math.max(1, Math.min(quantity, numberValue)));
30541
30539
  },
30542
30540
  noValidate: true
30543
30541
  }, React.createElement(StyledInput, {
30544
- innerRef: inputRef,
30542
+ ref: inputRef,
30545
30543
  placeholder: "Enter quantity",
30546
30544
  type: "number",
30547
30545
  min: 1,
30548
- max: quantity,
30546
+ max: maxQuantity,
30549
30547
  value: value,
30550
30548
  onChange: function onChange(e) {
30551
- if (Number(e.target.value) >= quantity) {
30552
- setValue(quantity);
30549
+ if (Number(e.target.value) >= maxQuantity) {
30550
+ setValue(maxQuantity);
30553
30551
  return;
30554
30552
  }
30555
- setValue(e.target.value);
30553
+ setValue(Number(e.target.value));
30556
30554
  },
30557
30555
  onBlur: function onBlur(e) {
30558
- var newValue = Math.max(1, Math.min(quantity, Number(e.target.value)));
30559
- setValue(newValue);
30556
+ setValue(Math.max(1, Math.min(maxQuantity, Number(e.target.value))));
30560
30557
  }
30561
30558
  }), React.createElement(RangeSlider, {
30562
30559
  type: RangeSliderType.Slider,
30563
30560
  valueMin: 1,
30564
- valueMax: quantity,
30561
+ valueMax: maxQuantity,
30565
30562
  width: "100%",
30566
30563
  onChange: setValue,
30567
30564
  value: value
@@ -30571,50 +30568,68 @@ var ItemQuantitySelector = function ItemQuantitySelector(_ref) {
30571
30568
  }, "Confirm")));
30572
30569
  };
30573
30570
  var StyledContainer = /*#__PURE__*/styled(RPGUIContainer).withConfig({
30574
- displayName: "ItemQuantitySelector__StyledContainer",
30575
- componentId: "sc-yfdtpn-0"
30576
- })(["display:flex;flex-direction:column;align-items:center;"]);
30577
- var StyledForm = /*#__PURE__*/styled.form.withConfig({
30578
- displayName: "ItemQuantitySelector__StyledForm",
30579
- componentId: "sc-yfdtpn-1"
30580
- })(["display:flex;flex-direction:column;align-items:center;width:100%;"]);
30581
- var StyledInput = /*#__PURE__*/styled(Input).withConfig({
30582
- displayName: "ItemQuantitySelector__StyledInput",
30583
- componentId: "sc-yfdtpn-2"
30584
- })(["text-align:center;&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}&[type='number']{-moz-appearance:textfield;}"]);
30571
+ displayName: "QuantitySelector__StyledContainer",
30572
+ componentId: "sc-z4ut57-0"
30573
+ })(["position:relative;display:flex;flex-direction:column;align-items:center;padding:1rem;h2{margin:0;margin-bottom:1rem;font-size:1rem;}"]);
30585
30574
  var CloseButton$5 = /*#__PURE__*/styled.div.withConfig({
30586
- displayName: "ItemQuantitySelector__CloseButton",
30587
- componentId: "sc-yfdtpn-3"
30588
- })(["position:absolute;top:3px;right:0px;color:white;z-index:22;font-size:0.8rem;"]);
30575
+ displayName: "QuantitySelector__CloseButton",
30576
+ componentId: "sc-z4ut57-1"
30577
+ })(["position:absolute;top:3px;right:0px;color:white;z-index:22;font-size:1.5rem;cursor:pointer;"]);
30578
+ var StyledForm = /*#__PURE__*/styled.form.withConfig({
30579
+ displayName: "QuantitySelector__StyledForm",
30580
+ componentId: "sc-z4ut57-2"
30581
+ })(["display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%;"]);
30582
+ var StyledInput = /*#__PURE__*/styled.input.withConfig({
30583
+ displayName: "QuantitySelector__StyledInput",
30584
+ componentId: "sc-z4ut57-3"
30585
+ })(["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;}"]);
30589
30586
 
30590
- var ItemQuantitySelectorModal = function ItemQuantitySelectorModal(_ref) {
30587
+ var validateQuantitySelect = function validateQuantitySelect(quantitySelect) {
30588
+ return _extends({}, quantitySelect, {
30589
+ maxQuantity: Math.max(1, quantitySelect.maxQuantity),
30590
+ initialQuantity: quantitySelect.initialQuantity ? Math.max(1, Math.min(quantitySelect.maxQuantity, quantitySelect.initialQuantity)) : undefined
30591
+ });
30592
+ };
30593
+ var QuantitySelectorModal = function QuantitySelectorModal(_ref) {
30591
30594
  var quantitySelect = _ref.quantitySelect,
30592
30595
  setQuantitySelect = _ref.setQuantitySelect;
30593
- return React.createElement(ModalPortal, null, React.createElement(QuantitySelectorContainer, null, React.createElement(ItemQuantitySelector, {
30594
- quantity: quantitySelect.maxQuantity,
30596
+ var resetQuantitySelect = function resetQuantitySelect() {
30597
+ setQuantitySelect({
30598
+ isOpen: false,
30599
+ maxQuantity: 1,
30600
+ callback: function callback() {}
30601
+ });
30602
+ };
30603
+ // Validate the input values
30604
+ var validatedQuantitySelect = validateQuantitySelect(quantitySelect);
30605
+ return React.createElement(ModalPortal, null, React.createElement(QuantitySelectorContainer, null, React.createElement(QuantitySelector, {
30606
+ maxQuantity: validatedQuantitySelect.maxQuantity,
30607
+ initialQuantity: validatedQuantitySelect.initialQuantity,
30608
+ title: validatedQuantitySelect.title,
30595
30609
  onConfirm: function onConfirm(quantity) {
30596
- quantitySelect.callback(quantity);
30597
- setQuantitySelect({
30598
- isOpen: false,
30599
- maxQuantity: 1,
30600
- callback: function callback() {}
30601
- });
30610
+ validatedQuantitySelect.callback(quantity);
30611
+ resetQuantitySelect();
30602
30612
  },
30603
30613
  onClose: function onClose() {
30604
- quantitySelect.callback(-1);
30605
- setQuantitySelect({
30606
- isOpen: false,
30607
- maxQuantity: 1,
30608
- callback: function callback() {}
30609
- });
30614
+ validatedQuantitySelect.callback(-1);
30615
+ resetQuantitySelect();
30610
30616
  }
30611
30617
  })));
30612
30618
  };
30613
30619
  var QuantitySelectorContainer = /*#__PURE__*/styled.div.withConfig({
30614
- displayName: "ItemQuantitySelectorModal__QuantitySelectorContainer",
30615
- componentId: "sc-1b8cosc-0"
30620
+ displayName: "QuantitySelectorModal__QuantitySelectorContainer",
30621
+ componentId: "sc-aye686-0"
30616
30622
  })(["position:absolute;top:0;left:0;width:100vw;height:100vh;z-index:100;display:flex;justify-content:center;align-items:center;background-color:rgba(0,0,0,0.5);"]);
30617
30623
 
30624
+ var ItemQuantitySelectorModal = function ItemQuantitySelectorModal(_ref) {
30625
+ var quantitySelect = _ref.quantitySelect,
30626
+ setQuantitySelect = _ref.setQuantitySelect;
30627
+ return React.createElement(QuantitySelectorModal, {
30628
+ quantitySelect: quantitySelect,
30629
+ setQuantitySelect: setQuantitySelect
30630
+ });
30631
+ };
30632
+
30618
30633
  var MIN_SLOTS_FOR_SCROLL = 20;
30619
30634
  var ItemContainer$1 = /*#__PURE__*/React.memo(function (_ref) {
30620
30635
  var itemContainer = _ref.itemContainer,