@rpg-engine/long-bow 0.8.229 → 0.8.230

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.
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ export interface IRadioSelectCardProps {
3
+ label: string;
4
+ description?: string;
5
+ badge?: string;
6
+ icon?: React.ReactNode;
7
+ active?: boolean;
8
+ onClick: () => void;
9
+ 'data-testid'?: string;
10
+ }
11
+ /**
12
+ * Dark RPG-themed radio-style card.
13
+ * Matches the aesthetic of MarketplaceSettingsPanel OptionCard.
14
+ * Uses !important overrides to survive RPGUI global CSS.
15
+ */
16
+ export declare const RadioSelectCard: React.FC<IRadioSelectCardProps>;
package/dist/index.d.ts CHANGED
@@ -63,6 +63,7 @@ export * from './components/QuantitySelector/QuantitySelectorModal';
63
63
  export * from './components/Quests/QuestInfo/QuestInfo';
64
64
  export * from './components/Quests/QuestList';
65
65
  export * from './components/RadioButton';
66
+ export * from './components/RadioSelectCard/RadioSelectCard';
66
67
  export * from './components/RangeSlider';
67
68
  export * from './components/RPGUI/RPGUIContainer';
68
69
  export * from './components/RPGUI/RPGUIRoot';
@@ -15845,6 +15845,84 @@ var InputRadio = function InputRadio(_ref) {
15845
15845
  }));
15846
15846
  };
15847
15847
 
15848
+ /**
15849
+ * Dark RPG-themed radio-style card.
15850
+ * Matches the aesthetic of MarketplaceSettingsPanel OptionCard.
15851
+ * Uses !important overrides to survive RPGUI global CSS.
15852
+ */
15853
+ var RadioSelectCard = function RadioSelectCard(_ref) {
15854
+ var label = _ref.label,
15855
+ description = _ref.description,
15856
+ badge = _ref.badge,
15857
+ icon = _ref.icon,
15858
+ _ref$active = _ref.active,
15859
+ active = _ref$active === void 0 ? false : _ref$active,
15860
+ onClick = _ref.onClick,
15861
+ testId = _ref['data-testid'];
15862
+ return React__default.createElement(Card, {
15863
+ "$active": active,
15864
+ onClick: onClick,
15865
+ "data-testid": testId,
15866
+ type: "button"
15867
+ }, icon && React__default.createElement(IconWrap, null, icon), React__default.createElement(Body, null, React__default.createElement(Label$7, {
15868
+ "$active": active
15869
+ }, label), description && React__default.createElement(Description$5, null, description)), badge && React__default.createElement(Badge, {
15870
+ "$active": active
15871
+ }, badge));
15872
+ };
15873
+ // ─── Styled Components ────────────────────────────────────────────────────────
15874
+ var Card = /*#__PURE__*/styled__default.button.withConfig({
15875
+ displayName: "RadioSelectCard__Card",
15876
+ componentId: "sc-12jrcz1-0"
15877
+ })(["display:flex !important;flex-direction:row !important;align-items:center !important;gap:0.6rem !important;width:100% !important;padding:0.75rem 0.9rem !important;background:", " !important;border:2px solid ", " !important;border-radius:6px !important;cursor:pointer !important;text-align:left !important;transition:border-color 0.15s ease,background 0.15s ease,box-shadow 0.15s ease !important;font-family:inherit !important;box-sizing:border-box !important;&:hover{border-color:", " !important;background:", " !important;box-shadow:", " !important;}&:active{background:rgba(0,0,0,0.5) !important;}"], function (_ref2) {
15878
+ var $active = _ref2.$active;
15879
+ return $active ? 'rgba(245, 158, 11, 0.12)' : 'rgba(0, 0, 0, 0.25)';
15880
+ }, function (_ref3) {
15881
+ var $active = _ref3.$active;
15882
+ return $active ? '#f59e0b' : 'rgba(255, 255, 255, 0.08)';
15883
+ }, function (_ref4) {
15884
+ var $active = _ref4.$active;
15885
+ return $active ? '#f59e0b' : 'rgba(255, 255, 255, 0.3)';
15886
+ }, function (_ref5) {
15887
+ var $active = _ref5.$active;
15888
+ return $active ? 'rgba(245, 158, 11, 0.18)' : 'rgba(255, 255, 255, 0.04)';
15889
+ }, function (_ref6) {
15890
+ var $active = _ref6.$active;
15891
+ return $active ? '0 0 14px rgba(245, 158, 11, 0.3)' : '0 0 8px rgba(255, 255, 255, 0.05)';
15892
+ });
15893
+ var IconWrap = /*#__PURE__*/styled__default.span.withConfig({
15894
+ displayName: "RadioSelectCard__IconWrap",
15895
+ componentId: "sc-12jrcz1-1"
15896
+ })(["font-size:1.4rem !important;line-height:1 !important;flex-shrink:0 !important;"]);
15897
+ var Body = /*#__PURE__*/styled__default.div.withConfig({
15898
+ displayName: "RadioSelectCard__Body",
15899
+ componentId: "sc-12jrcz1-2"
15900
+ })(["flex:1 !important;min-width:0 !important;display:flex !important;flex-direction:column !important;gap:0.2rem !important;"]);
15901
+ var Label$7 = /*#__PURE__*/styled__default.span.withConfig({
15902
+ displayName: "RadioSelectCard__Label",
15903
+ componentId: "sc-12jrcz1-3"
15904
+ })(["font-size:0.72rem !important;font-weight:bold !important;color:", " !important;text-transform:uppercase !important;letter-spacing:0.8px !important;line-height:1.2 !important;"], function (_ref7) {
15905
+ var $active = _ref7.$active;
15906
+ return $active ? '#f59e0b' : 'rgba(255, 255, 255, 0.9)';
15907
+ });
15908
+ var Description$5 = /*#__PURE__*/styled__default.span.withConfig({
15909
+ displayName: "RadioSelectCard__Description",
15910
+ componentId: "sc-12jrcz1-4"
15911
+ })(["font-size:0.62rem !important;color:rgba(255,255,255,0.45) !important;line-height:1.4 !important;"]);
15912
+ var Badge = /*#__PURE__*/styled__default.span.withConfig({
15913
+ displayName: "RadioSelectCard__Badge",
15914
+ componentId: "sc-12jrcz1-5"
15915
+ })(["flex-shrink:0 !important;padding:0.15rem 0.45rem !important;background:", " !important;border:1px solid ", " !important;border-radius:20px !important;font-size:0.55rem !important;font-weight:bold !important;letter-spacing:0.5px !important;text-transform:uppercase !important;color:", " !important;white-space:nowrap !important;"], function (_ref8) {
15916
+ var $active = _ref8.$active;
15917
+ return $active ? 'rgba(245, 158, 11, 0.2)' : 'rgba(255, 255, 255, 0.06)';
15918
+ }, function (_ref9) {
15919
+ var $active = _ref9.$active;
15920
+ return $active ? 'rgba(245, 158, 11, 0.5)' : 'rgba(255, 255, 255, 0.12)';
15921
+ }, function (_ref10) {
15922
+ var $active = _ref10.$active;
15923
+ return $active ? '#f59e0b' : 'rgba(255, 255, 255, 0.45)';
15924
+ });
15925
+
15848
15926
  /**
15849
15927
  * A selectable row with an amber radio circle indicator.
15850
15928
  * Used for single-select option lists throughout the Marketplace UI.
@@ -16364,7 +16442,7 @@ var SkillInfoModal = function SkillInfoModal(_ref) {
16364
16442
  "$color": info.color
16365
16443
  }, info.name), React__default.createElement(CloseButton$g, {
16366
16444
  onPointerDown: onClose
16367
- }, React__default.createElement(fa.FaTimes, null))), React__default.createElement(Section$4, null, React__default.createElement(Label$7, null, "What it does"), React__default.createElement(Text$1, null, info.description)), React__default.createElement(Section$4, null, React__default.createElement(Label$7, null, "How to train"), React__default.createElement(Text$1, null, info.howToTrain)), info.notes && React__default.createElement(Section$4, null, React__default.createElement(Label$7, null, "Notes"), React__default.createElement(Text$1, null, info.notes)))));
16445
+ }, React__default.createElement(fa.FaTimes, null))), React__default.createElement(Section$4, null, React__default.createElement(Label$8, null, "What it does"), React__default.createElement(Text$1, null, info.description)), React__default.createElement(Section$4, null, React__default.createElement(Label$8, null, "How to train"), React__default.createElement(Text$1, null, info.howToTrain)), info.notes && React__default.createElement(Section$4, null, React__default.createElement(Label$8, null, "Notes"), React__default.createElement(Text$1, null, info.notes)))));
16368
16446
  };
16369
16447
  var Overlay$9 = /*#__PURE__*/styled__default.div.withConfig({
16370
16448
  displayName: "SkillInfoModal__Overlay",
@@ -16397,7 +16475,7 @@ var Section$4 = /*#__PURE__*/styled__default.div.withConfig({
16397
16475
  displayName: "SkillInfoModal__Section",
16398
16476
  componentId: "sc-pqkzdj-6"
16399
16477
  })(["display:flex;flex-direction:column;gap:6px;"]);
16400
- var Label$7 = /*#__PURE__*/styled__default.span.withConfig({
16478
+ var Label$8 = /*#__PURE__*/styled__default.span.withConfig({
16401
16479
  displayName: "SkillInfoModal__Label",
16402
16480
  componentId: "sc-pqkzdj-7"
16403
16481
  })(["font-size:0.5rem;font-weight:bold;text-transform:uppercase;letter-spacing:0.05em;color:rgba(255,255,255,0.45);"]);
@@ -16734,7 +16812,7 @@ var SpellInfo$1 = function SpellInfo(_ref) {
16734
16812
  className: "label"
16735
16813
  }, "Required Item:"), React__default.createElement("div", {
16736
16814
  className: "value"
16737
- }, requiredItem))), React__default.createElement(Description$5, null, description));
16815
+ }, requiredItem))), React__default.createElement(Description$6, null, description));
16738
16816
  };
16739
16817
  var Container$G = /*#__PURE__*/styled__default.div.withConfig({
16740
16818
  displayName: "SpellInfo__Container",
@@ -16748,7 +16826,7 @@ var Type$1 = /*#__PURE__*/styled__default.div.withConfig({
16748
16826
  displayName: "SpellInfo__Type",
16749
16827
  componentId: "sc-4hbw3q-2"
16750
16828
  })(["font-size:", ";margin-top:0.2rem;color:", ";"], uiFonts.size.small, uiColors.lightGray);
16751
- var Description$5 = /*#__PURE__*/styled__default.div.withConfig({
16829
+ var Description$6 = /*#__PURE__*/styled__default.div.withConfig({
16752
16830
  displayName: "SpellInfo__Description",
16753
16831
  componentId: "sc-4hbw3q-3"
16754
16832
  })(["margin-top:1.5rem;font-size:", ";color:", ";font-style:italic;"], uiFonts.size.small, uiColors.lightGray);
@@ -16981,7 +17059,7 @@ var Spell = function Spell(_ref) {
16981
17059
  centered: true
16982
17060
  })), React__default.createElement(Info, null, React__default.createElement(Title$k, null, React__default.createElement("span", null, name), React__default.createElement("span", {
16983
17061
  className: "spell"
16984
- }, "(", magicWords, ")")), React__default.createElement(Description$6, null, description)), React__default.createElement(Divider$2, null), React__default.createElement(Cost, null, React__default.createElement("span", null, "Mana cost:"), React__default.createElement("span", {
17062
+ }, "(", magicWords, ")")), React__default.createElement(Description$7, null, description)), React__default.createElement(Divider$2, null), React__default.createElement(Cost, null, React__default.createElement("span", null, "Mana cost:"), React__default.createElement("span", {
16985
17063
  className: "mana"
16986
17064
  }, manaCost))));
16987
17065
  };
@@ -17004,7 +17082,7 @@ var Title$k = /*#__PURE__*/styled__default.p.withConfig({
17004
17082
  displayName: "Spell__Title",
17005
17083
  componentId: "sc-j96fa2-3"
17006
17084
  })(["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);
17007
- var Description$6 = /*#__PURE__*/styled__default.div.withConfig({
17085
+ var Description$7 = /*#__PURE__*/styled__default.div.withConfig({
17008
17086
  displayName: "Spell__Description",
17009
17087
  componentId: "sc-j96fa2-4"
17010
17088
  })(["font-size:", " !important;line-height:1.1 !important;"], uiFonts.size.small);
@@ -39792,7 +39870,7 @@ var StoreRedeemSection = function StoreRedeemSection(_ref) {
39792
39870
  onClick: handleReset
39793
39871
  }))));
39794
39872
  }
39795
- return React__default.createElement(Container$O, null, React__default.createElement(Title$p, null, "Redeem a Voucher Code"), React__default.createElement(Description$7, null, "Enter your voucher code below to receive Definya Coins."), React__default.createElement(InputRow, null, React__default.createElement(CodeInput, {
39873
+ return React__default.createElement(Container$O, null, React__default.createElement(Title$p, null, "Redeem a Voucher Code"), React__default.createElement(Description$8, null, "Enter your voucher code below to receive Definya Coins."), React__default.createElement(InputRow, null, React__default.createElement(CodeInput, {
39796
39874
  type: "text",
39797
39875
  value: code,
39798
39876
  onChange: function onChange(e) {
@@ -39823,7 +39901,7 @@ var Title$p = /*#__PURE__*/styled__default.h3.withConfig({
39823
39901
  displayName: "StoreRedeemSection__Title",
39824
39902
  componentId: "sc-1pzosml-1"
39825
39903
  })(["font-family:'Press Start 2P',cursive;font-size:0.85rem;color:", ";margin:0;text-align:center;"], uiColors.white);
39826
- var Description$7 = /*#__PURE__*/styled__default.p.withConfig({
39904
+ var Description$8 = /*#__PURE__*/styled__default.p.withConfig({
39827
39905
  displayName: "StoreRedeemSection__Description",
39828
39906
  componentId: "sc-1pzosml-2"
39829
39907
  })(["font-family:'Press Start 2P',cursive;font-size:0.55rem;color:", ";margin:0;text-align:center;line-height:1.6;"], uiColors.lightGray);
@@ -39889,7 +39967,7 @@ var StoreItemDetails = function StoreItemDetails(_ref) {
39889
39967
  alt: item.name
39890
39968
  })), React__default.createElement(ItemInfo$3, null, React__default.createElement(ItemName$9, null, item.name), React__default.createElement(ItemPrice$2, null, currencySymbol, 'priceUSD' in item ? item.priceUSD : (_item$regionalPrice = item.regionalPrice) != null ? _item$regionalPrice : item.price, item.dcPrice ? React__default.createElement(React__default.Fragment, null, ' ', "\xB7 ", React__default.createElement(MMORPGNumber, {
39891
39969
  value: item.dcPrice
39892
- }), " DC") : ''), React__default.createElement(Description$8, null, item.description))), React__default.createElement(Actions$1, null, React__default.createElement(CTAButton, {
39970
+ }), " DC") : ''), React__default.createElement(Description$9, null, item.description))), React__default.createElement(Actions$1, null, React__default.createElement(CTAButton, {
39893
39971
  icon: React__default.createElement(ShoppingCart.ShoppingCart, null),
39894
39972
  label: "Add to Cart",
39895
39973
  onClick: function onClick() {
@@ -39934,7 +40012,7 @@ var ItemPrice$2 = /*#__PURE__*/styled__default.div.withConfig({
39934
40012
  displayName: "StoreItemDetails__ItemPrice",
39935
40013
  componentId: "sc-k3ho5z-8"
39936
40014
  })(["font-family:'Press Start 2P',cursive;font-size:1rem;color:#fef08a;"]);
39937
- var Description$8 = /*#__PURE__*/styled__default.p.withConfig({
40015
+ var Description$9 = /*#__PURE__*/styled__default.p.withConfig({
39938
40016
  displayName: "StoreItemDetails__Description",
39939
40017
  componentId: "sc-k3ho5z-9"
39940
40018
  })(["margin:0;font-family:'Press Start 2P',cursive;font-size:0.875rem;line-height:1.6;color:#ffffff;"]);
@@ -40944,6 +41022,7 @@ exports.RadioCircle = RadioCircle$2;
40944
41022
  exports.RadioOption = RadioOption$1;
40945
41023
  exports.RadioOptionLabel = RadioOptionLabel;
40946
41024
  exports.RadioOptionSub = RadioOptionSub;
41025
+ exports.RadioSelectCard = RadioSelectCard;
40947
41026
  exports.RangeSlider = RangeSlider;
40948
41027
  exports.SelectArrow = SelectArrow;
40949
41028
  exports.Shortcuts = Shortcuts;