first commit

This commit is contained in:
2026-03-10 16:18:05 +00:00
commit 11f9c069b5
31635 changed files with 3187747 additions and 0 deletions

View File

@@ -0,0 +1,12 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
const SplitHost = () => {
console.warn('[RNScreens] Split component is supported only for iOS. Consider using an alternative layout for Android.');
return null;
};
var _default = exports.default = SplitHost;
//# sourceMappingURL=SplitHost.android.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["SplitHost","console","warn","_default","exports","default"],"sourceRoot":"../../../../../src","sources":["components/gamma/split/SplitHost.android.tsx"],"mappings":";;;;;;AAAA,MAAMA,SAAS,GAAGA,CAAA,KAAM;EACtBC,OAAO,CAACC,IAAI,CACV,0GACF,CAAC;EACD,OAAO,IAAI;AACb,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEaL,SAAS","ignoreList":[]}

View File

@@ -0,0 +1,71 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _reactNative = require("react-native");
var _SplitViewHostNativeComponent = _interopRequireDefault(require("../../../fabric/gamma/SplitViewHostNativeComponent"));
var _SplitScreen = _interopRequireDefault(require("./SplitScreen"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
// According to the UIKit documentation: https://developer.apple.com/documentation/uikit/uisplitviewcontroller/displaymode-swift.enum
// Only specific pairs for displayMode - splitBehavior are valid and others may lead to unexpected results.
// Therefore, we're adding check on the JS side to return a feedback to the client when that pairing isn't valid.
// However, we're not blocking these props to be set on the native side, because it doesn't crash, just the result or transitions may not work as expected.
const displayModeForSplitCompatibilityMap = {
tile: ['secondaryOnly', 'oneBesideSecondary', 'twoBesideSecondary'],
overlay: ['secondaryOnly', 'oneOverSecondary', 'twoOverSecondary'],
displace: ['secondaryOnly', 'oneBesideSecondary', 'twoDisplaceSecondary'],
automatic: [] // placeholder for satisfying types; we'll handle it specially in logic
};
const isValidDisplayModeForSplitBehavior = (displayMode, splitBehavior) => {
if (splitBehavior === 'automatic') {
// for automatic we cannot easily verify the compatibility, because it depends on the system preference for display mode, therefore we're assuming that 'automatic' has only valid combinations
return true;
}
return displayModeForSplitCompatibilityMap[splitBehavior].includes(displayMode);
};
/**
* EXPERIMENTAL API, MIGHT CHANGE W/O ANY NOTICE
*/
function SplitHost(props) {
const {
preferredDisplayMode,
preferredSplitBehavior
} = props;
_react.default.useEffect(() => {
if (preferredDisplayMode && preferredSplitBehavior) {
const isValid = isValidDisplayModeForSplitBehavior(preferredDisplayMode, preferredSplitBehavior);
if (!isValid) {
const validDisplayModes = displayModeForSplitCompatibilityMap[preferredSplitBehavior];
console.warn(`Invalid display mode "${preferredDisplayMode}" for split behavior "${preferredSplitBehavior}".` + `\nValid modes for "${preferredSplitBehavior}" are: ${validDisplayModes.join(', ')}.`);
}
}
}, [preferredDisplayMode, preferredSplitBehavior]);
const children = _react.default.Children.toArray(props.children);
const columns = children.filter(
// @ts-ignore - type is valid attribute for child
child => child.type === _SplitScreen.default.Column);
const inspectors = children.filter(
// @ts-ignore - type is valid attribute for child
child => child.type === _SplitScreen.default.Inspector);
return /*#__PURE__*/_react.default.createElement(_SplitViewHostNativeComponent.default
// UISplitViewController requires the number of columns to be specified at initialization and it cannot be changed dynamically later.
// By using a specific key in this form, we can detect changes in the number of React children.
// This enables us to fully recreate the SplitView when necessary, ensuring the correct column configuration is always applied.
, _extends({
key: `columns-${columns.length}-inspectors-${inspectors.length}`
}, props, {
style: styles.container
}), props.children);
}
const styles = _reactNative.StyleSheet.create({
container: {
flex: 1
}
});
var _default = exports.default = SplitHost;
//# sourceMappingURL=SplitHost.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_SplitViewHostNativeComponent","_SplitScreen","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","displayModeForSplitCompatibilityMap","tile","overlay","displace","automatic","isValidDisplayModeForSplitBehavior","displayMode","splitBehavior","includes","SplitHost","props","preferredDisplayMode","preferredSplitBehavior","React","useEffect","isValid","validDisplayModes","console","warn","join","children","Children","toArray","columns","filter","child","type","SplitScreen","Column","inspectors","Inspector","createElement","key","style","styles","container","StyleSheet","create","flex","_default","exports"],"sourceRoot":"../../../../../src","sources":["components/gamma/split/SplitHost.tsx"],"mappings":"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","ignoreList":[]}

View File

@@ -0,0 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
//# sourceMappingURL=SplitHost.types.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["components/gamma/split/SplitHost.types.ts"],"mappings":"","ignoreList":[]}

View File

@@ -0,0 +1,12 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
const SplitHost = () => {
console.warn('[RNScreens] Split component is supported only for iOS. Consider using an alternative layout for Web.');
return null;
};
var _default = exports.default = SplitHost;
//# sourceMappingURL=SplitHost.web.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["SplitHost","console","warn","_default","exports","default"],"sourceRoot":"../../../../../src","sources":["components/gamma/split/SplitHost.web.tsx"],"mappings":";;;;;;AAAA,MAAMA,SAAS,GAAGA,CAAA,KAAM;EACtBC,OAAO,CAACC,IAAI,CACV,sGACF,CAAC;EACD,OAAO,IAAI;AACb,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEaL,SAAS","ignoreList":[]}

View File

@@ -0,0 +1,17 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
const NOOP = () => {
console.warn('[RNScreens] Split component is supported only for iOS. Consider using an alternative layout for Android.');
return null;
};
const Column = NOOP;
const Inspector = NOOP;
var _default = exports.default = {
Column,
Inspector
};
//# sourceMappingURL=SplitScreen.android.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["NOOP","console","warn","Column","Inspector","_default","exports","default"],"sourceRoot":"../../../../../src","sources":["components/gamma/split/SplitScreen.android.tsx"],"mappings":";;;;;;AAAA,MAAMA,IAAI,GAAGA,CAAA,KAAM;EACjBC,OAAO,CAACC,IAAI,CACV,0GACF,CAAC;EACD,OAAO,IAAI;AACb,CAAC;AAED,MAAMC,MAAM,GAAGH,IAAI;AACnB,MAAMI,SAAS,GAAGJ,IAAI;AAAC,IAAAK,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAER;EAAEJ,MAAM;EAAEC;AAAU,CAAC","ignoreList":[]}

View File

@@ -0,0 +1,43 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _reactNative = require("react-native");
var _SplitViewScreenNativeComponent = _interopRequireDefault(require("../../../fabric/gamma/SplitViewScreenNativeComponent"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
/**
* EXPERIMENTAL API, MIGHT CHANGE W/O ANY NOTICE
*/
function Column(props) {
return /*#__PURE__*/_react.default.createElement(_SplitViewScreenNativeComponent.default, _extends({
columnType: "column"
}, props, {
style: _reactNative.StyleSheet.absoluteFill
}), props.children);
}
/**
* EXPERIMENTAL API, MIGHT CHANGE W/O ANY NOTICE
*/
function Inspector(props) {
return /*#__PURE__*/_react.default.createElement(_SplitViewScreenNativeComponent.default, _extends({
columnType: "inspector"
}, props, {
style: _reactNative.StyleSheet.absoluteFill
}), props.children);
}
/**
* EXPERIMENTAL API, MIGHT CHANGE W/O ANY NOTICE
*/
// TODO: refactor to drop `Screen` suffix as the API name is really long at the moment
const SplitScreen = {
Column,
Inspector
};
var _default = exports.default = SplitScreen;
//# sourceMappingURL=SplitScreen.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_SplitViewScreenNativeComponent","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","Column","props","createElement","columnType","style","StyleSheet","absoluteFill","children","Inspector","SplitScreen","_default","exports"],"sourceRoot":"../../../../../src","sources":["components/gamma/split/SplitScreen.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,+BAAA,GAAAH,sBAAA,CAAAC,OAAA;AAAkG,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,SAAA,WAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,CAAA,aAAAP,CAAA,MAAAA,CAAA,GAAAQ,SAAA,CAAAC,MAAA,EAAAT,CAAA,UAAAU,CAAA,GAAAF,SAAA,CAAAR,CAAA,YAAAW,CAAA,IAAAD,CAAA,OAAAE,cAAA,CAAAC,IAAA,CAAAH,CAAA,EAAAC,CAAA,MAAAJ,CAAA,CAAAI,CAAA,IAAAD,CAAA,CAAAC,CAAA,aAAAJ,CAAA,KAAAJ,QAAA,CAAAW,KAAA,OAAAN,SAAA;AAGlG;AACA;AACA;AACA,SAASO,MAAMA,CAACC,KAAuB,EAAE;EACvC,oBACErB,MAAA,CAAAO,OAAA,CAAAe,aAAA,CAAClB,+BAAA,CAAAG,OAA8B,EAAAC,QAAA;IAC7Be,UAAU,EAAC;EAAQ,GACfF,KAAK;IACTG,KAAK,EAAEC,uBAAU,CAACC;EAAa,IAC9BL,KAAK,CAACM,QACuB,CAAC;AAErC;;AAEA;AACA;AACA;AACA,SAASC,SAASA,CAACP,KAAuB,EAAE;EAC1C,oBACErB,MAAA,CAAAO,OAAA,CAAAe,aAAA,CAAClB,+BAAA,CAAAG,OAA8B,EAAAC,QAAA;IAC7Be,UAAU,EAAC;EAAW,GAClBF,KAAK;IACTG,KAAK,EAAEC,uBAAU,CAACC;EAAa,IAC9BL,KAAK,CAACM,QACuB,CAAC;AAErC;;AAEA;AACA;AACA;AACA;AACA,MAAME,WAAW,GAAG;EAClBT,MAAM;EACNQ;AACF,CAAC;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAxB,OAAA,GAEasB,WAAW","ignoreList":[]}

View File

@@ -0,0 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
//# sourceMappingURL=SplitScreen.types.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["components/gamma/split/SplitScreen.types.ts"],"mappings":"","ignoreList":[]}

View File

@@ -0,0 +1,23 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
const NOOP = () => {
console.warn('[RNScreens] Split component is supported only for iOS. Consider using an alternative layout for Web.');
return null;
};
const Column = NOOP;
const Inspector = NOOP;
/**
* EXPERIMENTAL API, MIGHT CHANGE W/O ANY NOTICE
*/
// TODO: refactor to drop `Screen` suffix as the API name is really long at the moment
const SplitScreen = {
Column,
Inspector
};
var _default = exports.default = SplitScreen;
//# sourceMappingURL=SplitScreen.web.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["NOOP","console","warn","Column","Inspector","SplitScreen","_default","exports","default"],"sourceRoot":"../../../../../src","sources":["components/gamma/split/SplitScreen.web.tsx"],"mappings":";;;;;;AAAA,MAAMA,IAAI,GAAGA,CAAA,KAAM;EACjBC,OAAO,CAACC,IAAI,CACV,sGACF,CAAC;EACD,OAAO,IAAI;AACb,CAAC;AAED,MAAMC,MAAM,GAAGH,IAAI;AACnB,MAAMI,SAAS,GAAGJ,IAAI;;AAEtB;AACA;AACA;AACA;AACA,MAAMK,WAAW,GAAG;EAClBF,MAAM;EACNC;AACF,CAAC;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEaH,WAAW","ignoreList":[]}

View File

@@ -0,0 +1,44 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _exportNames = {};
exports.default = void 0;
var _SplitHost = _interopRequireDefault(require("./SplitHost"));
var _SplitScreen = _interopRequireDefault(require("./SplitScreen"));
var _SplitHost2 = require("./SplitHost.types");
Object.keys(_SplitHost2).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _SplitHost2[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _SplitHost2[key];
}
});
});
var _SplitScreen2 = require("./SplitScreen.types");
Object.keys(_SplitScreen2).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _SplitScreen2[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _SplitScreen2[key];
}
});
});
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
/**
* EXPERIMENTAL API, MIGHT CHANGE W/O ANY NOTICE
*/
const Split = {
Host: _SplitHost.default,
Column: _SplitScreen.default.Column,
Inspector: _SplitScreen.default.Inspector
};
var _default = exports.default = Split;
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["_SplitHost","_interopRequireDefault","require","_SplitScreen","_SplitHost2","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_SplitScreen2","e","__esModule","default","Split","Host","SplitHost","Column","SplitScreen","Inspector","_default"],"sourceRoot":"../../../../../src","sources":["components/gamma/split/index.ts"],"mappings":";;;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,WAAA,GAAAF,OAAA;AAAAG,MAAA,CAAAC,IAAA,CAAAF,WAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,WAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,WAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,aAAA,GAAAf,OAAA;AAAAG,MAAA,CAAAC,IAAA,CAAAW,aAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,aAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,aAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AAAoC,SAAAP,uBAAAiB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEpC;AACA;AACA;AACA,MAAMG,KAAK,GAAG;EACZC,IAAI,EAAEC,kBAAS;EACfC,MAAM,EAAEC,oBAAW,CAACD,MAAM;EAC1BE,SAAS,EAAED,oBAAW,CAACC;AACzB,CAAC;AAAC,IAAAC,QAAA,GAAAd,OAAA,CAAAO,OAAA,GAEaC,KAAK","ignoreList":[]}