@rpg-engine/long-bow 0.6.1 → 0.6.3

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,9 +1,8 @@
1
1
  /// <reference types="react" />
2
+ import { IItem } from '@rpg-engine/shared';
2
3
  interface IProps {
3
- itemId: string;
4
- gemQty: number;
5
- qtyClassName: string;
4
+ item: IItem;
6
5
  }
7
- export declare const onRenderGems: (itemId: string, gemQty: number) => JSX.Element | undefined;
8
- export declare const ItemSlotQty: ({ itemId, gemQty, qtyClassName, }: IProps) => JSX.Element;
9
- export {};
6
+ export declare const onRenderGems: (item: IItem) => JSX.Element | undefined;
7
+ export declare const ItemSlotQty: ({ item }: IProps) => JSX.Element;
8
+ export default ItemSlotQty;
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ interface IStep {
3
+ component: React.ReactNode;
4
+ id: number;
5
+ }
6
+ interface IStepperProps {
7
+ steps: IStep[];
8
+ finalCTAButton?: {
9
+ label: string;
10
+ onClick: (() => void) | (() => Promise<void>) | ((e: any) => Promise<void>);
11
+ };
12
+ }
13
+ export declare const Stepper: React.FC<IStepperProps>;
14
+ export {};
package/dist/index.d.ts CHANGED
@@ -40,6 +40,7 @@ export * from './components/Shortcuts/Shortcuts';
40
40
  export * from './components/SkillProgressBar';
41
41
  export * from './components/SkillsContainer';
42
42
  export * from './components/Spellbook/Spellbook';
43
+ export * from './components/Stepper';
43
44
  export * from './components/TextArea';
44
45
  export * from './components/TimeWidget/TimeWidget';
45
46
  export * from './components/TradingMenu/TradingMenu';
@@ -13665,47 +13665,61 @@ var rarityColor = function rarityColor(item) {
13665
13665
  }
13666
13666
  };
13667
13667
 
13668
- var onRenderGems = function onRenderGems(itemId, gemQty) {
13669
- var qtyClassName = 'small';
13670
- if (gemQty <= 2) {
13671
- qtyClassName = 'regular';
13672
- }
13668
+ var gemColors = {
13669
+ 'emerald-gem': '#50C878',
13670
+ 'topaz-radiance': '#FFC87C',
13671
+ 'sapphire-gem': '#0F52BA',
13672
+ 'ruby-gem': '#E0115F',
13673
+ 'misty-quartz-gem': '#D9D9F3',
13674
+ 'coral-reef-gem': '#FF7F50',
13675
+ 'jasper-gem': '#D73B3E',
13676
+ 'earthstone-gem': '#8B4513',
13677
+ 'obsidian-gem': '#0B0C0E',
13678
+ 'amethyst-gem': '#9966CC'
13679
+ };
13680
+ var defaultColor = '#FFFFFF'; // Default color (white)
13681
+ var onRenderGems = function onRenderGems(item) {
13682
+ var _item$attachedGems;
13683
+ var gemQty = ((_item$attachedGems = item.attachedGems) == null ? void 0 : _item$attachedGems.length) || 0;
13673
13684
  if (gemQty > 0) {
13674
13685
  return React__default.createElement(ItemSlotQty, {
13675
- itemId: itemId,
13676
- gemQty: gemQty,
13677
- qtyClassName: qtyClassName
13686
+ item: item
13678
13687
  });
13679
13688
  }
13680
13689
  return undefined;
13681
13690
  };
13682
13691
  var ItemSlotQty = function ItemSlotQty(_ref) {
13683
- var itemId = _ref.itemId,
13684
- gemQty = _ref.gemQty,
13685
- qtyClassName = _ref.qtyClassName;
13686
- var gemArray = Array.from({
13687
- length: gemQty
13688
- }, function () {
13689
- return '🔶';
13690
- });
13692
+ var _item$attachedGems2;
13693
+ var item = _ref.item;
13694
+ console.log(item.attachedGems);
13695
+ var itemId = item._id;
13691
13696
  return React__default.createElement(ItemQtyContainer, {
13692
13697
  key: "qty-" + itemId,
13693
13698
  className: "item-slot-qty"
13694
- }, React__default.createElement(Ellipsis, {
13695
- maxLines: 1,
13696
- maxWidth: "48px"
13697
- }, React__default.createElement(ItemQty, {
13698
- className: qtyClassName
13699
- }, gemArray.join(''))));
13699
+ }, (_item$attachedGems2 = item.attachedGems) == null ? void 0 : _item$attachedGems2.map(function (gem, index) {
13700
+ return React__default.createElement(Gem, {
13701
+ key: itemId + "-gem-" + index,
13702
+ color: gemColors[gem.key] || defaultColor
13703
+ });
13704
+ }));
13700
13705
  };
13701
13706
  var ItemQtyContainer = /*#__PURE__*/styled__default.div.withConfig({
13702
13707
  displayName: "ItemGem__ItemQtyContainer",
13703
13708
  componentId: "sc-1ekseaq-0"
13704
- })(["position:relative;width:85%;height:16px;top:25px;left:5px;pointer-events:none;display:flex;"]);
13705
- var ItemQty = /*#__PURE__*/styled__default.span.withConfig({
13706
- displayName: "ItemGem__ItemQty",
13709
+ })(["position:relative;width:85%;height:16px;top:26px;left:-2px;pointer-events:none;transform:scale(0.8);display:flex;align-items:center;justify-content:center;opacity:0.8;"]);
13710
+ var Gem = /*#__PURE__*/styled__default.div.withConfig({
13711
+ displayName: "ItemGem__Gem",
13707
13712
  componentId: "sc-1ekseaq-1"
13708
- })(["&.regular{font-size:", ";}&.small{font-size:", ";}"], uiFonts.size.small, uiFonts.size.xsmall);
13713
+ })(["width:8px;height:8px;background:", ";border:1px solid black;transform:rotate(45deg);margin:0 2px;box-shadow:0 0 5px ", ";transition:transform 0.2s,box-shadow 0.2s;&:hover{transform:rotate(45deg) scale(1.2);box-shadow:0 0 10px ", ";}"], function (_ref2) {
13714
+ var color = _ref2.color;
13715
+ return "radial-gradient(circle at 20% 20%, rgba(255, 255, 255, 1), transparent 20%), \n linear-gradient(45deg, " + color + ", " + color + " 40%, rgba(255, 255, 255, 0.2))";
13716
+ }, function (_ref3) {
13717
+ var color = _ref3.color;
13718
+ return color;
13719
+ }, function (_ref4) {
13720
+ var color = _ref4.color;
13721
+ return color;
13722
+ });
13709
13723
 
13710
13724
  var onRenderStackInfo = function onRenderStackInfo(itemId, stackQty) {
13711
13725
  var isFractionalStackQty = stackQty % 1 !== 0;
@@ -13732,7 +13746,7 @@ var ItemSlotQty$1 = function ItemSlotQty(_ref) {
13732
13746
  }, React__default.createElement(Ellipsis, {
13733
13747
  maxLines: 1,
13734
13748
  maxWidth: "48px"
13735
- }, React__default.createElement(ItemQty$1, {
13749
+ }, React__default.createElement(ItemQty, {
13736
13750
  className: qtyClassName
13737
13751
  }, Math.round(stackQty * 100) / 100, ' ')));
13738
13752
  };
@@ -13740,7 +13754,7 @@ var ItemQtyContainer$1 = /*#__PURE__*/styled__default.div.withConfig({
13740
13754
  displayName: "ItemSlotQty__ItemQtyContainer",
13741
13755
  componentId: "sc-keb1s5-0"
13742
13756
  })(["position:relative;width:85%;height:16px;top:25px;left:2px;pointer-events:none;display:flex;justify-content:flex-end;"]);
13743
- var ItemQty$1 = /*#__PURE__*/styled__default.span.withConfig({
13757
+ var ItemQty = /*#__PURE__*/styled__default.span.withConfig({
13744
13758
  displayName: "ItemSlotQty__ItemQty",
13745
13759
  componentId: "sc-keb1s5-1"
13746
13760
  })(["&.regular{font-size:", ";}&.small{font-size:", ";}&.xsmall{font-size:", ";}"], uiFonts.size.small, uiFonts.size.xsmall, uiFonts.size.xxsmall);
@@ -13755,7 +13769,7 @@ var ItemSlotRenderer = function ItemSlotRenderer(_ref) {
13755
13769
  return item.stackQty && item.stackQty > 1 && onRenderStackInfo(item._id, item.stackQty);
13756
13770
  };
13757
13771
  var renderGems = function renderGems(item) {
13758
- return item.attachedGems && onRenderGems(item._id, item.attachedGems.length);
13772
+ return item.attachedGems && onRenderGems(item);
13759
13773
  };
13760
13774
  var renderItem = function renderItem(item) {
13761
13775
  if (!(item != null && item.texturePath)) {
@@ -19009,6 +19023,74 @@ var SpellList = /*#__PURE__*/styled__default.div.withConfig({
19009
19023
  componentId: "sc-r02nfq-2"
19010
19024
  })(["width:100%;min-height:0;flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:1.5rem;margin-top:1rem;"]);
19011
19025
 
19026
+ var Stepper = function Stepper(_ref) {
19027
+ var _steps$currentStep;
19028
+ var steps = _ref.steps,
19029
+ finalCTAButton = _ref.finalCTAButton;
19030
+ var _useState = React.useState(0),
19031
+ currentStep = _useState[0],
19032
+ setCurrentStep = _useState[1];
19033
+ var currentComponent = (_steps$currentStep = steps[currentStep]) == null ? void 0 : _steps$currentStep.component;
19034
+ var totalSteps = steps.length;
19035
+ var onStepChange = function onStepChange(step) {
19036
+ setCurrentStep(step);
19037
+ };
19038
+ return React__default.createElement(StepperContainer, {
19039
+ className: "stepper-container"
19040
+ }, React__default.createElement(StepperTop, null, Array.from({
19041
+ length: totalSteps
19042
+ }, function (_, i) {
19043
+ return React__default.createElement(ProgressIndicator, {
19044
+ key: i,
19045
+ isActive: i <= currentStep,
19046
+ onClick: function onClick() {
19047
+ return onStepChange(i);
19048
+ }
19049
+ });
19050
+ })), React__default.createElement(StepperBody, null, currentComponent), React__default.createElement(StepperFooter, null, currentStep > 0 && React__default.createElement(SelectArrow, {
19051
+ direction: "left",
19052
+ onPointerDown: function onPointerDown() {
19053
+ return onStepChange(Math.max(0, currentStep - 1));
19054
+ }
19055
+ }), currentStep < totalSteps - 1 && React__default.createElement(SelectArrow, {
19056
+ direction: "right",
19057
+ onPointerDown: function onPointerDown() {
19058
+ return onStepChange(Math.min(totalSteps - 1, currentStep + 1));
19059
+ }
19060
+ }), currentStep === totalSteps - 1 && finalCTAButton && React__default.createElement(Button, {
19061
+ buttonType: exports.ButtonTypes.RPGUIButton,
19062
+ onPointerDown: function onPointerDown() {
19063
+ return finalCTAButton.onClick;
19064
+ }
19065
+ }, finalCTAButton.label)));
19066
+ };
19067
+ var StepperContainer = /*#__PURE__*/styled__default.div.withConfig({
19068
+ displayName: "Stepper__StepperContainer",
19069
+ componentId: "sc-13obf1-0"
19070
+ })(["display:flex;flex-direction:column;height:100%;"]);
19071
+ var StepperTop = /*#__PURE__*/styled__default.div.withConfig({
19072
+ displayName: "Stepper__StepperTop",
19073
+ componentId: "sc-13obf1-1"
19074
+ })(["flex:1;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;margin-bottom:1rem;"]);
19075
+ var StepperBody = /*#__PURE__*/styled__default.div.withConfig({
19076
+ displayName: "Stepper__StepperBody",
19077
+ componentId: "sc-13obf1-2"
19078
+ })(["flex:8;"]);
19079
+ var StepperFooter = /*#__PURE__*/styled__default.div.withConfig({
19080
+ displayName: "Stepper__StepperFooter",
19081
+ componentId: "sc-13obf1-3"
19082
+ })(["margin-top:1rem;flex:1;display:flex;justify-content:flex-end;"]);
19083
+ var ProgressIndicator = /*#__PURE__*/styled__default.div.withConfig({
19084
+ displayName: "Stepper__ProgressIndicator",
19085
+ componentId: "sc-13obf1-4"
19086
+ })(["width:20px;height:20px;border-radius:50%;background-color:", ";margin:0 5px;transition:background-color 0.3s;opacity:", ";border:1px solid ", ";cursor:pointer;"], function (_ref2) {
19087
+ var isActive = _ref2.isActive;
19088
+ return isActive ? uiColors.orange : uiColors.lightGray;
19089
+ }, function (_ref3) {
19090
+ var isActive = _ref3.isActive;
19091
+ return isActive ? 1 : 0.25;
19092
+ }, uiColors.raisinBlack);
19093
+
19012
19094
  var TextArea = function TextArea(_ref) {
19013
19095
  var props = _extends({}, (_objectDestructuringEmpty(_ref), _ref));
19014
19096
  return React__default.createElement("textarea", Object.assign({}, props));
@@ -19299,7 +19381,7 @@ var TradingMenu = function TradingMenu(_ref) {
19299
19381
  scale: scale,
19300
19382
  isBuy: isBuy()
19301
19383
  }));
19302
- })), React__default.createElement(GoldWrapper, null, React__default.createElement("p", null, "Available Gold:"), React__default.createElement("p", null, "$", characterAvailableGold)), React__default.createElement(TotalWrapper, null, React__default.createElement("p", null, "Total:"), React__default.createElement("p", null, "$", sum)), !hasGoldForSale() ? React__default.createElement(AlertWrapper, null, React__default.createElement("p", null, " Sorry, not enough money.")) : React__default.createElement(GoldWrapper, null, React__default.createElement("p", null, "Final Gold:"), React__default.createElement("p", null, "$", getFinalGold())), React__default.createElement(ButtonWrapper$2, null, React__default.createElement(Button, {
19384
+ })), React__default.createElement(GoldWrapper, null, React__default.createElement("p", null, "Available Gold:"), React__default.createElement("p", null, "$", characterAvailableGold.toFixed(2))), React__default.createElement(TotalWrapper, null, React__default.createElement("p", null, "Total:"), React__default.createElement("p", null, "$", sum)), !hasGoldForSale() ? React__default.createElement(AlertWrapper, null, React__default.createElement("p", null, " Sorry, not enough money.")) : React__default.createElement(GoldWrapper, null, React__default.createElement("p", null, "Final Gold:"), React__default.createElement("p", null, "$", getFinalGold().toFixed(2))), React__default.createElement(ButtonWrapper$2, null, React__default.createElement(Button, {
19303
19385
  buttonType: exports.ButtonTypes.RPGUIButton,
19304
19386
  disabled: !hasGoldForSale(),
19305
19387
  onPointerDown: function onPointerDown() {
@@ -19495,6 +19577,7 @@ exports.SkillProgressBar = SkillProgressBar;
19495
19577
  exports.SkillsContainer = SkillsContainer;
19496
19578
  exports.Spellbook = Spellbook;
19497
19579
  exports.SpriteFromAtlas = SpriteFromAtlas;
19580
+ exports.Stepper = Stepper;
19498
19581
  exports.TextArea = TextArea;
19499
19582
  exports.TimeWidget = TimeWidget;
19500
19583
  exports.TradingMenu = TradingMenu;