react-native-skelo 0.1.0-alpha.0 → 0.1.0

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.
Files changed (68) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +147 -75
  3. package/lib/commonjs/animations/PulseAnimation.js +17 -42
  4. package/lib/commonjs/animations/PulseAnimation.js.map +1 -1
  5. package/lib/commonjs/animations/ShimmerAnimation.js +54 -65
  6. package/lib/commonjs/animations/ShimmerAnimation.js.map +1 -1
  7. package/lib/commonjs/components/Skeleton.js +37 -23
  8. package/lib/commonjs/components/Skeleton.js.map +1 -1
  9. package/lib/commonjs/components/SkeletonProvider.js +38 -0
  10. package/lib/commonjs/components/SkeletonProvider.js.map +1 -0
  11. package/lib/commonjs/components/withSkeleton.js +1 -0
  12. package/lib/commonjs/components/withSkeleton.js.map +1 -1
  13. package/lib/commonjs/core/deepRegistry.js +18 -0
  14. package/lib/commonjs/core/deepRegistry.js.map +1 -0
  15. package/lib/commonjs/core/parser/expandLists.js +67 -0
  16. package/lib/commonjs/core/parser/expandLists.js.map +1 -0
  17. package/lib/commonjs/deep.js +18 -0
  18. package/lib/commonjs/deep.js.map +1 -0
  19. package/lib/commonjs/index.js +8 -0
  20. package/lib/commonjs/index.js.map +1 -1
  21. package/lib/module/animations/PulseAnimation.js +18 -43
  22. package/lib/module/animations/PulseAnimation.js.map +1 -1
  23. package/lib/module/animations/ShimmerAnimation.js +55 -66
  24. package/lib/module/animations/ShimmerAnimation.js.map +1 -1
  25. package/lib/module/components/Skeleton.js +37 -23
  26. package/lib/module/components/Skeleton.js.map +1 -1
  27. package/lib/module/components/SkeletonProvider.js +30 -0
  28. package/lib/module/components/SkeletonProvider.js.map +1 -0
  29. package/lib/module/components/withSkeleton.js +1 -0
  30. package/lib/module/components/withSkeleton.js.map +1 -1
  31. package/lib/module/core/deepRegistry.js +11 -0
  32. package/lib/module/core/deepRegistry.js.map +1 -0
  33. package/lib/module/core/parser/expandLists.js +61 -0
  34. package/lib/module/core/parser/expandLists.js.map +1 -0
  35. package/lib/module/deep.js +11 -0
  36. package/lib/module/deep.js.map +1 -0
  37. package/lib/module/index.js +5 -0
  38. package/lib/module/index.js.map +1 -1
  39. package/lib/typescript/animations/PulseAnimation.d.ts +0 -44
  40. package/lib/typescript/animations/PulseAnimation.d.ts.map +1 -1
  41. package/lib/typescript/animations/ShimmerAnimation.d.ts +0 -44
  42. package/lib/typescript/animations/ShimmerAnimation.d.ts.map +1 -1
  43. package/lib/typescript/components/Skeleton.d.ts +1 -1
  44. package/lib/typescript/components/Skeleton.d.ts.map +1 -1
  45. package/lib/typescript/components/SkeletonProvider.d.ts +10 -0
  46. package/lib/typescript/components/SkeletonProvider.d.ts.map +1 -0
  47. package/lib/typescript/components/withSkeleton.d.ts.map +1 -1
  48. package/lib/typescript/core/deepRegistry.d.ts +7 -0
  49. package/lib/typescript/core/deepRegistry.d.ts.map +1 -0
  50. package/lib/typescript/core/parser/expandLists.d.ts +3 -0
  51. package/lib/typescript/core/parser/expandLists.d.ts.map +1 -0
  52. package/lib/typescript/deep.d.ts +2 -0
  53. package/lib/typescript/deep.d.ts.map +1 -0
  54. package/lib/typescript/index.d.ts +3 -0
  55. package/lib/typescript/index.d.ts.map +1 -1
  56. package/lib/typescript/types/skeleton.d.ts +8 -0
  57. package/lib/typescript/types/skeleton.d.ts.map +1 -1
  58. package/package.json +23 -12
  59. package/src/animations/PulseAnimation.tsx +17 -89
  60. package/src/animations/ShimmerAnimation.tsx +39 -118
  61. package/src/components/Skeleton.tsx +39 -23
  62. package/src/components/SkeletonProvider.tsx +40 -0
  63. package/src/components/withSkeleton.tsx +1 -0
  64. package/src/core/deepRegistry.ts +16 -0
  65. package/src/core/parser/expandLists.tsx +77 -0
  66. package/src/deep.ts +12 -0
  67. package/src/index.ts +6 -0
  68. package/src/types/skeleton.ts +9 -0
@@ -3,8 +3,9 @@ import { Parser } from '../core/parser';
3
3
  import { SkeletonRenderer } from './SkeletonRenderer';
4
4
  import { SkeletonIgnore } from './SkeletonIgnore';
5
5
  import { StyleSkeleton } from '../core/generator/StyleSkeleton';
6
- import { expandToComponentNodes } from '../core/parser/expandOffline';
7
- import { DEFAULT_CONFIG } from '../constants/defaults';
6
+ import { getDeepExpander } from '../core/deepRegistry';
7
+ import { expandListPlaceholders } from '../core/parser/expandLists';
8
+ import { useSkeletonTheme } from './SkeletonProvider';
8
9
 
9
10
  /**
10
11
  * Main Skeleton component
@@ -34,21 +35,24 @@ import { DEFAULT_CONFIG } from '../constants/defaults';
34
35
  * </Skeleton>
35
36
  * ```
36
37
  */
37
- export function Skeleton({
38
- loading,
39
- children,
40
- styles,
41
- excludeStyles,
42
- deep = false,
43
- animation = DEFAULT_CONFIG.animation,
44
- duration = DEFAULT_CONFIG.duration,
45
- baseColor = DEFAULT_CONFIG.baseColor,
46
- highlightColor = DEFAULT_CONFIG.highlightColor,
47
- borderRadius = DEFAULT_CONFIG.borderRadius,
48
- accessible = true,
49
- accessibilityLabel = 'Loading content',
50
- debug = false
51
- }) {
38
+ export function Skeleton(props) {
39
+ const theme = useSkeletonTheme();
40
+ const {
41
+ loading,
42
+ children,
43
+ styles,
44
+ excludeStyles,
45
+ deep,
46
+ count = 6,
47
+ animation = theme.animation,
48
+ duration = theme.duration,
49
+ baseColor = theme.baseColor,
50
+ highlightColor = theme.highlightColor,
51
+ borderRadius = theme.borderRadius,
52
+ accessible = true,
53
+ accessibilityLabel = 'Loading content',
54
+ debug = theme.debug
55
+ } = props;
52
56
  // Parse component tree and generate skeleton.
53
57
  // Hooks must run unconditionally (rules of hooks), but parsing stays lazy:
54
58
  // we skip the work entirely when not loading or in styles-driven mode.
@@ -60,18 +64,28 @@ export function Skeleton({
60
64
  console.log('[Skelo] Parsing component tree...');
61
65
  }
62
66
  try {
63
- // Deep mode: expand opaque components into their real host tree by
64
- // rendering them offline. Falls back to static parsing on failure.
65
- if (deep) {
66
- const expanded = expandToComponentNodes(/*#__PURE__*/React.createElement(React.Fragment, null, children));
67
+ // Turn FlatList/SectionList into placeholder rows so lists show a
68
+ // skeleton even though their data (and rows) don't exist yet.
69
+ const prepared = expandListPlaceholders(children, count);
70
+
71
+ // Deep mode: expand opaque components into their real host tree via the
72
+ // opt-in expander (registered by importing 'react-native-skelo/deep').
73
+ // When `deep` is not set explicitly, it's used automatically whenever the
74
+ // expander is available. Falls back to static parsing otherwise.
75
+ const expand = getDeepExpander();
76
+ const wantDeep = deep === undefined ? expand !== null : deep;
77
+ if (wantDeep && expand) {
78
+ const expanded = expand(/*#__PURE__*/React.createElement(React.Fragment, null, prepared));
67
79
  if (expanded && expanded.length > 0) {
68
80
  return expanded;
69
81
  }
70
82
  if (__DEV__) {
71
83
  console.warn('[Skelo] deep expansion returned nothing; falling back to static parsing.');
72
84
  }
85
+ } else if (deep === true && !expand && __DEV__) {
86
+ console.warn("[Skelo] `deep` requires react-reconciler. Install it and add `import 'react-native-skelo/deep';` in your app entry.");
73
87
  }
74
- const parsed = Parser.parse(children);
88
+ const parsed = Parser.parse(prepared);
75
89
  if (__DEV__ && debug) {
76
90
  // Log a lightweight summary: the raw nodes hold React elements
77
91
  // (`element`) and arbitrary props that aren't safely serializable.
@@ -89,7 +103,7 @@ export function Skeleton({
89
103
  }
90
104
  return [];
91
105
  }
92
- }, [loading, styles, deep, children, debug]);
106
+ }, [loading, styles, deep, count, children, debug]);
93
107
 
94
108
  // Create skeleton config
95
109
  const config = useMemo(() => ({
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","Parser","SkeletonRenderer","SkeletonIgnore","StyleSkeleton","expandToComponentNodes","DEFAULT_CONFIG","Skeleton","loading","children","styles","excludeStyles","deep","animation","duration","baseColor","highlightColor","borderRadius","accessible","accessibilityLabel","debug","skeletonTree","__DEV__","console","log","expanded","createElement","Fragment","length","warn","parsed","parse","summarize","nodes","map","node","type","style","JSON","stringify","error","config","exclude","tree","displayName","Ignore"],"sourceRoot":"../../../src","sources":["components/Skeleton.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useMemo","Parser","SkeletonRenderer","SkeletonIgnore","StyleSkeleton","getDeepExpander","expandListPlaceholders","useSkeletonTheme","Skeleton","props","theme","loading","children","styles","excludeStyles","deep","count","animation","duration","baseColor","highlightColor","borderRadius","accessible","accessibilityLabel","debug","skeletonTree","__DEV__","console","log","prepared","expand","wantDeep","undefined","expanded","createElement","Fragment","length","warn","parsed","parse","summarize","nodes","map","node","type","style","JSON","stringify","error","config","exclude","tree","displayName","Ignore"],"sourceRoot":"../../../src","sources":["components/Skeleton.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ import React, { createContext, useContext, useMemo } from 'react';
2
+ import { DEFAULT_CONFIG } from '../constants/defaults';
3
+ const SkeletonThemeContext = /*#__PURE__*/createContext(DEFAULT_CONFIG);
4
+ /** App-wide skeleton defaults. Nested providers inherit unspecified values. */
5
+ export function SkeletonProvider({
6
+ children,
7
+ animation,
8
+ duration,
9
+ baseColor,
10
+ highlightColor,
11
+ borderRadius,
12
+ debug
13
+ }) {
14
+ const parent = useContext(SkeletonThemeContext);
15
+ const value = useMemo(() => ({
16
+ animation: animation ?? parent.animation,
17
+ duration: duration ?? parent.duration,
18
+ baseColor: baseColor ?? parent.baseColor,
19
+ highlightColor: highlightColor ?? parent.highlightColor,
20
+ borderRadius: borderRadius ?? parent.borderRadius,
21
+ debug: debug ?? parent.debug
22
+ }), [parent, animation, duration, baseColor, highlightColor, borderRadius, debug]);
23
+ return /*#__PURE__*/React.createElement(SkeletonThemeContext.Provider, {
24
+ value: value
25
+ }, children);
26
+ }
27
+ export function useSkeletonTheme() {
28
+ return useContext(SkeletonThemeContext);
29
+ }
30
+ //# sourceMappingURL=SkeletonProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","createContext","useContext","useMemo","DEFAULT_CONFIG","SkeletonThemeContext","SkeletonProvider","children","animation","duration","baseColor","highlightColor","borderRadius","debug","parent","value","createElement","Provider","useSkeletonTheme"],"sourceRoot":"../../../src","sources":["components/SkeletonProvider.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,aAAa,EAAEC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAGjE,SAASC,cAAc,QAAQ,uBAAuB;AAEtD,MAAMC,oBAAoB,gBAAGJ,aAAa,CAA2BG,cAAc,CAAC;AAMpF;AACA,OAAO,SAASE,gBAAgBA,CAAC;EAC/BC,QAAQ;EACRC,SAAS;EACTC,QAAQ;EACRC,SAAS;EACTC,cAAc;EACdC,YAAY;EACZC;AACqB,CAAC,EAAE;EACxB,MAAMC,MAAM,GAAGZ,UAAU,CAACG,oBAAoB,CAAC;EAC/C,MAAMU,KAAK,GAAGZ,OAAO,CACnB,OAAO;IACLK,SAAS,EAAEA,SAAS,IAAIM,MAAM,CAACN,SAAS;IACxCC,QAAQ,EAAEA,QAAQ,IAAIK,MAAM,CAACL,QAAQ;IACrCC,SAAS,EAAEA,SAAS,IAAII,MAAM,CAACJ,SAAS;IACxCC,cAAc,EAAEA,cAAc,IAAIG,MAAM,CAACH,cAAc;IACvDC,YAAY,EAAEA,YAAY,IAAIE,MAAM,CAACF,YAAY;IACjDC,KAAK,EAAEA,KAAK,IAAIC,MAAM,CAACD;EACzB,CAAC,CAAC,EACF,CAACC,MAAM,EAAEN,SAAS,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,cAAc,EAAEC,YAAY,EAAEC,KAAK,CAC9E,CAAC;EAED,oBAAOb,KAAA,CAAAgB,aAAA,CAACX,oBAAoB,CAACY,QAAQ;IAACF,KAAK,EAAEA;EAAM,GAAER,QAAwC,CAAC;AAChG;AAEA,OAAO,SAASW,gBAAgBA,CAAA,EAAG;EACjC,OAAOhB,UAAU,CAACG,oBAAoB,CAAC;AACzC","ignoreList":[]}
@@ -24,6 +24,7 @@ export function withSkeleton(Component, options = {}) {
24
24
  loading: loading,
25
25
  styles: options.styles,
26
26
  excludeStyles: options.excludeStyles,
27
+ debug: options.debug,
27
28
  animation: options.animation,
28
29
  duration: options.duration,
29
30
  baseColor: options.baseColor,
@@ -1 +1 @@
1
- {"version":3,"names":["React","Skeleton","withSkeleton","Component","options","WithSkeleton","props","loading","componentProps","createElement","styles","excludeStyles","animation","duration","baseColor","highlightColor","borderRadius","name","displayName"],"sourceRoot":"../../../src","sources":["components/withSkeleton.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAIzB,SAASC,QAAQ,QAAQ,YAAY;AAgBrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,YAAYA,CAC1BC,SAA2B,EAC3BC,OAA4B,GAAG,CAAC,CAAC,EACjC;EACA,MAAMC,YAAY,GAAIC,KAA+B,IAAK;IACxD,MAAM;MAAEC,OAAO;MAAE,GAAGC;IAAe,CAAC,GAAGF,KAAK;IAE5C,oBACEN,KAAA,CAAAS,aAAA,CAACR,QAAQ;MACPM,OAAO,EAAEA,OAAQ;MACjBG,MAAM,EAAEN,OAAO,CAACM,MAAO;MACvBC,aAAa,EAAEP,OAAO,CAACO,aAAc;MACrCC,SAAS,EAAER,OAAO,CAACQ,SAAU;MAC7BC,QAAQ,EAAET,OAAO,CAACS,QAAS;MAC3BC,SAAS,EAAEV,OAAO,CAACU,SAAU;MAC7BC,cAAc,EAAEX,OAAO,CAACW,cAAe;MACvCC,YAAY,EAAEZ,OAAO,CAACY;IAAa,gBAEnChB,KAAA,CAAAS,aAAA,CAACN,SAAS,EAAMK,cAAkC,CAC1C,CAAC;EAEf,CAAC;EAED,MAAMS,IAAI,GAAGd,SAAS,CAACe,WAAW,IAAIf,SAAS,CAACc,IAAI,IAAI,WAAW;EACnEZ,YAAY,CAACa,WAAW,GAAG,gBAAgBD,IAAI,GAAG;EAElD,OAAOZ,YAAY;AACrB","ignoreList":[]}
1
+ {"version":3,"names":["React","Skeleton","withSkeleton","Component","options","WithSkeleton","props","loading","componentProps","createElement","styles","excludeStyles","debug","animation","duration","baseColor","highlightColor","borderRadius","name","displayName"],"sourceRoot":"../../../src","sources":["components/withSkeleton.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAIzB,SAASC,QAAQ,QAAQ,YAAY;AAgBrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,YAAYA,CAC1BC,SAA2B,EAC3BC,OAA4B,GAAG,CAAC,CAAC,EACjC;EACA,MAAMC,YAAY,GAAIC,KAA+B,IAAK;IACxD,MAAM;MAAEC,OAAO;MAAE,GAAGC;IAAe,CAAC,GAAGF,KAAK;IAE5C,oBACEN,KAAA,CAAAS,aAAA,CAACR,QAAQ;MACPM,OAAO,EAAEA,OAAQ;MACjBG,MAAM,EAAEN,OAAO,CAACM,MAAO;MACvBC,aAAa,EAAEP,OAAO,CAACO,aAAc;MACrCC,KAAK,EAAER,OAAO,CAACQ,KAAM;MACrBC,SAAS,EAAET,OAAO,CAACS,SAAU;MAC7BC,QAAQ,EAAEV,OAAO,CAACU,QAAS;MAC3BC,SAAS,EAAEX,OAAO,CAACW,SAAU;MAC7BC,cAAc,EAAEZ,OAAO,CAACY,cAAe;MACvCC,YAAY,EAAEb,OAAO,CAACa;IAAa,gBAEnCjB,KAAA,CAAAS,aAAA,CAACN,SAAS,EAAMK,cAAkC,CAC1C,CAAC;EAEf,CAAC;EAED,MAAMU,IAAI,GAAGf,SAAS,CAACgB,WAAW,IAAIhB,SAAS,CAACe,IAAI,IAAI,WAAW;EACnEb,YAAY,CAACc,WAAW,GAAG,gBAAgBD,IAAI,GAAG;EAElD,OAAOb,YAAY;AACrB","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ // Deep expansion is opt-in so the core bundle never depends on react-reconciler.
2
+ // `react-native-skelo/deep` registers the expander; Skeleton reads it here.
3
+
4
+ let expander = null;
5
+ export function setDeepExpander(fn) {
6
+ expander = fn;
7
+ }
8
+ export function getDeepExpander() {
9
+ return expander;
10
+ }
11
+ //# sourceMappingURL=deepRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["expander","setDeepExpander","fn","getDeepExpander"],"sourceRoot":"../../../src","sources":["core/deepRegistry.ts"],"mappings":"AAGA;AACA;;AAGA,IAAIA,QAA6B,GAAG,IAAI;AAExC,OAAO,SAASC,eAAeA,CAACC,EAAgB,EAAQ;EACtDF,QAAQ,GAAGE,EAAE;AACf;AAEA,OAAO,SAASC,eAAeA,CAAA,EAAwB;EACrD,OAAOH,QAAQ;AACjB","ignoreList":[]}
@@ -0,0 +1,61 @@
1
+ import React, { isValidElement } from 'react';
2
+ import { View } from 'react-native';
3
+ import { getComponentName } from '../../utils/componentUtils';
4
+
5
+ // List components whose rows come from `renderItem` (not JSX children).
6
+ const LIST_TYPES = new Set(['FlatList', 'SectionList', 'VirtualizedList', 'FlashList']);
7
+ const NOOP_SEPARATORS = {
8
+ highlight: () => {},
9
+ unhighlight: () => {},
10
+ updateProps: () => {}
11
+ };
12
+
13
+ // Renders `count` sample rows from a list's `renderItem` so there's something
14
+ // to skeletonize while the real data is still loading (the rows don't exist in
15
+ // the tree yet). Rows that throw on placeholder data are skipped.
16
+ function renderSampleRows(list, count) {
17
+ const props = list.props || {};
18
+ const data = Array.isArray(props.data) ? props.data : [];
19
+ const sample = data.length > 0 ? data[0] : {};
20
+ const rows = [];
21
+ for (let i = 0; i < count; i++) {
22
+ try {
23
+ const row = props.renderItem?.({
24
+ item: sample,
25
+ index: i,
26
+ section: {},
27
+ separators: NOOP_SEPARATORS
28
+ });
29
+ if (row) {
30
+ rows.push(/*#__PURE__*/React.createElement(React.Fragment, {
31
+ key: i
32
+ }, row));
33
+ }
34
+ } catch {
35
+ // Row couldn't render with placeholder data — skip it.
36
+ }
37
+ }
38
+ return /*#__PURE__*/React.createElement(View, {
39
+ style: props.contentContainerStyle
40
+ }, rows);
41
+ }
42
+
43
+ // Walks a child tree and replaces FlatList/SectionList with sample rows so a
44
+ // plain `<Skeleton><FlatList/></Skeleton>` produces a skeleton while loading.
45
+ export function expandListPlaceholders(children, count) {
46
+ return React.Children.map(children, child => {
47
+ if (! /*#__PURE__*/isValidElement(child)) {
48
+ return child;
49
+ }
50
+ const name = getComponentName(child);
51
+ const props = child.props || {};
52
+ if (LIST_TYPES.has(name) && typeof props.renderItem === 'function') {
53
+ return renderSampleRows(child, count);
54
+ }
55
+ if (props.children) {
56
+ return /*#__PURE__*/React.cloneElement(child, undefined, expandListPlaceholders(props.children, count));
57
+ }
58
+ return child;
59
+ });
60
+ }
61
+ //# sourceMappingURL=expandLists.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","isValidElement","View","getComponentName","LIST_TYPES","Set","NOOP_SEPARATORS","highlight","unhighlight","updateProps","renderSampleRows","list","count","props","data","Array","isArray","sample","length","rows","i","row","renderItem","item","index","section","separators","push","createElement","Fragment","key","style","contentContainerStyle","expandListPlaceholders","children","Children","map","child","name","has","cloneElement","undefined"],"sourceRoot":"../../../../src","sources":["core/parser/expandLists.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,cAAc,QAAQ,OAAO;AAE7C,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,gBAAgB,QAAQ,4BAA4B;;AAE7D;AACA,MAAMC,UAAU,GAAG,IAAIC,GAAG,CAAC,CAAC,UAAU,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,CAAC,CAAC;AAEvF,MAAMC,eAAe,GAAG;EACtBC,SAAS,EAAEA,CAAA,KAAM,CAAC,CAAC;EACnBC,WAAW,EAAEA,CAAA,KAAM,CAAC,CAAC;EACrBC,WAAW,EAAEA,CAAA,KAAM,CAAC;AACtB,CAAC;;AAED;AACA;AACA;AACA,SAASC,gBAAgBA,CAACC,IAAkB,EAAEC,KAAa,EAAa;EACtE,MAAMC,KAAK,GAAIF,IAAI,CAACE,KAAK,IAAI,CAAC,CAS7B;EAED,MAAMC,IAAI,GAAGC,KAAK,CAACC,OAAO,CAACH,KAAK,CAACC,IAAI,CAAC,GAAGD,KAAK,CAACC,IAAI,GAAG,EAAE;EACxD,MAAMG,MAAM,GAAGH,IAAI,CAACI,MAAM,GAAG,CAAC,GAAGJ,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;EAE7C,MAAMK,IAAiB,GAAG,EAAE;EAC5B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGR,KAAK,EAAEQ,CAAC,EAAE,EAAE;IAC9B,IAAI;MACF,MAAMC,GAAG,GAAGR,KAAK,CAACS,UAAU,GAAG;QAC7BC,IAAI,EAAEN,MAAM;QACZO,KAAK,EAAEJ,CAAC;QACRK,OAAO,EAAE,CAAC,CAAC;QACXC,UAAU,EAAEpB;MACd,CAAC,CAAC;MACF,IAAIe,GAAG,EAAE;QACPF,IAAI,CAACQ,IAAI,cAAC3B,KAAA,CAAA4B,aAAA,CAAC5B,KAAK,CAAC6B,QAAQ;UAACC,GAAG,EAAEV;QAAE,GAAEC,GAAoB,CAAC,CAAC;MAC3D;IACF,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ;EAEA,oBAAOrB,KAAA,CAAA4B,aAAA,CAAC1B,IAAI;IAAC6B,KAAK,EAAElB,KAAK,CAACmB;EAA+B,GAAEb,IAAW,CAAC;AACzE;;AAEA;AACA;AACA,OAAO,SAASc,sBAAsBA,CAACC,QAAmB,EAAEtB,KAAa,EAAa;EACpF,OAAOZ,KAAK,CAACmC,QAAQ,CAACC,GAAG,CAACF,QAAQ,EAAEG,KAAK,IAAI;IAC3C,IAAI,eAACpC,cAAc,CAACoC,KAAK,CAAC,EAAE;MAC1B,OAAOA,KAAK;IACd;IAEA,MAAMC,IAAI,GAAGnC,gBAAgB,CAACkC,KAAK,CAAC;IACpC,MAAMxB,KAAK,GAAIwB,KAAK,CAACxB,KAAK,IAAI,CAAC,CAA8B;IAE7D,IACET,UAAU,CAACmC,GAAG,CAACD,IAAI,CAAC,IACpB,OAAQzB,KAAK,CAA8BS,UAAU,KAAK,UAAU,EACpE;MACA,OAAOZ,gBAAgB,CAAC2B,KAAK,EAAEzB,KAAK,CAAC;IACvC;IAEA,IAAIC,KAAK,CAACqB,QAAQ,EAAE;MAClB,oBAAOlC,KAAK,CAACwC,YAAY,CAACH,KAAK,EAAEI,SAAS,EAAER,sBAAsB,CAACpB,KAAK,CAACqB,QAAQ,EAAEtB,KAAK,CAAC,CAAC;IAC5F;IAEA,OAAOyB,KAAK;EACd,CAAC,CAAC;AACJ","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ // Opt-in deep mode. Import once in your app entry to enable `<Skeleton deep>`:
2
+ //
3
+ // import 'react-native-skelo/deep';
4
+ //
5
+ // This is the only module that pulls in react-reconciler, so apps that don't
6
+ // use deep mode never bundle it. Requires `react-reconciler` to be installed.
7
+ import { setDeepExpander } from './core/deepRegistry';
8
+ import { expandToComponentNodes } from './core/parser/expandOffline';
9
+ setDeepExpander(expandToComponentNodes);
10
+ export const deepEnabled = true;
11
+ //# sourceMappingURL=deep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["setDeepExpander","expandToComponentNodes","deepEnabled"],"sourceRoot":"../../src","sources":["deep.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,eAAe,QAAQ,qBAAqB;AACrD,SAASC,sBAAsB,QAAQ,6BAA6B;AAEpED,eAAe,CAACC,sBAAsB,CAAC;AAEvC,OAAO,MAAMC,WAAW,GAAG,IAAI","ignoreList":[]}
@@ -6,7 +6,12 @@
6
6
  * @packageDocumentation
7
7
  */
8
8
 
9
+ // Auto-register deep expansion (react-reconciler ships as a dependency), so
10
+ // `<Skeleton deep>` / opaque components work with zero setup.
11
+ import './deep';
12
+
9
13
  // Main component
14
+ export { SkeletonProvider } from './components/SkeletonProvider';
10
15
  export { Skeleton } from './components/Skeleton';
11
16
  export { SkeletonIgnore } from './components/SkeletonIgnore';
12
17
  export { withSkeleton } from './components/withSkeleton';
@@ -1 +1 @@
1
- {"version":3,"names":["Skeleton","SkeletonIgnore","withSkeleton","StyleSkeleton","Skelo","SkeletonBox","SkeletonText","SkeletonImage","SkeletonCircle"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAASA,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,cAAc,QAAQ,6BAA6B;AAC5D,SAASC,YAAY,QAAQ,2BAA2B;AAExD,SAASC,aAAa,QAAQ,gCAAgC;AAG9D;AACA,SAASC,KAAK,QAAQ,SAAS;;AAE/B;;AASA;AACA,SAASC,WAAW,EAAEC,YAAY,EAAEC,aAAa,EAAEC,cAAc,QAAQ,yBAAyB","ignoreList":[]}
1
+ {"version":3,"names":["SkeletonProvider","Skeleton","SkeletonIgnore","withSkeleton","StyleSkeleton","Skelo","SkeletonBox","SkeletonText","SkeletonImage","SkeletonCircle"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO,QAAQ;;AAEf;AACA,SAASA,gBAAgB,QAAQ,+BAA+B;AAEhE,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,cAAc,QAAQ,6BAA6B;AAC5D,SAASC,YAAY,QAAQ,2BAA2B;AAExD,SAASC,aAAa,QAAQ,gCAAgC;AAG9D;AACA,SAASC,KAAK,QAAQ,SAAS;;AAE/B;;AASA;AACA,SAASC,WAAW,EAAEC,YAAY,EAAEC,aAAa,EAAEC,cAAc,QAAQ,yBAAyB","ignoreList":[]}
@@ -1,59 +1,15 @@
1
1
  import React from 'react';
2
2
  import type { DimensionValue, StyleProp, ViewStyle } from 'react-native';
3
3
  interface PulseProps {
4
- /**
5
- * Width of the pulse container
6
- */
7
4
  width?: DimensionValue;
8
- /**
9
- * Height of the pulse container
10
- */
11
5
  height?: DimensionValue;
12
- /**
13
- * Base color of the skeleton
14
- * @default '#E1E9EE'
15
- */
16
6
  baseColor?: string;
17
- /**
18
- * Highlight color for pulse
19
- * @default '#F2F8FC'
20
- */
21
7
  highlightColor?: string;
22
- /**
23
- * Animation duration in milliseconds
24
- * @default 1000
25
- */
26
8
  duration?: number;
27
- /**
28
- * Border radius
29
- */
30
9
  borderRadius?: number;
31
- /**
32
- * Additional styles
33
- */
34
10
  style?: StyleProp<ViewStyle>;
35
- /**
36
- * Child content (rendered inside pulse)
37
- */
38
11
  children?: React.ReactNode;
39
12
  }
40
- /**
41
- * Pulse animation component using Reanimated 3
42
- *
43
- * Creates a subtle breathing/pulsing effect using:
44
- * - Shared values for performance
45
- * - Worklets for 60 FPS on UI thread
46
- * - Opacity animation for pulse effect
47
- *
48
- * @example
49
- * ```tsx
50
- * <PulseAnimation
51
- * width={200}
52
- * height={20}
53
- * borderRadius={4}
54
- * />
55
- * ```
56
- */
57
13
  export declare function PulseAnimation({ width, height, baseColor, duration, borderRadius, style, children, }: PulseProps): React.JSX.Element;
58
14
  export {};
59
15
  //# sourceMappingURL=PulseAnimation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PulseAnimation.d.ts","sourceRoot":"","sources":["../../../src/animations/PulseAnimation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAWzE,UAAU,UAAU;IAClB;;OAEG;IACH,KAAK,CAAC,EAAE,cAAc,CAAC;IAEvB;;OAEG;IACH,MAAM,CAAC,EAAE,cAAc,CAAC;IAExB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,MAAM,EACN,SAAqB,EACrB,QAAe,EACf,YAAgB,EAChB,KAAK,EACL,QAAQ,GACT,EAAE,UAAU,qBAiDZ"}
1
+ {"version":3,"file":"PulseAnimation.d.ts","sourceRoot":"","sources":["../../../src/animations/PulseAnimation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzE,UAAU,UAAU;IAClB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAGD,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,MAAM,EACN,SAAqB,EACrB,QAAe,EACf,YAAgB,EAChB,KAAK,EACL,QAAQ,GACT,EAAE,UAAU,qBAmCZ"}
@@ -1,59 +1,15 @@
1
1
  import React from 'react';
2
2
  import type { DimensionValue, StyleProp, ViewStyle } from 'react-native';
3
3
  interface ShimmerProps {
4
- /**
5
- * Width of the shimmer container
6
- */
7
4
  width?: DimensionValue;
8
- /**
9
- * Height of the shimmer container
10
- */
11
5
  height?: DimensionValue;
12
- /**
13
- * Base color of the skeleton
14
- * @default '#E1E9EE'
15
- */
16
6
  baseColor?: string;
17
- /**
18
- * Highlight color that shimmers across
19
- * @default '#F2F8FC'
20
- */
21
7
  highlightColor?: string;
22
- /**
23
- * Animation duration in milliseconds
24
- * @default 1500
25
- */
26
8
  duration?: number;
27
- /**
28
- * Border radius
29
- */
30
9
  borderRadius?: number;
31
- /**
32
- * Additional styles
33
- */
34
10
  style?: StyleProp<ViewStyle>;
35
- /**
36
- * Child content (rendered on top of shimmer)
37
- */
38
11
  children?: React.ReactNode;
39
12
  }
40
- /**
41
- * Shimmer animation component using Reanimated 3
42
- *
43
- * Creates a smooth left-to-right shimmer effect using:
44
- * - Shared values for performance
45
- * - Worklets for 60 FPS on UI thread
46
- * - Linear gradient for shimmer effect
47
- *
48
- * @example
49
- * ```tsx
50
- * <ShimmerAnimation
51
- * width={200}
52
- * height={20}
53
- * borderRadius={4}
54
- * />
55
- * ```
56
- */
57
13
  export declare function ShimmerAnimation({ width, height, baseColor, highlightColor, duration, borderRadius, style, children, }: ShimmerProps): React.JSX.Element;
58
14
  export {};
59
15
  //# sourceMappingURL=ShimmerAnimation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ShimmerAnimation.d.ts","sourceRoot":"","sources":["../../../src/animations/ShimmerAnimation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAYzE,UAAU,YAAY;IACpB;;OAEG;IACH,KAAK,CAAC,EAAE,cAAc,CAAC;IAEvB;;OAEG;IACH,MAAM,CAAC,EAAE,cAAc,CAAC;IAExB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,MAAM,EACN,SAAqB,EACrB,cAA0B,EAC1B,QAAe,EACf,YAAgB,EAChB,KAAK,EACL,QAAQ,GACT,EAAE,YAAY,qBA2Ed"}
1
+ {"version":3,"file":"ShimmerAnimation.d.ts","sourceRoot":"","sources":["../../../src/animations/ShimmerAnimation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAqB,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG5F,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAKD,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,MAAM,EACN,SAAqB,EACrB,cAA0B,EAC1B,QAAe,EACf,YAAgB,EAChB,KAAK,EACL,QAAQ,GACT,EAAE,YAAY,qBA+Cd"}
@@ -29,7 +29,7 @@ import { SkeletonIgnore } from './SkeletonIgnore';
29
29
  * </Skeleton>
30
30
  * ```
31
31
  */
32
- export declare function Skeleton({ loading, children, styles, excludeStyles, deep, animation, duration, baseColor, highlightColor, borderRadius, accessible, accessibilityLabel, debug, }: SkeletonProps): React.JSX.Element;
32
+ export declare function Skeleton(props: SkeletonProps): React.JSX.Element;
33
33
  export declare namespace Skeleton {
34
34
  var displayName: string;
35
35
  var Ignore: typeof SkeletonIgnore;
@@ -1 +1 @@
1
- {"version":3,"file":"Skeleton.d.ts","sourceRoot":"","sources":["../../../src/components/Skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKlD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,QAAQ,CAAC,EACvB,OAAO,EACP,QAAQ,EACR,MAAM,EACN,aAAa,EACb,IAAY,EACZ,SAAoC,EACpC,QAAkC,EAClC,SAAoC,EACpC,cAA8C,EAC9C,YAA0C,EAC1C,UAAiB,EACjB,kBAAsC,EACtC,KAAa,GACd,EAAE,aAAa,qBAiFf;yBA/Fe,QAAQ"}
1
+ {"version":3,"file":"Skeleton.d.ts","sourceRoot":"","sources":["../../../src/components/Skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMlD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,qBA8G5C;yBA9Ge,QAAQ"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import type { ReactNode } from 'react';
3
+ import type { SkeletonConfig } from '../types';
4
+ export interface SkeletonProviderProps extends SkeletonConfig {
5
+ children: ReactNode;
6
+ }
7
+ /** App-wide skeleton defaults. Nested providers inherit unspecified values. */
8
+ export declare function SkeletonProvider({ children, animation, duration, baseColor, highlightColor, borderRadius, debug, }: SkeletonProviderProps): React.JSX.Element;
9
+ export declare function useSkeletonTheme(): Required<SkeletonConfig>;
10
+ //# sourceMappingURL=SkeletonProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkeletonProvider.d.ts","sourceRoot":"","sources":["../../../src/components/SkeletonProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAK/C,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAC3D,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,cAAc,EACd,YAAY,EACZ,KAAK,GACN,EAAE,qBAAqB,qBAevB;AAED,wBAAgB,gBAAgB,6BAE/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"withSkeleton.d.ts","sourceRoot":"","sources":["../../../src/components/withSkeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAGlE,MAAM,WAAW,mBAAoB,SAAQ,OAAO,CAAC,cAAc,CAAC;IAClE;;;;OAIG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IAEpB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAC3C,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,EAC3B,OAAO,GAAE,mBAAwB;YAEJ,CAAC,GAAG;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE;;EAuBtD"}
1
+ {"version":3,"file":"withSkeleton.d.ts","sourceRoot":"","sources":["../../../src/components/withSkeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAGlE,MAAM,WAAW,mBAAoB,SAAQ,OAAO,CAAC,cAAc,CAAC;IAClE;;;;OAIG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IAEpB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAC3C,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,EAC3B,OAAO,GAAE,mBAAwB;YAEJ,CAAC,GAAG;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE;;EAwBtD"}
@@ -0,0 +1,7 @@
1
+ import type { ReactElement } from 'react';
2
+ import type { ComponentNode } from '../types';
3
+ type DeepExpander = (element: ReactElement) => ComponentNode[] | null;
4
+ export declare function setDeepExpander(fn: DeepExpander): void;
5
+ export declare function getDeepExpander(): DeepExpander | null;
6
+ export {};
7
+ //# sourceMappingURL=deepRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepRegistry.d.ts","sourceRoot":"","sources":["../../../src/core/deepRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAI9C,KAAK,YAAY,GAAG,CAAC,OAAO,EAAE,YAAY,KAAK,aAAa,EAAE,GAAG,IAAI,CAAC;AAItE,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAEtD;AAED,wBAAgB,eAAe,IAAI,YAAY,GAAG,IAAI,CAErD"}
@@ -0,0 +1,3 @@
1
+ import type { ReactNode } from 'react';
2
+ export declare function expandListPlaceholders(children: ReactNode, count: number): ReactNode;
3
+ //# sourceMappingURL=expandLists.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expandLists.d.ts","sourceRoot":"","sources":["../../../../src/core/parser/expandLists.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,OAAO,CAAC;AAqDrD,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAsBpF"}
@@ -0,0 +1,2 @@
1
+ export declare const deepEnabled = true;
2
+ //# sourceMappingURL=deep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep.d.ts","sourceRoot":"","sources":["../../src/deep.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,WAAW,OAAO,CAAC"}
@@ -5,6 +5,9 @@
5
5
  *
6
6
  * @packageDocumentation
7
7
  */
8
+ import './deep';
9
+ export { SkeletonProvider } from './components/SkeletonProvider';
10
+ export type { SkeletonProviderProps } from './components/SkeletonProvider';
8
11
  export { Skeleton } from './components/Skeleton';
9
12
  export { SkeletonIgnore } from './components/SkeletonIgnore';
10
13
  export { withSkeleton } from './components/withSkeleton';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,YAAY,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,YAAY,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAGjE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,YAAY,EACV,aAAa,EACb,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,eAAe,GAChB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,QAAQ,CAAC;AAGhB,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,YAAY,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,YAAY,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,YAAY,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAGjE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,YAAY,EACV,aAAa,EACb,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,eAAe,GAChB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC"}
@@ -69,6 +69,14 @@ export interface SkeletonProps {
69
69
  * When using `styles`, style keys to skip (e.g. layout containers).
70
70
  */
71
71
  excludeStyles?: string[];
72
+ /**
73
+ * Number of placeholder rows to render for a `FlatList` / `SectionList`
74
+ * while its data is still loading (its rows don't exist yet, so Skelo calls
75
+ * `renderItem` with a placeholder and repeats it `count` times).
76
+ *
77
+ * @default 6
78
+ */
79
+ count?: number;
72
80
  /**
73
81
  * Deep mode: expand opaque (custom) child components into their real
74
82
  * host-element tree via offline rendering, producing a structured skeleton
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../../src/types/skeleton.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElE;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;IAEzC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,EAAE,CAAC;IAE7C;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAEzB;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;IAEzC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IACjC,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,cAAc,CAAC,EACb,YAAY,GAAG,UAAU,GAAG,QAAQ,GAAG,eAAe,GAAG,cAAc,GAAG,cAAc,CAAC;CAC5F;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB"}
1
+ {"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../../src/types/skeleton.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElE;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;IAEzC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,EAAE,CAAC;IAE7C;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAEzB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;IAEzC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IACjC,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,cAAc,CAAC,EACb,YAAY,GAAG,UAAU,GAAG,QAAQ,GAAG,eAAe,GAAG,cAAc,GAAG,cAAc,CAAC;CAC5F;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB"}
package/package.json CHANGED
@@ -1,12 +1,29 @@
1
1
  {
2
2
  "name": "react-native-skelo",
3
- "version": "0.1.0-alpha.0",
3
+ "version": "0.1.0",
4
4
  "description": "Automatic skeleton loading for React Native. Write your UI once, Skelo builds the loading state automatically.",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
7
7
  "types": "lib/typescript/index.d.ts",
8
8
  "react-native": "src/index.ts",
9
9
  "source": "src/index.ts",
10
+ "exports": {
11
+ ".": {
12
+ "types": "./lib/typescript/index.d.ts",
13
+ "react-native": "./src/index.ts",
14
+ "import": "./lib/module/index.js",
15
+ "require": "./lib/commonjs/index.js",
16
+ "default": "./lib/commonjs/index.js"
17
+ },
18
+ "./deep": {
19
+ "types": "./lib/typescript/deep.d.ts",
20
+ "react-native": "./src/deep.ts",
21
+ "import": "./lib/module/deep.js",
22
+ "require": "./lib/commonjs/deep.js",
23
+ "default": "./lib/commonjs/deep.js"
24
+ },
25
+ "./package.json": "./package.json"
26
+ },
10
27
  "files": [
11
28
  "src",
12
29
  "lib",
@@ -18,6 +35,7 @@
18
35
  "test:watch": "jest --watch",
19
36
  "test:coverage": "jest --coverage",
20
37
  "typecheck": "tsc --noEmit",
38
+ "build": "bob build",
21
39
  "lint": "eslint \"**/*.{js,ts,tsx}\"",
22
40
  "lint:fix": "eslint \"**/*.{js,ts,tsx}\" --fix",
23
41
  "format": "prettier --write \"**/*.{js,ts,tsx,json,md}\"",
@@ -69,15 +87,10 @@
69
87
  },
70
88
  "peerDependencies": {
71
89
  "react": "*",
72
- "react-native": "*",
73
- "react-native-linear-gradient": ">=2.8.0",
74
- "react-native-reanimated": ">=3.0.0",
75
- "react-reconciler": ">=0.29.0"
90
+ "react-native": "*"
76
91
  },
77
- "peerDependenciesMeta": {
78
- "react-reconciler": {
79
- "optional": true
80
- }
92
+ "dependencies": {
93
+ "react-reconciler": "^0.31.0"
81
94
  },
82
95
  "devDependencies": {
83
96
  "@commitlint/config-conventional": "^18.4.3",
@@ -95,8 +108,6 @@
95
108
  "react": "18.2.0",
96
109
  "react-native": "0.73.1",
97
110
  "react-native-builder-bob": "^0.23.2",
98
- "react-native-linear-gradient": "^2.8.3",
99
- "react-native-reanimated": "^3.6.1",
100
111
  "react-reconciler": "^0.29.2",
101
112
  "react-test-renderer": "18.2.0",
102
113
  "release-it": "^17.0.1",
@@ -111,7 +122,7 @@
111
122
  "<rootDir>/lib/"
112
123
  ],
113
124
  "transformIgnorePatterns": [
114
- "node_modules/(?!(@react-native|react-native|react-native-reanimated|react-native-linear-gradient)/)"
125
+ "node_modules/(?!(@react-native|react-native)/)"
115
126
  ],
116
127
  "collectCoverageFrom": [
117
128
  "src/**/*.{ts,tsx}",