one 1.2.6 → 1.2.8

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 (142) hide show
  1. package/dist/cjs/ui/Slot.cjs +42 -0
  2. package/dist/cjs/ui/Slot.js +27 -0
  3. package/dist/cjs/ui/Slot.js.map +6 -0
  4. package/dist/cjs/ui/Slot.native.js +48 -0
  5. package/dist/cjs/ui/Slot.native.js.map +1 -0
  6. package/dist/cjs/ui/TabContext.cjs +44 -0
  7. package/dist/cjs/ui/TabContext.js +35 -0
  8. package/dist/cjs/ui/TabContext.js.map +6 -0
  9. package/dist/cjs/ui/TabContext.native.js +47 -0
  10. package/dist/cjs/ui/TabContext.native.js.map +1 -0
  11. package/dist/cjs/ui/TabList.cjs +52 -0
  12. package/dist/cjs/ui/TabList.js +38 -0
  13. package/dist/cjs/ui/TabList.js.map +6 -0
  14. package/dist/cjs/ui/TabList.native.js +57 -0
  15. package/dist/cjs/ui/TabList.native.js.map +1 -0
  16. package/dist/cjs/ui/TabRouter.cjs +47 -0
  17. package/dist/cjs/ui/TabRouter.js +41 -0
  18. package/dist/cjs/ui/TabRouter.js.map +6 -0
  19. package/dist/cjs/ui/TabRouter.native.js +57 -0
  20. package/dist/cjs/ui/TabRouter.native.js.map +1 -0
  21. package/dist/cjs/ui/TabSlot.cjs +115 -0
  22. package/dist/cjs/ui/TabSlot.js +91 -0
  23. package/dist/cjs/ui/TabSlot.js.map +6 -0
  24. package/dist/cjs/ui/TabSlot.native.js +120 -0
  25. package/dist/cjs/ui/TabSlot.native.js.map +1 -0
  26. package/dist/cjs/ui/TabTrigger.cjs +151 -0
  27. package/dist/cjs/ui/TabTrigger.js +120 -0
  28. package/dist/cjs/ui/TabTrigger.js.map +6 -0
  29. package/dist/cjs/ui/TabTrigger.native.js +153 -0
  30. package/dist/cjs/ui/TabTrigger.native.js.map +1 -0
  31. package/dist/cjs/ui/Tabs.cjs +175 -0
  32. package/dist/cjs/ui/Tabs.js +121 -0
  33. package/dist/cjs/ui/Tabs.js.map +6 -0
  34. package/dist/cjs/ui/Tabs.native.js +191 -0
  35. package/dist/cjs/ui/Tabs.native.js.map +1 -0
  36. package/dist/cjs/ui/common.cjs +160 -0
  37. package/dist/cjs/ui/common.js +146 -0
  38. package/dist/cjs/ui/common.js.map +6 -0
  39. package/dist/cjs/ui/common.native.js +223 -0
  40. package/dist/cjs/ui/common.native.js.map +1 -0
  41. package/dist/cjs/ui/index.cjs +18 -0
  42. package/dist/cjs/ui/index.js +15 -0
  43. package/dist/cjs/ui/index.js.map +6 -0
  44. package/dist/cjs/ui/index.native.js +21 -0
  45. package/dist/cjs/ui/index.native.js.map +1 -0
  46. package/dist/cjs/ui/useComponent.cjs +46 -0
  47. package/dist/cjs/ui/useComponent.js +37 -0
  48. package/dist/cjs/ui/useComponent.js.map +6 -0
  49. package/dist/cjs/ui/useComponent.native.js +53 -0
  50. package/dist/cjs/ui/useComponent.native.js.map +1 -0
  51. package/dist/esm/ui/Slot.js +17 -0
  52. package/dist/esm/ui/Slot.js.map +6 -0
  53. package/dist/esm/ui/Slot.mjs +19 -0
  54. package/dist/esm/ui/Slot.mjs.map +1 -0
  55. package/dist/esm/ui/Slot.native.js +22 -0
  56. package/dist/esm/ui/Slot.native.js.map +1 -0
  57. package/dist/esm/ui/TabContext.js +19 -0
  58. package/dist/esm/ui/TabContext.js.map +6 -0
  59. package/dist/esm/ui/TabContext.mjs +17 -0
  60. package/dist/esm/ui/TabContext.mjs.map +1 -0
  61. package/dist/esm/ui/TabContext.native.js +17 -0
  62. package/dist/esm/ui/TabContext.native.js.map +1 -0
  63. package/dist/esm/ui/TabList.js +24 -0
  64. package/dist/esm/ui/TabList.js.map +6 -0
  65. package/dist/esm/ui/TabList.mjs +28 -0
  66. package/dist/esm/ui/TabList.mjs.map +1 -0
  67. package/dist/esm/ui/TabList.native.js +30 -0
  68. package/dist/esm/ui/TabList.native.js.map +1 -0
  69. package/dist/esm/ui/TabRouter.js +27 -0
  70. package/dist/esm/ui/TabRouter.js.map +6 -0
  71. package/dist/esm/ui/TabRouter.mjs +24 -0
  72. package/dist/esm/ui/TabRouter.mjs.map +1 -0
  73. package/dist/esm/ui/TabRouter.native.js +31 -0
  74. package/dist/esm/ui/TabRouter.native.js.map +1 -0
  75. package/dist/esm/ui/TabSlot.js +80 -0
  76. package/dist/esm/ui/TabSlot.js.map +6 -0
  77. package/dist/esm/ui/TabSlot.mjs +89 -0
  78. package/dist/esm/ui/TabSlot.mjs.map +1 -0
  79. package/dist/esm/ui/TabSlot.native.js +91 -0
  80. package/dist/esm/ui/TabSlot.native.js.map +1 -0
  81. package/dist/esm/ui/TabTrigger.js +115 -0
  82. package/dist/esm/ui/TabTrigger.js.map +6 -0
  83. package/dist/esm/ui/TabTrigger.mjs +126 -0
  84. package/dist/esm/ui/TabTrigger.mjs.map +1 -0
  85. package/dist/esm/ui/TabTrigger.native.js +125 -0
  86. package/dist/esm/ui/TabTrigger.native.js.map +1 -0
  87. package/dist/esm/ui/Tabs.js +130 -0
  88. package/dist/esm/ui/Tabs.js.map +6 -0
  89. package/dist/esm/ui/Tabs.mjs +149 -0
  90. package/dist/esm/ui/Tabs.mjs.map +1 -0
  91. package/dist/esm/ui/Tabs.native.js +162 -0
  92. package/dist/esm/ui/Tabs.native.js.map +1 -0
  93. package/dist/esm/ui/common.js +133 -0
  94. package/dist/esm/ui/common.js.map +6 -0
  95. package/dist/esm/ui/common.mjs +135 -0
  96. package/dist/esm/ui/common.mjs.map +1 -0
  97. package/dist/esm/ui/common.native.js +195 -0
  98. package/dist/esm/ui/common.native.js.map +1 -0
  99. package/dist/esm/ui/index.js +2 -0
  100. package/dist/esm/ui/index.js.map +6 -0
  101. package/dist/esm/ui/index.mjs +2 -0
  102. package/dist/esm/ui/index.mjs.map +1 -0
  103. package/dist/esm/ui/index.native.js +2 -0
  104. package/dist/esm/ui/index.native.js.map +1 -0
  105. package/dist/esm/ui/useComponent.js +22 -0
  106. package/dist/esm/ui/useComponent.js.map +6 -0
  107. package/dist/esm/ui/useComponent.mjs +23 -0
  108. package/dist/esm/ui/useComponent.mjs.map +1 -0
  109. package/dist/esm/ui/useComponent.native.js +27 -0
  110. package/dist/esm/ui/useComponent.native.js.map +1 -0
  111. package/package.json +18 -9
  112. package/src/ui/README.md +121 -0
  113. package/src/ui/Slot.tsx +34 -0
  114. package/src/ui/TabContext.tsx +115 -0
  115. package/src/ui/TabList.tsx +47 -0
  116. package/src/ui/TabRouter.tsx +79 -0
  117. package/src/ui/TabSlot.tsx +170 -0
  118. package/src/ui/TabTrigger.tsx +282 -0
  119. package/src/ui/Tabs.tsx +313 -0
  120. package/src/ui/common.tsx +277 -0
  121. package/src/ui/index.ts +1 -0
  122. package/src/ui/useComponent.tsx +42 -0
  123. package/types/ui/Slot.d.ts +6 -0
  124. package/types/ui/Slot.d.ts.map +1 -0
  125. package/types/ui/TabContext.d.ts +190 -0
  126. package/types/ui/TabContext.d.ts.map +1 -0
  127. package/types/ui/TabList.d.ts +25 -0
  128. package/types/ui/TabList.d.ts.map +1 -0
  129. package/types/ui/TabRouter.d.ts +103 -0
  130. package/types/ui/TabRouter.d.ts.map +1 -0
  131. package/types/ui/TabSlot.d.ts +73 -0
  132. package/types/ui/TabSlot.d.ts.map +1 -0
  133. package/types/ui/TabTrigger.d.ts +88 -0
  134. package/types/ui/TabTrigger.d.ts.map +1 -0
  135. package/types/ui/Tabs.d.ts +255 -0
  136. package/types/ui/Tabs.d.ts.map +1 -0
  137. package/types/ui/common.d.ts +40 -0
  138. package/types/ui/common.d.ts.map +1 -0
  139. package/types/ui/index.d.ts +2 -0
  140. package/types/ui/index.d.ts.map +1 -0
  141. package/types/ui/useComponent.d.ts +10 -0
  142. package/types/ui/useComponent.d.ts.map +1 -0
@@ -0,0 +1,115 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: !0
9
+ });
10
+ },
11
+ __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
13
+ get: () => from[key],
14
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
+ });
16
+ return to;
17
+ };
18
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
19
+ value: !0
20
+ }), mod);
21
+ var TabSlot_exports = {};
22
+ __export(TabSlot_exports, {
23
+ TabSlot: () => TabSlot,
24
+ defaultTabsSlotRender: () => defaultTabsSlotRender,
25
+ isTabSlot: () => isTabSlot,
26
+ useTabSlot: () => useTabSlot
27
+ });
28
+ module.exports = __toCommonJS(TabSlot_exports);
29
+ var import_react = require("react"),
30
+ import_react_native = require("react-native-web"),
31
+ import_react_native_screens = require("react-native-screens"),
32
+ import_TabContext = require("./TabContext.cjs"),
33
+ import_Navigator = require("../views/Navigator.cjs"),
34
+ import_jsx_runtime = require("react/jsx-runtime");
35
+ function useTabSlot({
36
+ detachInactiveScreens = ["android", "ios", "web"].includes(import_react_native.Platform.OS),
37
+ style,
38
+ renderFn = defaultTabsSlotRender
39
+ } = {}) {
40
+ const {
41
+ state,
42
+ descriptors
43
+ } = (0, import_Navigator.useNavigatorContext)(),
44
+ focusedRouteKey = state.routes[state.index].key,
45
+ [loaded, setLoaded] = (0, import_react.useState)({
46
+ [focusedRouteKey]: !0
47
+ });
48
+ return loaded[focusedRouteKey] || setLoaded({
49
+ ...loaded,
50
+ [focusedRouteKey]: !0
51
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react_native_screens.ScreenContainer, {
52
+ enabled: detachInactiveScreens,
53
+ hasTwoStates: !0,
54
+ style: [styles.screenContainer, style],
55
+ children: state.routes.map((route, index) => {
56
+ const descriptor = descriptors[route.key];
57
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_TabContext.TabContext.Provider, {
58
+ value: descriptor.options,
59
+ children: renderFn(descriptor, {
60
+ index,
61
+ isFocused: state.index === index,
62
+ loaded: loaded[route.key],
63
+ detachInactiveScreens
64
+ })
65
+ }, descriptor.route.key);
66
+ })
67
+ });
68
+ }
69
+ function TabSlot(props) {
70
+ return useTabSlot(props);
71
+ }
72
+ function defaultTabsSlotRender(descriptor, {
73
+ isFocused,
74
+ loaded,
75
+ detachInactiveScreens
76
+ }) {
77
+ const {
78
+ lazy = !0,
79
+ unmountOnBlur,
80
+ freezeOnBlur
81
+ } = descriptor.options;
82
+ return unmountOnBlur && !isFocused || lazy && !loaded && !isFocused ? null : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react_native_screens.Screen, {
83
+ enabled: detachInactiveScreens,
84
+ activityState: isFocused ? 2 : 0,
85
+ freezeOnBlur,
86
+ style: [styles.screen, isFocused ? styles.focused : styles.unfocused],
87
+ children: descriptor.render()
88
+ }, descriptor.route.key);
89
+ }
90
+ function isTabSlot(child) {
91
+ return child.type === TabSlot;
92
+ }
93
+ const styles = import_react_native.StyleSheet.create({
94
+ screen: {
95
+ flex: 1,
96
+ position: "relative",
97
+ height: "100%"
98
+ },
99
+ screenContainer: {
100
+ flexShrink: 0,
101
+ flexGrow: 1
102
+ },
103
+ focused: {
104
+ zIndex: 1,
105
+ display: "flex",
106
+ flexShrink: 0,
107
+ flexGrow: 1
108
+ },
109
+ unfocused: {
110
+ zIndex: -1,
111
+ display: "none",
112
+ flexShrink: 1,
113
+ flexGrow: 0
114
+ }
115
+ });
@@ -0,0 +1,91 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: !0 });
8
+ }, __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from == "object" || typeof from == "function")
10
+ for (let key of __getOwnPropNames(from))
11
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
15
+ var TabSlot_exports = {};
16
+ __export(TabSlot_exports, {
17
+ TabSlot: () => TabSlot,
18
+ defaultTabsSlotRender: () => defaultTabsSlotRender,
19
+ isTabSlot: () => isTabSlot,
20
+ useTabSlot: () => useTabSlot
21
+ });
22
+ module.exports = __toCommonJS(TabSlot_exports);
23
+ var import_react = require("react"), import_react_native = require("react-native-web"), import_react_native_screens = require("react-native-screens"), import_TabContext = require("./TabContext"), import_Navigator = require("../views/Navigator"), import_jsx_runtime = require("react/jsx-runtime");
24
+ function useTabSlot({
25
+ detachInactiveScreens = ["android", "ios", "web"].includes(import_react_native.Platform.OS),
26
+ style,
27
+ renderFn = defaultTabsSlotRender
28
+ } = {}) {
29
+ const { state, descriptors } = (0, import_Navigator.useNavigatorContext)(), focusedRouteKey = state.routes[state.index].key, [loaded, setLoaded] = (0, import_react.useState)({ [focusedRouteKey]: !0 });
30
+ return loaded[focusedRouteKey] || setLoaded({ ...loaded, [focusedRouteKey]: !0 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
31
+ import_react_native_screens.ScreenContainer,
32
+ {
33
+ enabled: detachInactiveScreens,
34
+ hasTwoStates: !0,
35
+ style: [styles.screenContainer, style],
36
+ children: state.routes.map((route, index) => {
37
+ const descriptor = descriptors[route.key];
38
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_TabContext.TabContext.Provider, { value: descriptor.options, children: renderFn(descriptor, {
39
+ index,
40
+ isFocused: state.index === index,
41
+ loaded: loaded[route.key],
42
+ detachInactiveScreens
43
+ }) }, descriptor.route.key);
44
+ })
45
+ }
46
+ );
47
+ }
48
+ function TabSlot(props) {
49
+ return useTabSlot(props);
50
+ }
51
+ function defaultTabsSlotRender(descriptor, { isFocused, loaded, detachInactiveScreens }) {
52
+ const { lazy = !0, unmountOnBlur, freezeOnBlur } = descriptor.options;
53
+ return unmountOnBlur && !isFocused || lazy && !loaded && !isFocused ? null : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
54
+ import_react_native_screens.Screen,
55
+ {
56
+ enabled: detachInactiveScreens,
57
+ activityState: isFocused ? 2 : 0,
58
+ freezeOnBlur,
59
+ style: [styles.screen, isFocused ? styles.focused : styles.unfocused],
60
+ children: descriptor.render()
61
+ },
62
+ descriptor.route.key
63
+ );
64
+ }
65
+ function isTabSlot(child) {
66
+ return child.type === TabSlot;
67
+ }
68
+ const styles = import_react_native.StyleSheet.create({
69
+ screen: {
70
+ flex: 1,
71
+ position: "relative",
72
+ height: "100%"
73
+ },
74
+ screenContainer: {
75
+ flexShrink: 0,
76
+ flexGrow: 1
77
+ },
78
+ focused: {
79
+ zIndex: 1,
80
+ display: "flex",
81
+ flexShrink: 0,
82
+ flexGrow: 1
83
+ },
84
+ unfocused: {
85
+ zIndex: -1,
86
+ display: "none",
87
+ flexShrink: 1,
88
+ flexGrow: 0
89
+ }
90
+ });
91
+ //# sourceMappingURL=TabSlot.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/ui/TabSlot.tsx"],
4
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAiE,kBACjE,sBAAqC,yBACrC,8BAAwC,iCAExC,oBAAgD,yBAEhD,mBAAoC,+BAsE1B;AAvBH,SAAS,WAAW;AAAA,EACzB,wBAAwB,CAAC,WAAW,OAAO,KAAK,EAAE,SAAS,6BAAS,EAAE;AAAA,EACtE;AAAA,EACA,WAAW;AACb,IAAkB,CAAC,GAAG;AACpB,QAAM,EAAE,OAAO,YAAY,QAAI,sCAAoB,GAC7C,kBAAkB,MAAM,OAAO,MAAM,KAAK,EAAE,KAC5C,CAAC,QAAQ,SAAS,QAAI,uBAAS,EAAE,CAAC,eAAe,GAAG,GAAK,CAAC;AAEhE,SAAK,OAAO,eAAe,KACzB,UAAU,EAAE,GAAG,QAAQ,CAAC,eAAe,GAAG,GAAK,CAAC,GAIhD;AAAA,IAAC;AAAA;AAAA,MACC,SAAS;AAAA,MACT,cAAY;AAAA,MACZ,OAAO,CAAC,OAAO,iBAAiB,KAAK;AAAA,MAEpC,gBAAM,OAAO,IAAI,CAAC,OAAO,UAAU;AAClC,cAAM,aAAa,YAAY,MAAM,GAAG;AAExC,eACE,4CAAC,6BAAW,UAAX,EAA+C,OAAO,WAAW,SAC/D,mBAAS,YAAY;AAAA,UACpB;AAAA,UACA,WAAW,MAAM,UAAU;AAAA,UAC3B,QAAQ,OAAO,MAAM,GAAG;AAAA,UACxB;AAAA,QACF,CAAC,KANuB,WAAW,MAAM,GAO3C;AAAA,MAEJ,CAAC;AAAA;AAAA,EACH;AAEJ;AAiBO,SAAS,QAAQ,OAAqB;AAC3C,SAAO,WAAW,KAAK;AACzB;AAKO,SAAS,sBACd,YACA,EAAE,WAAW,QAAQ,sBAAsB,GAC3C;AACA,QAAM,EAAE,OAAO,IAAM,eAAe,aAAa,IAAI,WAAW;AAMhE,SAJI,iBAAiB,CAAC,aAIlB,QAAQ,CAAC,UAAU,CAAC,YAEf,OAIP;AAAA,IAAC;AAAA;AAAA,MAEC,SAAS;AAAA,MACT,eAAe,YAAY,IAAI;AAAA,MAC/B;AAAA,MACA,OAAO,CAAC,OAAO,QAAQ,YAAY,OAAO,UAAU,OAAO,SAAS;AAAA,MAEnE,qBAAW,OAAO;AAAA;AAAA,IANd,WAAW,MAAM;AAAA,EAOxB;AAEJ;AAKO,SAAS,UAAU,OAA+D;AACvF,SAAO,MAAM,SAAS;AACxB;AAEA,MAAM,SAAS,+BAAW,OAAO;AAAA,EAC/B,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,UAAU;AAAA,IACV,QAAQ;AAAA,EACV;AAAA,EACA,iBAAiB;AAAA,IACf,YAAY;AAAA,IACZ,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,UAAU;AAAA,EACZ;AAAA,EACA,WAAW;AAAA,IACT,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,UAAU;AAAA,EACZ;AACF,CAAC;",
5
+ "names": []
6
+ }
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: !0
11
+ });
12
+ },
13
+ __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
15
+ get: () => from[key],
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ return to;
19
+ };
20
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
+ value: !0
22
+ }), mod);
23
+ var TabSlot_exports = {};
24
+ __export(TabSlot_exports, {
25
+ TabSlot: () => TabSlot,
26
+ defaultTabsSlotRender: () => defaultTabsSlotRender,
27
+ isTabSlot: () => isTabSlot,
28
+ useTabSlot: () => useTabSlot
29
+ });
30
+ module.exports = __toCommonJS(TabSlot_exports);
31
+ var import_jsx_runtime = require("react/jsx-runtime"),
32
+ import_react = require("react"),
33
+ import_react_native = require("react-native"),
34
+ import_react_native_screens = require("react-native-screens"),
35
+ import_TabContext = require("./TabContext.native.js"),
36
+ import_Navigator = require("../views/Navigator.native.js");
37
+ function useTabSlot() {
38
+ var {
39
+ detachInactiveScreens = ["android", "ios", "web"].includes(import_react_native.Platform.OS),
40
+ style,
41
+ renderFn = defaultTabsSlotRender
42
+ } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {},
43
+ {
44
+ state,
45
+ descriptors
46
+ } = (0, import_Navigator.useNavigatorContext)(),
47
+ focusedRouteKey = state.routes[state.index].key,
48
+ [loaded, setLoaded] = (0, import_react.useState)({
49
+ [focusedRouteKey]: !0
50
+ });
51
+ return loaded[focusedRouteKey] || setLoaded({
52
+ ...loaded,
53
+ [focusedRouteKey]: !0
54
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react_native_screens.ScreenContainer, {
55
+ enabled: detachInactiveScreens,
56
+ hasTwoStates: !0,
57
+ style: [styles.screenContainer, style],
58
+ children: state.routes.map(function (route, index) {
59
+ var descriptor = descriptors[route.key];
60
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_TabContext.TabContext.Provider, {
61
+ value: descriptor.options,
62
+ children: renderFn(descriptor, {
63
+ index,
64
+ isFocused: state.index === index,
65
+ loaded: loaded[route.key],
66
+ detachInactiveScreens
67
+ })
68
+ }, descriptor.route.key);
69
+ })
70
+ });
71
+ }
72
+ function TabSlot(props) {
73
+ return useTabSlot(props);
74
+ }
75
+ function defaultTabsSlotRender(descriptor, param) {
76
+ var {
77
+ isFocused,
78
+ loaded,
79
+ detachInactiveScreens
80
+ } = param,
81
+ {
82
+ lazy = !0,
83
+ unmountOnBlur,
84
+ freezeOnBlur
85
+ } = descriptor.options;
86
+ return unmountOnBlur && !isFocused || lazy && !loaded && !isFocused ? null : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react_native_screens.Screen, {
87
+ enabled: detachInactiveScreens,
88
+ activityState: isFocused ? 2 : 0,
89
+ freezeOnBlur,
90
+ style: [styles.screen, isFocused ? styles.focused : styles.unfocused],
91
+ children: descriptor.render()
92
+ }, descriptor.route.key);
93
+ }
94
+ function isTabSlot(child) {
95
+ return child.type === TabSlot;
96
+ }
97
+ var styles = import_react_native.StyleSheet.create({
98
+ screen: {
99
+ flex: 1,
100
+ position: "relative",
101
+ height: "100%"
102
+ },
103
+ screenContainer: {
104
+ flexShrink: 0,
105
+ flexGrow: 1
106
+ },
107
+ focused: {
108
+ zIndex: 1,
109
+ display: "flex",
110
+ flexShrink: 0,
111
+ flexGrow: 1
112
+ },
113
+ unfocused: {
114
+ zIndex: -1,
115
+ display: "none",
116
+ flexShrink: 1,
117
+ flexGrow: 0
118
+ }
119
+ });
120
+ //# sourceMappingURL=TabSlot.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","TabSlot_exports","__export","TabSlot","defaultTabsSlotRender","isTabSlot","useTabSlot","module","exports","import_jsx_runtime","require","import_react","import_react_native","import_react_native_screens","import_TabContext","import_Navigator","detachInactiveScreens","includes","Platform","OS","style","renderFn","arguments","length","state","descriptors","useNavigatorContext","focusedRouteKey","routes","index","key","loaded","setLoaded","useState","jsx","ScreenContainer","enabled","hasTwoStates","styles","screenContainer","children","map","route","descriptor","TabContext","Provider","options","isFocused","props","param","lazy","unmountOnBlur","freezeOnBlur","Screen","activityState","screen","focused","unfocused","render","child","type","StyleSheet","create","flex","position","height","flexShrink","flexGrow","zIndex","display"],"sources":["../../../src/ui/TabSlot.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,151 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: !0
9
+ });
10
+ },
11
+ __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
13
+ get: () => from[key],
14
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
+ });
16
+ return to;
17
+ };
18
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
19
+ value: !0
20
+ }), mod);
21
+ var TabTrigger_exports = {};
22
+ __export(TabTrigger_exports, {
23
+ TabTrigger: () => TabTrigger,
24
+ isTabTrigger: () => isTabTrigger,
25
+ useTabTrigger: () => useTabTrigger
26
+ });
27
+ module.exports = __toCommonJS(TabTrigger_exports);
28
+ var import_react_slot = require("@radix-ui/react-slot"),
29
+ import_react = require("react"),
30
+ import_react_native = require("react-native-web"),
31
+ import_TabContext = require("./TabContext.cjs"),
32
+ import_getPathFromState_mods = require("../fork/getPathFromState-mods.cjs"),
33
+ import_imperative_api = require("../router/imperative-api.cjs"),
34
+ import_matchers = require("../router/matchers.cjs"),
35
+ import_Navigator = require("../views/Navigator.cjs"),
36
+ import_jsx_runtime = require("react/jsx-runtime");
37
+ const TabTriggerSlot = import_react_slot.Slot;
38
+ function shouldHandleMouseEvent(e) {
39
+ return e && "button" in e ? !e.metaKey && !e.altKey && !e.ctrlKey && !e.shiftKey && (e.button == null || e.button === 0) && [void 0, null, "", "self"].includes(e.currentTarget.target) : !0;
40
+ }
41
+ function TabTrigger({
42
+ asChild,
43
+ name,
44
+ href,
45
+ resetOnFocus,
46
+ ...props
47
+ }) {
48
+ const {
49
+ trigger,
50
+ triggerProps
51
+ } = useTabTrigger({
52
+ name,
53
+ resetOnFocus,
54
+ ...props
55
+ });
56
+ if (asChild) return /* @__PURE__ */(0, import_jsx_runtime.jsx)(TabTriggerSlot, {
57
+ style: styles.tabTrigger,
58
+ ...props,
59
+ ...triggerProps,
60
+ href: trigger?.resolvedHref,
61
+ children: props.children
62
+ });
63
+ {
64
+ const reactNativeWebProps = {
65
+ href: trigger?.resolvedHref
66
+ };
67
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react_native.Pressable, {
68
+ style: styles.tabTrigger,
69
+ ...reactNativeWebProps,
70
+ ...props,
71
+ ...triggerProps,
72
+ children: props.children
73
+ });
74
+ }
75
+ }
76
+ function isTabTrigger(child) {
77
+ return child.type === TabTrigger;
78
+ }
79
+ function useTabTrigger(options) {
80
+ const {
81
+ state,
82
+ navigation
83
+ } = (0, import_Navigator.useNavigatorContext)(),
84
+ {
85
+ name,
86
+ resetOnFocus,
87
+ onPress,
88
+ onLongPress
89
+ } = options,
90
+ triggerMap = (0, import_react.use)(import_TabContext.TabTriggerMapContext),
91
+ getTrigger = (0, import_react.useCallback)(name2 => {
92
+ const config = triggerMap[name2];
93
+ if (config) return {
94
+ isFocused: state.index === config.index,
95
+ route: state.routes[config.index],
96
+ resolvedHref: (0, import_matchers.stripGroupSegmentsFromPath)((0, import_getPathFromState_mods.appendBaseUrl)(config.href)),
97
+ ...config
98
+ };
99
+ }, [triggerMap, state]),
100
+ trigger = name !== void 0 ? getTrigger(name) : void 0,
101
+ switchTab = (0, import_react.useCallback)((name2, options2) => {
102
+ const config = triggerMap[name2];
103
+ return config ? config.type === "external" ? import_imperative_api.router.navigate(config.href) : navigation?.dispatch({
104
+ ...config.action,
105
+ type: "JUMP_TO",
106
+ payload: {
107
+ ...config.action.payload,
108
+ ...options2
109
+ }
110
+ }) : navigation?.dispatch({
111
+ type: "JUMP_TO",
112
+ payload: {
113
+ name: name2
114
+ }
115
+ });
116
+ }, [navigation, triggerMap]),
117
+ handleOnPress = (0, import_react.useCallback)(event => {
118
+ onPress?.(event), trigger && (event?.isDefaultPrevented() || (navigation?.emit({
119
+ type: "tabPress",
120
+ target: trigger.type === "internal" ? trigger.route.key : trigger?.href,
121
+ canPreventDefault: !0
122
+ }), shouldHandleMouseEvent(event) && switchTab(name, {
123
+ resetOnFocus
124
+ })));
125
+ }, [onPress, name, resetOnFocus, trigger, navigation, switchTab]),
126
+ handleOnLongPress = (0, import_react.useCallback)(event => {
127
+ onLongPress?.(event), trigger && (event?.isDefaultPrevented() || (navigation?.emit({
128
+ type: "tabLongPress",
129
+ target: trigger.type === "internal" ? trigger.route.key : trigger?.href
130
+ }), shouldHandleMouseEvent(event) && switchTab(name, {
131
+ resetOnFocus
132
+ })));
133
+ }, [onLongPress, name, resetOnFocus, trigger, navigation, switchTab]),
134
+ triggerProps = {
135
+ isFocused: !!trigger?.isFocused,
136
+ onPress: handleOnPress,
137
+ onLongPress: handleOnLongPress
138
+ };
139
+ return {
140
+ switchTab,
141
+ getTrigger,
142
+ trigger,
143
+ triggerProps
144
+ };
145
+ }
146
+ const styles = import_react_native.StyleSheet.create({
147
+ tabTrigger: {
148
+ flexDirection: "row",
149
+ justifyContent: "space-between"
150
+ }
151
+ });
@@ -0,0 +1,120 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: !0 });
8
+ }, __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from == "object" || typeof from == "function")
10
+ for (let key of __getOwnPropNames(from))
11
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
15
+ var TabTrigger_exports = {};
16
+ __export(TabTrigger_exports, {
17
+ TabTrigger: () => TabTrigger,
18
+ isTabTrigger: () => isTabTrigger,
19
+ useTabTrigger: () => useTabTrigger
20
+ });
21
+ module.exports = __toCommonJS(TabTrigger_exports);
22
+ var import_react_slot = require("@radix-ui/react-slot"), import_react = require("react"), import_react_native = require("react-native-web"), import_TabContext = require("./TabContext"), import_getPathFromState_mods = require("../fork/getPathFromState-mods"), import_imperative_api = require("../router/imperative-api"), import_matchers = require("../router/matchers"), import_Navigator = require("../views/Navigator"), import_jsx_runtime = require("react/jsx-runtime");
23
+ const TabTriggerSlot = import_react_slot.Slot;
24
+ function shouldHandleMouseEvent(e) {
25
+ return e && "button" in e ? !e.metaKey && !e.altKey && !e.ctrlKey && !e.shiftKey && (e.button == null || e.button === 0) && [void 0, null, "", "self"].includes(e.currentTarget.target) : !0;
26
+ }
27
+ function TabTrigger({ asChild, name, href, resetOnFocus, ...props }) {
28
+ const { trigger, triggerProps } = useTabTrigger({
29
+ name,
30
+ resetOnFocus,
31
+ ...props
32
+ });
33
+ if (asChild)
34
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
35
+ TabTriggerSlot,
36
+ {
37
+ style: styles.tabTrigger,
38
+ ...props,
39
+ ...triggerProps,
40
+ href: trigger?.resolvedHref,
41
+ children: props.children
42
+ }
43
+ );
44
+ {
45
+ const reactNativeWebProps = { href: trigger?.resolvedHref };
46
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_native.Pressable, { style: styles.tabTrigger, ...reactNativeWebProps, ...props, ...triggerProps, children: props.children });
47
+ }
48
+ }
49
+ function isTabTrigger(child) {
50
+ return child.type === TabTrigger;
51
+ }
52
+ function useTabTrigger(options) {
53
+ const { state, navigation } = (0, import_Navigator.useNavigatorContext)(), { name, resetOnFocus, onPress, onLongPress } = options, triggerMap = (0, import_react.use)(import_TabContext.TabTriggerMapContext), getTrigger = (0, import_react.useCallback)(
54
+ (name2) => {
55
+ const config = triggerMap[name2];
56
+ if (config)
57
+ return {
58
+ isFocused: state.index === config.index,
59
+ route: state.routes[config.index],
60
+ resolvedHref: (0, import_matchers.stripGroupSegmentsFromPath)((0, import_getPathFromState_mods.appendBaseUrl)(config.href)),
61
+ ...config
62
+ };
63
+ },
64
+ [triggerMap, state]
65
+ ), trigger = name !== void 0 ? getTrigger(name) : void 0, switchTab = (0, import_react.useCallback)(
66
+ (name2, options2) => {
67
+ const config = triggerMap[name2];
68
+ return config ? config.type === "external" ? import_imperative_api.router.navigate(config.href) : navigation?.dispatch({
69
+ ...config.action,
70
+ type: "JUMP_TO",
71
+ payload: {
72
+ ...config.action.payload,
73
+ ...options2
74
+ }
75
+ }) : navigation?.dispatch({
76
+ type: "JUMP_TO",
77
+ payload: {
78
+ name: name2
79
+ }
80
+ });
81
+ },
82
+ [navigation, triggerMap]
83
+ ), handleOnPress = (0, import_react.useCallback)(
84
+ (event) => {
85
+ onPress?.(event), trigger && (event?.isDefaultPrevented() || (navigation?.emit({
86
+ type: "tabPress",
87
+ target: trigger.type === "internal" ? trigger.route.key : trigger?.href,
88
+ canPreventDefault: !0
89
+ }), shouldHandleMouseEvent(event) && switchTab(name, { resetOnFocus })));
90
+ },
91
+ [onPress, name, resetOnFocus, trigger, navigation, switchTab]
92
+ ), handleOnLongPress = (0, import_react.useCallback)(
93
+ (event) => {
94
+ onLongPress?.(event), trigger && (event?.isDefaultPrevented() || (navigation?.emit({
95
+ type: "tabLongPress",
96
+ target: trigger.type === "internal" ? trigger.route.key : trigger?.href
97
+ }), shouldHandleMouseEvent(event) && switchTab(name, {
98
+ resetOnFocus
99
+ })));
100
+ },
101
+ [onLongPress, name, resetOnFocus, trigger, navigation, switchTab]
102
+ ), triggerProps = {
103
+ isFocused: !!trigger?.isFocused,
104
+ onPress: handleOnPress,
105
+ onLongPress: handleOnLongPress
106
+ };
107
+ return {
108
+ switchTab,
109
+ getTrigger,
110
+ trigger,
111
+ triggerProps
112
+ };
113
+ }
114
+ const styles = import_react_native.StyleSheet.create({
115
+ tabTrigger: {
116
+ flexDirection: "row",
117
+ justifyContent: "space-between"
118
+ }
119
+ });
120
+ //# sourceMappingURL=TabTrigger.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/ui/TabTrigger.tsx"],
4
+ "mappings": "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",
5
+ "names": ["name", "options"]
6
+ }