@prototyp/skeletor 1.1.4 → 1.1.6

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.
@@ -41,6 +41,7 @@ const InputFocusScrollView = ({
41
41
  const scrollTarget = (0, _react.useRef)(null);
42
42
  const elementOffset = (0, _react.useRef)(0);
43
43
  const contentHeight = (0, _react.useRef)(0);
44
+ const containerHeight = (0, _react.useRef)(0);
44
45
  /** Cached scroll position to keep focus on input if layout shifts. */
45
46
  const scrollPosition = (0, _react.useRef)(0);
46
47
  const focusOffset = (0, _react.useRef)(0);
@@ -57,21 +58,21 @@ const InputFocusScrollView = ({
57
58
  ref.current?.scrollTo({
58
59
  y: scrollY
59
60
  });
60
- }, () => console.error("failed to measure layout"));
61
+ }, () => console.warn("failed to measure layout"));
61
62
  }
62
63
  (0, _react.useEffect)(() => {
63
64
  const listener = _reactNative.Keyboard.addListener("keyboardWillHide", () => {
64
- const keyboardHeight = _reactNative.Keyboard.metrics()?.height || 0;
65
65
  if (scrollPosition.current < 0) ref.current?.scrollTo({
66
66
  y: 0
67
67
  });else {
68
- const leftoverSpace = contentHeight.current - elementOffset.current;
69
- // If we haven't reached scroll view overflow yet, do nothing
70
- if (leftoverSpace < keyboardHeight) ref.current?.scrollToEnd();
68
+ const remainingSpace = contentHeight.current - scrollPosition.current;
69
+ if (remainingSpace < containerHeight.current) {
70
+ ref.current?.scrollToEnd();
71
+ }
71
72
  }
72
73
  });
73
74
  return listener.remove;
74
- });
75
+ }, []);
75
76
  const gapProps = (0, _react.useMemo)(() => (0, _index.extractGapProperties)({
76
77
  gap
77
78
  }), [gap]);
@@ -84,9 +85,11 @@ const InputFocusScrollView = ({
84
85
  scrollToOverflowEnabled: true,
85
86
  scrollEventThrottle: 33,
86
87
  onLayout: ({
87
- currentTarget
88
+ currentTarget,
89
+ nativeEvent
88
90
  }) => {
89
91
  scrollTarget.current = currentTarget;
92
+ containerHeight.current = nativeEvent.layout.height;
90
93
  },
91
94
  onContentSizeChange: (_, height) => {
92
95
  contentHeight.current = height;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_index","_jsxRuntime","InputFocusScrollView","children","style","contentContainerStyle","height","focusPositionOffset","margins","paddings","gap","showsVerticalScrollIndicator","showsHorizontalScrollIndicator","bounces","rest","ref","useRef","scrollTarget","elementOffset","contentHeight","scrollPosition","focusOffset","onInputFocus","e","Platform","OS","current","currentTarget","measureLayout","_nope","top","_nuuh","elementHeight","undefined","Dimensions","get","scrollY","scrollTo","y","console","error","useEffect","listener","Keyboard","addListener","keyboardHeight","metrics","leftoverSpace","scrollToEnd","remove","gapProps","useMemo","extractGapProperties","normalizedMargins","normalizeMarginValues","normalizedPaddings","normalizePaddingValues","containerStyles","StyleSheet","flatten","styles","contentStyles","content","jsx","ScrollView","scrollToOverflowEnabled","scrollEventThrottle","onLayout","onContentSizeChange","_","exports","create","full","auto","flexGrow"],"sourceRoot":"../../../../src","sources":["components/InputFocusScrollView/InputFocusScrollView.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_index","_jsxRuntime","InputFocusScrollView","children","style","contentContainerStyle","height","focusPositionOffset","margins","paddings","gap","showsVerticalScrollIndicator","showsHorizontalScrollIndicator","bounces","rest","ref","useRef","scrollTarget","elementOffset","contentHeight","containerHeight","scrollPosition","focusOffset","onInputFocus","e","Platform","OS","current","currentTarget","measureLayout","_nope","top","_nuuh","elementHeight","undefined","Dimensions","get","scrollY","scrollTo","y","console","warn","useEffect","listener","Keyboard","addListener","remainingSpace","scrollToEnd","remove","gapProps","useMemo","extractGapProperties","normalizedMargins","normalizeMarginValues","normalizedPaddings","normalizePaddingValues","containerStyles","StyleSheet","flatten","styles","contentStyles","content","jsx","ScrollView","scrollToOverflowEnabled","scrollEventThrottle","onLayout","nativeEvent","layout","onContentSizeChange","_","exports","create","full","auto","flexGrow"],"sourceRoot":"../../../../src","sources":["components/InputFocusScrollView/InputFocusScrollView.tsx"],"mappings":"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","ignoreList":[]}
@@ -22,6 +22,7 @@ const Screen = ({
22
22
  paddings,
23
23
  ...blockProps
24
24
  }) => {
25
+ const insets = (0, _reactNativeSafeAreaContext.useSafeAreaInsets)();
25
26
  const {
26
27
  defaultStatusBarType,
27
28
  defaultStatusBarBackground,
@@ -39,19 +40,15 @@ const Screen = ({
39
40
  translucent: statusBarTranslucent || defaultStatusBarTranslucent || false,
40
41
  barStyle: statusBarType || defaultStatusBarType,
41
42
  backgroundColor: statusBarBackground || defaultStatusBarBackground || "transparent"
42
- }), !hideTopSafeArea && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSafeAreaContext.SafeAreaView, {
43
- style: {
44
- backgroundColor: topSafeAreaColor
45
- }
43
+ }), !hideTopSafeArea && /*#__PURE__*/(0, _jsxRuntime.jsx)(_index2.Block, {
44
+ height: insets.top
46
45
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_index2.Block, {
47
46
  flex: 1,
48
47
  paddings: paddings,
49
48
  ...blockProps,
50
49
  children: children
51
- }), !hideBottomSafeArea && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSafeAreaContext.SafeAreaView, {
52
- style: {
53
- backgroundColor: bottomSafeAreaColor
54
- }
50
+ }), !hideBottomSafeArea && /*#__PURE__*/(0, _jsxRuntime.jsx)(_index2.Block, {
51
+ height: insets.bottom
55
52
  })]
56
53
  });
57
54
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_reactNativeSafeAreaContext","_index","_index2","_jsxRuntime","Screen","background","children","hideBottomSafeArea","hideTopSafeArea","bottomSafeAreaColor","topSafeAreaColor","statusBarType","statusBarBackground","statusBarTranslucent","paddings","blockProps","defaultStatusBarType","defaultStatusBarBackground","defaultStatusBarTranslucent","useSkeletor","jsxs","Fragment","jsx","Block","style","StyleSheet","absoluteFill","backgroundColor","StatusBar","translucent","barStyle","SafeAreaView","flex","exports"],"sourceRoot":"../../../../src","sources":["components/Screen/Screen.tsx"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAOA,IAAAC,2BAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAAkD,IAAAI,WAAA,GAAAJ,OAAA;AAiB3C,MAAMK,MAAgD,GAAGA,CAAC;EAChEC,UAAU;EACVC,QAAQ;EACRC,kBAAkB;EAClBC,eAAe;EACfC,mBAAmB;EACnBC,gBAAgB;EAChBC,aAAa;EACbC,mBAAmB;EACnBC,oBAAoB;EACpBC,QAAQ;EACR,GAAGC;AACJ,CAAC,KAAK;EACL,MAAM;IACLC,oBAAoB;IACpBC,0BAA0B;IAC1BC;EACD,CAAC,GAAG,IAAAC,kBAAW,EAAC,CAAC;EAEjB,oBACC,IAAAhB,WAAA,CAAAiB,IAAA,EAAAjB,WAAA,CAAAkB,QAAA;IAAAf,QAAA,GACED,UAAU,KACT,OAAOA,UAAU,KAAK,QAAQ,gBAC9B,IAAAF,WAAA,CAAAmB,GAAA,EAACpB,OAAA,CAAAqB,KAAK;MACLC,KAAK,EAAE,CAACC,uBAAU,CAACC,YAAY,EAAE;QAAEC,eAAe,EAAEtB;MAAW,CAAC;IAAE,CAClE,CAAC,gBAEF,IAAAF,WAAA,CAAAmB,GAAA,EAACpB,OAAA,CAAAqB,KAAK;MAACC,KAAK,EAAEC,uBAAU,CAACC,YAAa;MAAApB,QAAA,EAAED;IAAU,CAAQ,CAC1D,CAAC,eAEH,IAAAF,WAAA,CAAAmB,GAAA,EAACxB,YAAA,CAAA8B,SAAS;MACTC,WAAW,EACVhB,oBAAoB,IAAIK,2BAA2B,IAAI,KACvD;MACDY,QAAQ,EAAEnB,aAAa,IAAIK,oBAAqB;MAChDW,eAAe,EACdf,mBAAmB,IAAIK,0BAA0B,IAAI;IACrD,CACD,CAAC,EAED,CAACT,eAAe,iBAChB,IAAAL,WAAA,CAAAmB,GAAA,EAACtB,2BAAA,CAAA+B,YAAY;MAACP,KAAK,EAAE;QAAEG,eAAe,EAAEjB;MAAiB;IAAE,CAAE,CAC7D,eAED,IAAAP,WAAA,CAAAmB,GAAA,EAACpB,OAAA,CAAAqB,KAAK;MAACS,IAAI,EAAE,CAAE;MAAClB,QAAQ,EAAEA,QAAS;MAAA,GAAKC,UAAU;MAAAT,QAAA,EAChDA;IAAQ,CACH,CAAC,EAEP,CAACC,kBAAkB,iBACnB,IAAAJ,WAAA,CAAAmB,GAAA,EAACtB,2BAAA,CAAA+B,YAAY;MACZP,KAAK,EAAE;QACNG,eAAe,EAAElB;MAClB;IAAE,CACF,CACD;EAAA,CACA,CAAC;AAEL,CAAC;AAACwB,OAAA,CAAA7B,MAAA,GAAAA,MAAA","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_reactNativeSafeAreaContext","_index","_index2","_jsxRuntime","Screen","background","children","hideBottomSafeArea","hideTopSafeArea","bottomSafeAreaColor","topSafeAreaColor","statusBarType","statusBarBackground","statusBarTranslucent","paddings","blockProps","insets","useSafeAreaInsets","defaultStatusBarType","defaultStatusBarBackground","defaultStatusBarTranslucent","useSkeletor","jsxs","Fragment","jsx","Block","style","StyleSheet","absoluteFill","backgroundColor","StatusBar","translucent","barStyle","height","top","flex","bottom","exports"],"sourceRoot":"../../../../src","sources":["components/Screen/Screen.tsx"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAOA,IAAAC,2BAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAAkD,IAAAI,WAAA,GAAAJ,OAAA;AAiB3C,MAAMK,MAAgD,GAAGA,CAAC;EAChEC,UAAU;EACVC,QAAQ;EACRC,kBAAkB;EAClBC,eAAe;EACfC,mBAAmB;EACnBC,gBAAgB;EAChBC,aAAa;EACbC,mBAAmB;EACnBC,oBAAoB;EACpBC,QAAQ;EACR,GAAGC;AACJ,CAAC,KAAK;EACL,MAAMC,MAAM,GAAG,IAAAC,6CAAiB,EAAC,CAAC;EAClC,MAAM;IACLC,oBAAoB;IACpBC,0BAA0B;IAC1BC;EACD,CAAC,GAAG,IAAAC,kBAAW,EAAC,CAAC;EAEjB,oBACC,IAAAlB,WAAA,CAAAmB,IAAA,EAAAnB,WAAA,CAAAoB,QAAA;IAAAjB,QAAA,GACED,UAAU,KACT,OAAOA,UAAU,KAAK,QAAQ,gBAC9B,IAAAF,WAAA,CAAAqB,GAAA,EAACtB,OAAA,CAAAuB,KAAK;MACLC,KAAK,EAAE,CAACC,uBAAU,CAACC,YAAY,EAAE;QAAEC,eAAe,EAAExB;MAAW,CAAC;IAAE,CAClE,CAAC,gBAEF,IAAAF,WAAA,CAAAqB,GAAA,EAACtB,OAAA,CAAAuB,KAAK;MAACC,KAAK,EAAEC,uBAAU,CAACC,YAAa;MAAAtB,QAAA,EAAED;IAAU,CAAQ,CAC1D,CAAC,eAEH,IAAAF,WAAA,CAAAqB,GAAA,EAAC1B,YAAA,CAAAgC,SAAS;MACTC,WAAW,EACVlB,oBAAoB,IAAIO,2BAA2B,IAAI,KACvD;MACDY,QAAQ,EAAErB,aAAa,IAAIO,oBAAqB;MAChDW,eAAe,EACdjB,mBAAmB,IAAIO,0BAA0B,IAAI;IACrD,CACD,CAAC,EAED,CAACX,eAAe,iBAAI,IAAAL,WAAA,CAAAqB,GAAA,EAACtB,OAAA,CAAAuB,KAAK;MAACQ,MAAM,EAAEjB,MAAM,CAACkB;IAAI,CAAE,CAAC,eAElD,IAAA/B,WAAA,CAAAqB,GAAA,EAACtB,OAAA,CAAAuB,KAAK;MAACU,IAAI,EAAE,CAAE;MAACrB,QAAQ,EAAEA,QAAS;MAAA,GAAKC,UAAU;MAAAT,QAAA,EAChDA;IAAQ,CACH,CAAC,EAEP,CAACC,kBAAkB,iBAAI,IAAAJ,WAAA,CAAAqB,GAAA,EAACtB,OAAA,CAAAuB,KAAK;MAACQ,MAAM,EAAEjB,MAAM,CAACoB;IAAO,CAAE,CAAC;EAAA,CACvD,CAAC;AAEL,CAAC;AAACC,OAAA,CAAAjC,MAAA,GAAAA,MAAA","ignoreList":[]}
@@ -37,6 +37,7 @@ export const InputFocusScrollView = ({
37
37
  const scrollTarget = useRef(null);
38
38
  const elementOffset = useRef(0);
39
39
  const contentHeight = useRef(0);
40
+ const containerHeight = useRef(0);
40
41
  /** Cached scroll position to keep focus on input if layout shifts. */
41
42
  const scrollPosition = useRef(0);
42
43
  const focusOffset = useRef(0);
@@ -53,21 +54,21 @@ export const InputFocusScrollView = ({
53
54
  ref.current?.scrollTo({
54
55
  y: scrollY
55
56
  });
56
- }, () => console.error("failed to measure layout"));
57
+ }, () => console.warn("failed to measure layout"));
57
58
  }
58
59
  useEffect(() => {
59
60
  const listener = Keyboard.addListener("keyboardWillHide", () => {
60
- const keyboardHeight = Keyboard.metrics()?.height || 0;
61
61
  if (scrollPosition.current < 0) ref.current?.scrollTo({
62
62
  y: 0
63
63
  });else {
64
- const leftoverSpace = contentHeight.current - elementOffset.current;
65
- // If we haven't reached scroll view overflow yet, do nothing
66
- if (leftoverSpace < keyboardHeight) ref.current?.scrollToEnd();
64
+ const remainingSpace = contentHeight.current - scrollPosition.current;
65
+ if (remainingSpace < containerHeight.current) {
66
+ ref.current?.scrollToEnd();
67
+ }
67
68
  }
68
69
  });
69
70
  return listener.remove;
70
- });
71
+ }, []);
71
72
  const gapProps = useMemo(() => extractGapProperties({
72
73
  gap
73
74
  }), [gap]);
@@ -80,9 +81,11 @@ export const InputFocusScrollView = ({
80
81
  scrollToOverflowEnabled: true,
81
82
  scrollEventThrottle: 33,
82
83
  onLayout: ({
83
- currentTarget
84
+ currentTarget,
85
+ nativeEvent
84
86
  }) => {
85
87
  scrollTarget.current = currentTarget;
88
+ containerHeight.current = nativeEvent.layout.height;
86
89
  },
87
90
  onContentSizeChange: (_, height) => {
88
91
  contentHeight.current = height;
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useMemo","useRef","Dimensions","Keyboard","Platform","ScrollView","StyleSheet","extractGapProperties","normalizeMarginValues","normalizePaddingValues","jsx","_jsx","InputFocusScrollView","children","style","contentContainerStyle","height","focusPositionOffset","margins","paddings","gap","showsVerticalScrollIndicator","showsHorizontalScrollIndicator","bounces","rest","ref","scrollTarget","elementOffset","contentHeight","scrollPosition","focusOffset","onInputFocus","e","OS","current","currentTarget","measureLayout","_nope","top","_nuuh","elementHeight","undefined","get","scrollY","scrollTo","y","console","error","listener","addListener","keyboardHeight","metrics","leftoverSpace","scrollToEnd","remove","gapProps","normalizedMargins","normalizedPaddings","containerStyles","flatten","styles","contentStyles","content","scrollToOverflowEnabled","scrollEventThrottle","onLayout","onContentSizeChange","_","create","full","auto","flexGrow"],"sourceRoot":"../../../../src","sources":["components/InputFocusScrollView/InputFocusScrollView.tsx"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AAClD,SACCC,UAAU,EACVC,QAAQ,EAGRC,QAAQ,EACRC,UAAU,EAEVC,UAAU,QAEJ,cAAc;AAGrB,SACCC,oBAAoB,EACpBC,qBAAqB,EACrBC,sBAAsB,QAChB,sBAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAcrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,oBAAyD,GAAGA,CAAC;EACzEC,QAAQ;EACRC,KAAK;EACLC,qBAAqB;EACrBC,MAAM,GAAG,MAAM;EACfC,mBAAmB,GAAG,GAAG;EACzBC,OAAO;EACPC,QAAQ;EACRC,GAAG;EACHC,4BAA4B,GAAG,KAAK;EACpCC,8BAA8B,GAAG,KAAK;EACtCC,OAAO,GAAG,KAAK;EACf,GAAGC;AACJ,CAAC,KAAK;EACL,MAAMC,GAAG,GAAGxB,MAAM,CAAa,IAAI,CAAC;EACpC,MAAMyB,YAAY,GAAGzB,MAAM,CAAgB,IAAI,CAAC;EAEhD,MAAM0B,aAAa,GAAG1B,MAAM,CAAC,CAAC,CAAC;EAC/B,MAAM2B,aAAa,GAAG3B,MAAM,CAAC,CAAC,CAAC;EAC/B;EACA,MAAM4B,cAAc,GAAG5B,MAAM,CAAC,CAAC,CAAC;EAChC,MAAM6B,WAAW,GAAG7B,MAAM,CAAC,CAAC,CAAC;EAE7B,SAAS8B,YAAYA,CAACC,CAAsC,EAAE;IAC7D,IAAI5B,QAAQ,CAAC6B,EAAE,KAAK,KAAK,IAAI,CAACP,YAAY,CAACQ,OAAO,EAAE;MACnD;IACD;IAEAF,CAAC,CAACG,aAAa,CAACC,aAAa,CAC5BV,YAAY,CAACQ,OAAO,EACpB,CAACG,KAAK,EAAEC,GAAG,EAAEC,KAAK,EAAEC,aAAa,KAAK;MACrCV,WAAW,CAACI,OAAO,GAClBjB,mBAAmB,KAAKwB,SAAS,GAC9BvC,UAAU,CAACwC,GAAG,CAAC,QAAQ,CAAC,CAAC1B,MAAM,GAAGC,mBAAmB,GACrD,CAAC;MACL;MACAU,aAAa,CAACO,OAAO,GAAGI,GAAG,GAAGE,aAAa;MAC3C,MAAMG,OAAO,GAAGhB,aAAa,CAACO,OAAO,GAAGJ,WAAW,CAACI,OAAO;MAC3DL,cAAc,CAACK,OAAO,GAAGS,OAAO;MAChClB,GAAG,CAACS,OAAO,EAAEU,QAAQ,CAAC;QAAEC,CAAC,EAAEF;MAAQ,CAAC,CAAC;IACtC,CAAC,EACD,MAAMG,OAAO,CAACC,KAAK,CAAC,0BAA0B,CAC/C,CAAC;EACF;EAEAhD,SAAS,CAAC,MAAM;IACf,MAAMiD,QAAQ,GAAG7C,QAAQ,CAAC8C,WAAW,CAAC,kBAAkB,EAAE,MAAM;MAC/D,MAAMC,cAAc,GAAG/C,QAAQ,CAACgD,OAAO,CAAC,CAAC,EAAEnC,MAAM,IAAI,CAAC;MACtD,IAAIa,cAAc,CAACK,OAAO,GAAG,CAAC,EAAET,GAAG,CAACS,OAAO,EAAEU,QAAQ,CAAC;QAAEC,CAAC,EAAE;MAAE,CAAC,CAAC,CAAC,KAC3D;QACJ,MAAMO,aAAa,GAAGxB,aAAa,CAACM,OAAO,GAAGP,aAAa,CAACO,OAAO;QACnE;QACA,IAAIkB,aAAa,GAAGF,cAAc,EAAEzB,GAAG,CAACS,OAAO,EAAEmB,WAAW,CAAC,CAAC;MAC/D;IACD,CAAC,CAAC;IAEF,OAAOL,QAAQ,CAACM,MAAM;EACvB,CAAC,CAAC;EAEF,MAAMC,QAAQ,GAAGvD,OAAO,CAAC,MAAMO,oBAAoB,CAAC;IAAEa;EAAI,CAAC,CAAC,EAAE,CAACA,GAAG,CAAC,CAAC;EACpE,MAAMoC,iBAAiB,GAAGxD,OAAO,CAChC,MAAMQ,qBAAqB,CAACU,OAAO,CAAC,EACpC,CAACA,OAAO,CACT,CAAC;EACD,MAAMuC,kBAAkB,GAAGzD,OAAO,CACjC,MAAMS,sBAAsB,CAACU,QAAQ,CAAC,EACtC,CAACA,QAAQ,CACV,CAAC;EAED,MAAMuC,eAAe,GAAGpD,UAAU,CAACqD,OAAO,CAAC,CAC1CC,MAAM,CAAC5C,MAAM,CAAC,EACdwC,iBAAiB,EACjB1C,KAAK,CACL,CAAC;EAEF,MAAM+C,aAAa,GAAGvD,UAAU,CAACqD,OAAO,CAAC,CACxCC,MAAM,CAACE,OAAO,EACdL,kBAAkB,EAClBF,QAAQ,EACRxC,qBAAqB,CACrB,CAAC;EAEF,oBACCJ,IAAA,CAACN,UAAU;IACVoB,GAAG,EAAEA,GAAI;IACTsC,uBAAuB;IACvBC,mBAAmB,EAAE,EAAG;IACxBC,QAAQ,EAAEA,CAAC;MAAE9B;IAAc,CAAC,KAAK;MAChCT,YAAY,CAACQ,OAAO,GAAGC,aAAa;IACrC,CAAE;IACF+B,mBAAmB,EAAEA,CAACC,CAAC,EAAEnD,MAAM,KAAK;MACnCY,aAAa,CAACM,OAAO,GAAGlB,MAAM;IAC/B,CAAE;IACFK,4BAA4B,EAAEA,4BAA6B;IAC3DC,8BAA8B,EAAEA,8BAA+B;IAC/DC,OAAO,EAAEA,OAAQ;IACjBT,KAAK,EAAE4C,eAAgB;IACvB3C,qBAAqB,EAAE8C,aAAc;IAAA,GACjCrC,IAAI;IAAAX,QAAA,EAEPA,QAAQ,CAACkB,YAAY;EAAC,CACZ,CAAC;AAEf,CAAC;AAED,MAAM6B,MAAM,GAAGtD,UAAU,CAAC8D,MAAM,CAAC;EAChCC,IAAI,EAAE;IAAErD,MAAM,EAAE;EAAO,CAAC;EACxBsD,IAAI,EAAE;IAAEtD,MAAM,EAAE;EAAO,CAAC;EACxB8C,OAAO,EAAE;IAAES,QAAQ,EAAE;EAAE;AACxB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useMemo","useRef","Dimensions","Keyboard","Platform","ScrollView","StyleSheet","extractGapProperties","normalizeMarginValues","normalizePaddingValues","jsx","_jsx","InputFocusScrollView","children","style","contentContainerStyle","height","focusPositionOffset","margins","paddings","gap","showsVerticalScrollIndicator","showsHorizontalScrollIndicator","bounces","rest","ref","scrollTarget","elementOffset","contentHeight","containerHeight","scrollPosition","focusOffset","onInputFocus","e","OS","current","currentTarget","measureLayout","_nope","top","_nuuh","elementHeight","undefined","get","scrollY","scrollTo","y","console","warn","listener","addListener","remainingSpace","scrollToEnd","remove","gapProps","normalizedMargins","normalizedPaddings","containerStyles","flatten","styles","contentStyles","content","scrollToOverflowEnabled","scrollEventThrottle","onLayout","nativeEvent","layout","onContentSizeChange","_","create","full","auto","flexGrow"],"sourceRoot":"../../../../src","sources":["components/InputFocusScrollView/InputFocusScrollView.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { StatusBar, StyleSheet } from "react-native";
4
- import { SafeAreaView } from "react-native-safe-area-context";
4
+ import { useSafeAreaInsets } from "react-native-safe-area-context";
5
5
  import { useSkeletor } from "../../hooks/index.js";
6
6
  import { Block } from "../Block/index.js";
7
7
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
@@ -18,6 +18,7 @@ export const Screen = ({
18
18
  paddings,
19
19
  ...blockProps
20
20
  }) => {
21
+ const insets = useSafeAreaInsets();
21
22
  const {
22
23
  defaultStatusBarType,
23
24
  defaultStatusBarBackground,
@@ -35,19 +36,15 @@ export const Screen = ({
35
36
  translucent: statusBarTranslucent || defaultStatusBarTranslucent || false,
36
37
  barStyle: statusBarType || defaultStatusBarType,
37
38
  backgroundColor: statusBarBackground || defaultStatusBarBackground || "transparent"
38
- }), !hideTopSafeArea && /*#__PURE__*/_jsx(SafeAreaView, {
39
- style: {
40
- backgroundColor: topSafeAreaColor
41
- }
39
+ }), !hideTopSafeArea && /*#__PURE__*/_jsx(Block, {
40
+ height: insets.top
42
41
  }), /*#__PURE__*/_jsx(Block, {
43
42
  flex: 1,
44
43
  paddings: paddings,
45
44
  ...blockProps,
46
45
  children: children
47
- }), !hideBottomSafeArea && /*#__PURE__*/_jsx(SafeAreaView, {
48
- style: {
49
- backgroundColor: bottomSafeAreaColor
50
- }
46
+ }), !hideBottomSafeArea && /*#__PURE__*/_jsx(Block, {
47
+ height: insets.bottom
51
48
  })]
52
49
  });
53
50
  };
@@ -1 +1 @@
1
- {"version":3,"names":["StatusBar","StyleSheet","SafeAreaView","useSkeletor","Block","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","Screen","background","children","hideBottomSafeArea","hideTopSafeArea","bottomSafeAreaColor","topSafeAreaColor","statusBarType","statusBarBackground","statusBarTranslucent","paddings","blockProps","defaultStatusBarType","defaultStatusBarBackground","defaultStatusBarTranslucent","style","absoluteFill","backgroundColor","translucent","barStyle","flex"],"sourceRoot":"../../../../src","sources":["components/Screen/Screen.tsx"],"mappings":";;AACA,SAECA,SAAS,EAGTC,UAAU,QACJ,cAAc;AACrB,SAASC,YAAY,QAAQ,gCAAgC;AAC7D,SAASC,WAAW,QAAQ,sBAAa;AACzC,SAASC,KAAK,QAAyB,mBAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAiBlD,OAAO,MAAMC,MAAgD,GAAGA,CAAC;EAChEC,UAAU;EACVC,QAAQ;EACRC,kBAAkB;EAClBC,eAAe;EACfC,mBAAmB;EACnBC,gBAAgB;EAChBC,aAAa;EACbC,mBAAmB;EACnBC,oBAAoB;EACpBC,QAAQ;EACR,GAAGC;AACJ,CAAC,KAAK;EACL,MAAM;IACLC,oBAAoB;IACpBC,0BAA0B;IAC1BC;EACD,CAAC,GAAGtB,WAAW,CAAC,CAAC;EAEjB,oBACCO,KAAA,CAAAF,SAAA;IAAAK,QAAA,GACED,UAAU,KACT,OAAOA,UAAU,KAAK,QAAQ,gBAC9BN,IAAA,CAACF,KAAK;MACLsB,KAAK,EAAE,CAACzB,UAAU,CAAC0B,YAAY,EAAE;QAAEC,eAAe,EAAEhB;MAAW,CAAC;IAAE,CAClE,CAAC,gBAEFN,IAAA,CAACF,KAAK;MAACsB,KAAK,EAAEzB,UAAU,CAAC0B,YAAa;MAAAd,QAAA,EAAED;IAAU,CAAQ,CAC1D,CAAC,eAEHN,IAAA,CAACN,SAAS;MACT6B,WAAW,EACVT,oBAAoB,IAAIK,2BAA2B,IAAI,KACvD;MACDK,QAAQ,EAAEZ,aAAa,IAAIK,oBAAqB;MAChDK,eAAe,EACdT,mBAAmB,IAAIK,0BAA0B,IAAI;IACrD,CACD,CAAC,EAED,CAACT,eAAe,iBAChBT,IAAA,CAACJ,YAAY;MAACwB,KAAK,EAAE;QAAEE,eAAe,EAAEX;MAAiB;IAAE,CAAE,CAC7D,eAEDX,IAAA,CAACF,KAAK;MAAC2B,IAAI,EAAE,CAAE;MAACV,QAAQ,EAAEA,QAAS;MAAA,GAAKC,UAAU;MAAAT,QAAA,EAChDA;IAAQ,CACH,CAAC,EAEP,CAACC,kBAAkB,iBACnBR,IAAA,CAACJ,YAAY;MACZwB,KAAK,EAAE;QACNE,eAAe,EAAEZ;MAClB;IAAE,CACF,CACD;EAAA,CACA,CAAC;AAEL,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["StatusBar","StyleSheet","useSafeAreaInsets","useSkeletor","Block","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","Screen","background","children","hideBottomSafeArea","hideTopSafeArea","bottomSafeAreaColor","topSafeAreaColor","statusBarType","statusBarBackground","statusBarTranslucent","paddings","blockProps","insets","defaultStatusBarType","defaultStatusBarBackground","defaultStatusBarTranslucent","style","absoluteFill","backgroundColor","translucent","barStyle","height","top","flex","bottom"],"sourceRoot":"../../../../src","sources":["components/Screen/Screen.tsx"],"mappings":";;AACA,SAECA,SAAS,EAGTC,UAAU,QACJ,cAAc;AACrB,SAASC,iBAAiB,QAAQ,gCAAgC;AAClE,SAASC,WAAW,QAAQ,sBAAa;AACzC,SAASC,KAAK,QAAyB,mBAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAiBlD,OAAO,MAAMC,MAAgD,GAAGA,CAAC;EAChEC,UAAU;EACVC,QAAQ;EACRC,kBAAkB;EAClBC,eAAe;EACfC,mBAAmB;EACnBC,gBAAgB;EAChBC,aAAa;EACbC,mBAAmB;EACnBC,oBAAoB;EACpBC,QAAQ;EACR,GAAGC;AACJ,CAAC,KAAK;EACL,MAAMC,MAAM,GAAGrB,iBAAiB,CAAC,CAAC;EAClC,MAAM;IACLsB,oBAAoB;IACpBC,0BAA0B;IAC1BC;EACD,CAAC,GAAGvB,WAAW,CAAC,CAAC;EAEjB,oBACCO,KAAA,CAAAF,SAAA;IAAAK,QAAA,GACED,UAAU,KACT,OAAOA,UAAU,KAAK,QAAQ,gBAC9BN,IAAA,CAACF,KAAK;MACLuB,KAAK,EAAE,CAAC1B,UAAU,CAAC2B,YAAY,EAAE;QAAEC,eAAe,EAAEjB;MAAW,CAAC;IAAE,CAClE,CAAC,gBAEFN,IAAA,CAACF,KAAK;MAACuB,KAAK,EAAE1B,UAAU,CAAC2B,YAAa;MAAAf,QAAA,EAAED;IAAU,CAAQ,CAC1D,CAAC,eAEHN,IAAA,CAACN,SAAS;MACT8B,WAAW,EACVV,oBAAoB,IAAIM,2BAA2B,IAAI,KACvD;MACDK,QAAQ,EAAEb,aAAa,IAAIM,oBAAqB;MAChDK,eAAe,EACdV,mBAAmB,IAAIM,0BAA0B,IAAI;IACrD,CACD,CAAC,EAED,CAACV,eAAe,iBAAIT,IAAA,CAACF,KAAK;MAAC4B,MAAM,EAAET,MAAM,CAACU;IAAI,CAAE,CAAC,eAElD3B,IAAA,CAACF,KAAK;MAAC8B,IAAI,EAAE,CAAE;MAACb,QAAQ,EAAEA,QAAS;MAAA,GAAKC,UAAU;MAAAT,QAAA,EAChDA;IAAQ,CACH,CAAC,EAEP,CAACC,kBAAkB,iBAAIR,IAAA,CAACF,KAAK;MAAC4B,MAAM,EAAET,MAAM,CAACY;IAAO,CAAE,CAAC;EAAA,CACvD,CAAC;AAEL,CAAC","ignoreList":[]}
@@ -3,7 +3,6 @@ import type { Spacing } from "../../models";
3
3
  export interface InputFocusScrollViewProps extends Omit<ScrollViewProps, "children">, Spacing {
4
4
  /** Percentage of screen to add to element position. Values between 0 and 1. Use this if you want to position the input focus somewhere other than the top of the screen. Defaults to 0.3 */
5
5
  focusPositionOffset?: number;
6
- offsetFromKeyboard?: number;
7
6
  height?: "full" | "auto";
8
7
  children: (onInputFocus: (e: NativeSyntheticEvent<TargetedEvent>) => void) => React.ReactNode;
9
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"InputFocusScrollView.d.ts","sourceRoot":"","sources":["../../../../../src/components/InputFocusScrollView/InputFocusScrollView.tsx"],"names":[],"mappings":"AACA,OAAO,EAIN,KAAK,oBAAoB,EAGzB,KAAK,eAAe,EAEpB,KAAK,aAAa,EAClB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAO5C,MAAM,WAAW,yBAChB,SAAQ,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,EACxC,OAAO;IACR,4LAA4L;IAC5L,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,QAAQ,EAAE,CACT,YAAY,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,aAAa,CAAC,KAAK,IAAI,KAC1D,KAAK,CAAC,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAuGpE,CAAC"}
1
+ {"version":3,"file":"InputFocusScrollView.d.ts","sourceRoot":"","sources":["../../../../../src/components/InputFocusScrollView/InputFocusScrollView.tsx"],"names":[],"mappings":"AACA,OAAO,EAIN,KAAK,oBAAoB,EAGzB,KAAK,eAAe,EAEpB,KAAK,aAAa,EAClB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAO5C,MAAM,WAAW,yBAChB,SAAQ,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,EACxC,OAAO;IACR,4LAA4L;IAC5L,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,QAAQ,EAAE,CACT,YAAY,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,aAAa,CAAC,KAAK,IAAI,KAC1D,KAAK,CAAC,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAyGpE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Screen.d.ts","sourceRoot":"","sources":["../../../../../src/components/Screen/Screen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EACN,KAAK,UAAU,EAEf,KAAK,cAAc,EACnB,KAAK,cAAc,EAEnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAElD,KAAK,QAAQ,GAAG;IACf,2HAA2H;IAC3H,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC;IAC1C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,UAAU,CAAC;IACjC,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAC9B,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,mBAAmB,CAAC,EAAE,UAAU,CAAC;IACjC,wEAAwE;IACxE,oBAAoB,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAE9D,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAyD3D,CAAC"}
1
+ {"version":3,"file":"Screen.d.ts","sourceRoot":"","sources":["../../../../../src/components/Screen/Screen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EACN,KAAK,UAAU,EAEf,KAAK,cAAc,EACnB,KAAK,cAAc,EAEnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAElD,KAAK,QAAQ,GAAG;IACf,2HAA2H;IAC3H,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC;IAC1C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,UAAU,CAAC;IACjC,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAC9B,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,mBAAmB,CAAC,EAAE,UAAU,CAAC;IACjC,wEAAwE;IACxE,oBAAoB,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAE9D,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAkD3D,CAAC"}
@@ -3,7 +3,6 @@ import type { Spacing } from "../../models";
3
3
  export interface InputFocusScrollViewProps extends Omit<ScrollViewProps, "children">, Spacing {
4
4
  /** Percentage of screen to add to element position. Values between 0 and 1. Use this if you want to position the input focus somewhere other than the top of the screen. Defaults to 0.3 */
5
5
  focusPositionOffset?: number;
6
- offsetFromKeyboard?: number;
7
6
  height?: "full" | "auto";
8
7
  children: (onInputFocus: (e: NativeSyntheticEvent<TargetedEvent>) => void) => React.ReactNode;
9
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"InputFocusScrollView.d.ts","sourceRoot":"","sources":["../../../../../src/components/InputFocusScrollView/InputFocusScrollView.tsx"],"names":[],"mappings":"AACA,OAAO,EAIN,KAAK,oBAAoB,EAGzB,KAAK,eAAe,EAEpB,KAAK,aAAa,EAClB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAO5C,MAAM,WAAW,yBAChB,SAAQ,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,EACxC,OAAO;IACR,4LAA4L;IAC5L,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,QAAQ,EAAE,CACT,YAAY,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,aAAa,CAAC,KAAK,IAAI,KAC1D,KAAK,CAAC,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAuGpE,CAAC"}
1
+ {"version":3,"file":"InputFocusScrollView.d.ts","sourceRoot":"","sources":["../../../../../src/components/InputFocusScrollView/InputFocusScrollView.tsx"],"names":[],"mappings":"AACA,OAAO,EAIN,KAAK,oBAAoB,EAGzB,KAAK,eAAe,EAEpB,KAAK,aAAa,EAClB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAO5C,MAAM,WAAW,yBAChB,SAAQ,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,EACxC,OAAO;IACR,4LAA4L;IAC5L,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,QAAQ,EAAE,CACT,YAAY,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,aAAa,CAAC,KAAK,IAAI,KAC1D,KAAK,CAAC,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAyGpE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Screen.d.ts","sourceRoot":"","sources":["../../../../../src/components/Screen/Screen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EACN,KAAK,UAAU,EAEf,KAAK,cAAc,EACnB,KAAK,cAAc,EAEnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAElD,KAAK,QAAQ,GAAG;IACf,2HAA2H;IAC3H,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC;IAC1C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,UAAU,CAAC;IACjC,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAC9B,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,mBAAmB,CAAC,EAAE,UAAU,CAAC;IACjC,wEAAwE;IACxE,oBAAoB,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAE9D,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAyD3D,CAAC"}
1
+ {"version":3,"file":"Screen.d.ts","sourceRoot":"","sources":["../../../../../src/components/Screen/Screen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EACN,KAAK,UAAU,EAEf,KAAK,cAAc,EACnB,KAAK,cAAc,EAEnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAElD,KAAK,QAAQ,GAAG;IACf,2HAA2H;IAC3H,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC;IAC1C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,UAAU,CAAC;IACjC,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAC9B,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,mBAAmB,CAAC,EAAE,UAAU,CAAC;IACjC,wEAAwE;IACxE,oBAAoB,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAE9D,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAkD3D,CAAC"}
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "Luka Buljan <luka@prototyp.digital>",
7
7
  "Vlatko Vlahek <vlatko@prototyp.digital>"
8
8
  ],
9
- "version": "1.1.4",
9
+ "version": "1.1.6",
10
10
  "license": "MIT",
11
11
  "main": "./lib/commonjs/index.js",
12
12
  "module": "./lib/module/index.js",
@@ -17,7 +17,7 @@
17
17
  "url": "https://github.com/prototypdigital/skeletor.git"
18
18
  },
19
19
  "engines": {
20
- "node": ">=20"
20
+ "node": ">=18"
21
21
  },
22
22
  "scripts": {
23
23
  "prepack": "bob build",