@rpg-engine/long-bow 0.6.37 → 0.6.39

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,5 @@
1
+ import React from 'react';
2
+ export declare const ZoomableImage: React.FC<{
3
+ src: string;
4
+ alt: string;
5
+ }>;
@@ -13,6 +13,9 @@ interface IStepperProps {
13
13
  };
14
14
  onError?: (message: string) => void;
15
15
  useSideArrows?: boolean;
16
+ styles?: {
17
+ stepperProgressColor?: string;
18
+ };
16
19
  }
17
20
  export declare const Stepper: React.FC<IStepperProps>;
18
21
  export {};
@@ -32739,7 +32739,8 @@ var Stepper = function Stepper(_ref) {
32739
32739
  finalCTAButton = _ref.finalCTAButton,
32740
32740
  onError = _ref.onError,
32741
32741
  _ref$useSideArrows = _ref.useSideArrows,
32742
- useSideArrows = _ref$useSideArrows === void 0 ? false : _ref$useSideArrows;
32742
+ useSideArrows = _ref$useSideArrows === void 0 ? false : _ref$useSideArrows,
32743
+ styles = _ref.styles;
32743
32744
  var _useState = React.useState(0),
32744
32745
  currentStep = _useState[0],
32745
32746
  setCurrentStep = _useState[1];
@@ -32822,6 +32823,7 @@ var Stepper = function Stepper(_ref) {
32822
32823
  return React__default.createElement(ProgressIndicator, {
32823
32824
  key: i,
32824
32825
  isActive: i <= currentStep,
32826
+ stepperProgressColor: styles == null ? void 0 : styles.stepperProgressColor,
32825
32827
  onClick: function onClick() {
32826
32828
  return onStepChange(i);
32827
32829
  }
@@ -32863,8 +32865,9 @@ var ProgressIndicator = /*#__PURE__*/styled__default.div.withConfig({
32863
32865
  displayName: "Stepper__ProgressIndicator",
32864
32866
  componentId: "sc-13obf1-6"
32865
32867
  })(["width:20px;height:20px;background-color:", ";margin:0 5px;transition:background-color 0.3s;opacity:", ";border:1px solid ", ";cursor:pointer;clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%);box-shadow:", ";border-radius:0;"], function (_ref3) {
32866
- var isActive = _ref3.isActive;
32867
- return isActive ? uiColors.orange : uiColors.lightGray;
32868
+ var isActive = _ref3.isActive,
32869
+ stepperProgressColor = _ref3.stepperProgressColor;
32870
+ return isActive ? stepperProgressColor || uiColors.orange : uiColors.lightGray;
32868
32871
  }, function (_ref4) {
32869
32872
  var isActive = _ref4.isActive;
32870
32873
  return isActive ? 1 : 0.25;
@@ -33221,6 +33224,52 @@ var Container$x = /*#__PURE__*/styled__default.div.withConfig({
33221
33224
  return props.maxLines;
33222
33225
  });
33223
33226
 
33227
+ var ZoomableImage = function ZoomableImage(_ref) {
33228
+ var src = _ref.src,
33229
+ alt = _ref.alt;
33230
+ var _useState = React.useState(false),
33231
+ isHovered = _useState[0],
33232
+ setIsHovered = _useState[1];
33233
+ var _useState2 = React.useState({
33234
+ x: 50,
33235
+ y: 50
33236
+ }),
33237
+ zoomPosition = _useState2[0],
33238
+ setZoomPosition = _useState2[1];
33239
+ var handleMouseMove = function handleMouseMove(e) {
33240
+ var _e$currentTarget$getB = e.currentTarget.getBoundingClientRect(),
33241
+ left = _e$currentTarget$getB.left,
33242
+ top = _e$currentTarget$getB.top,
33243
+ width = _e$currentTarget$getB.width,
33244
+ height = _e$currentTarget$getB.height;
33245
+ var x = (e.clientX - left) / width * 100;
33246
+ var y = (e.clientY - top) / height * 100;
33247
+ setZoomPosition({
33248
+ x: x,
33249
+ y: y
33250
+ });
33251
+ };
33252
+ return React__default.createElement("img", {
33253
+ src: src,
33254
+ alt: alt,
33255
+ onMouseMove: handleMouseMove,
33256
+ onMouseEnter: function onMouseEnter() {
33257
+ return setIsHovered(true);
33258
+ },
33259
+ onMouseLeave: function onMouseLeave() {
33260
+ return setIsHovered(false);
33261
+ },
33262
+ style: {
33263
+ width: '100%',
33264
+ height: '100%',
33265
+ objectFit: 'cover',
33266
+ transform: isHovered ? 'scale(1.5)' : 'scale(1)',
33267
+ transformOrigin: zoomPosition.x + "% " + zoomPosition.y + "%",
33268
+ transition: 'transform 0.3s ease'
33269
+ }
33270
+ });
33271
+ };
33272
+
33224
33273
  var TutorialStepper = /*#__PURE__*/React__default.memo(function (_ref) {
33225
33274
  var lessons = _ref.lessons,
33226
33275
  onLessonFinish = _ref.onLessonFinish,
@@ -33233,22 +33282,22 @@ var TutorialStepper = /*#__PURE__*/React__default.memo(function (_ref) {
33233
33282
  className: "lesson-container"
33234
33283
  }, React__default.createElement(LessonTitle, {
33235
33284
  className: "lesson-title"
33236
- }, lesson.title), lesson.image && React__default.createElement(LessonImage, {
33285
+ }, lesson.title), lesson.image && React__default.createElement(LessonImageWrapper, {
33286
+ className: "lesson-image-wrapper"
33287
+ }, React__default.createElement(LessonImage, {
33237
33288
  className: "lesson-image",
33238
33289
  style: imageStyle
33239
33290
  }, lesson.imageUrl ? React__default.createElement("a", {
33240
33291
  href: lesson.imageUrl,
33241
33292
  target: "_blank",
33242
33293
  rel: "noopener noreferrer"
33243
- }, React__default.createElement("img", {
33294
+ }, React__default.createElement(ZoomableImage, {
33244
33295
  src: lesson.image,
33245
- alt: lesson.title || 'Tutorial image',
33246
- loading: "lazy"
33247
- })) : React__default.createElement("img", {
33296
+ alt: lesson.title || 'Tutorial image'
33297
+ })) : React__default.createElement(ZoomableImage, {
33248
33298
  src: lesson.image,
33249
- alt: lesson.title || 'Tutorial image',
33250
- loading: "lazy"
33251
- })), React__default.createElement(LessonFooter, {
33299
+ alt: lesson.title || 'Tutorial image'
33300
+ }))), React__default.createElement(LessonFooter, {
33252
33301
  className: "lesson-footer"
33253
33302
  }, lesson.body && React__default.createElement(LessonBody, {
33254
33303
  className: "lesson-body",
@@ -33271,30 +33320,34 @@ var TutorialStepper = /*#__PURE__*/React__default.memo(function (_ref) {
33271
33320
  useSideArrows: true
33272
33321
  }));
33273
33322
  });
33323
+ var LessonImageWrapper = /*#__PURE__*/styled__default.div.withConfig({
33324
+ displayName: "TutorialStepper__LessonImageWrapper",
33325
+ componentId: "sc-7tgzv2-0"
33326
+ })(["width:100%;max-width:500px;margin:1rem auto;aspect-ratio:16 / 9;overflow:hidden;border-radius:10px;box-shadow:0 4px 6px rgba(0,0,0,0.1);"]);
33327
+ var LessonImage = /*#__PURE__*/styled__default.div.withConfig({
33328
+ displayName: "TutorialStepper__LessonImage",
33329
+ componentId: "sc-7tgzv2-1"
33330
+ })(["width:100%;height:100%;position:relative;"]);
33331
+ var LessonContainer = /*#__PURE__*/styled__default.div.withConfig({
33332
+ displayName: "TutorialStepper__LessonContainer",
33333
+ componentId: "sc-7tgzv2-2"
33334
+ })(["display:flex;flex-direction:column;justify-content:flex-start;min-height:200px;padding:1rem;padding-top:0;p{font-size:0.7rem !important;}"]);
33274
33335
  var LessonBody = /*#__PURE__*/styled__default.div.withConfig({
33275
33336
  displayName: "TutorialStepper__LessonBody",
33276
- componentId: "sc-7tgzv2-0"
33337
+ componentId: "sc-7tgzv2-3"
33277
33338
  })([""]);
33278
33339
  var Container$y = /*#__PURE__*/styled__default.div.withConfig({
33279
33340
  displayName: "TutorialStepper__Container",
33280
- componentId: "sc-7tgzv2-1"
33341
+ componentId: "sc-7tgzv2-4"
33281
33342
  })(["width:80%;max-width:600px;@media (max-width:600px){width:95%;}"]);
33282
33343
  var LessonFooter = /*#__PURE__*/styled__default.div.withConfig({
33283
33344
  displayName: "TutorialStepper__LessonFooter",
33284
- componentId: "sc-7tgzv2-2"
33345
+ componentId: "sc-7tgzv2-5"
33285
33346
  })(["margin-top:1rem;"]);
33286
- var LessonImage = /*#__PURE__*/styled__default.div.withConfig({
33287
- displayName: "TutorialStepper__LessonImage",
33288
- componentId: "sc-7tgzv2-3"
33289
- })(["display:flex;justify-content:center;align-items:center;width:100%;height:auto;max-width:500px;margin:auto;img{max-width:100%;max-height:100%;object-fit:contain;border-radius:10px;}"]);
33290
33347
  var LessonTitle = /*#__PURE__*/styled__default.h1.withConfig({
33291
33348
  displayName: "TutorialStepper__LessonTitle",
33292
- componentId: "sc-7tgzv2-4"
33349
+ componentId: "sc-7tgzv2-6"
33293
33350
  })(["color:", " !important;font-size:0.8rem !important;"], uiColors.yellow);
33294
- var LessonContainer = /*#__PURE__*/styled__default.div.withConfig({
33295
- displayName: "TutorialStepper__LessonContainer",
33296
- componentId: "sc-7tgzv2-5"
33297
- })(["display:flex;flex-direction:column;justify-content:space-between;min-height:200px;"]);
33298
33351
 
33299
33352
  exports.AsyncDropdown = AsyncDropdown;
33300
33353
  exports.Button = Button;