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,135 @@
1
+ import { resolveHref } from "../link/href.mjs";
2
+ import { sortRoutesWithInitial } from "../router/sortRoutes.mjs";
3
+ import { Slot } from "./Slot.mjs";
4
+ import { jsx } from "react/jsx-runtime";
5
+ const ViewSlot = Slot;
6
+ function resolveHrefWithSegments(href, routeInfo, segmentsWithoutGroups) {
7
+ if (href.startsWith("./") || href.startsWith("../")) {
8
+ const parts = ((("/" + segmentsWithoutGroups.join("/")).replace(/\/[^/]*$/, "") || "/") + "/" + href).split("/"),
9
+ resolved = [];
10
+ for (const part of parts) part === "." || part === "" || (part === ".." ? resolved.pop() : resolved.push(part));
11
+ return "/" + resolved.join("/");
12
+ }
13
+ return href;
14
+ }
15
+ function triggersToScreens(triggers, layoutRouteNode, linking, initialRouteName, parentTriggerMap, routeInfo, contextKey) {
16
+ const configs = [];
17
+ for (const trigger of triggers) {
18
+ if (trigger.name in parentTriggerMap) {
19
+ const parentTrigger = parentTriggerMap[trigger.name];
20
+ throw new Error(`Trigger ${JSON.stringify({
21
+ name: trigger.name,
22
+ href: trigger.href
23
+ })} has the same name as parent trigger ${JSON.stringify({
24
+ name: parentTrigger.name,
25
+ href: parentTrigger.href
26
+ })}. Triggers must have unique names.`);
27
+ }
28
+ if (trigger.type === "external") {
29
+ configs.push(trigger);
30
+ continue;
31
+ }
32
+ let resolvedHref = resolveHref(trigger.href);
33
+ if (resolvedHref.startsWith("../")) throw new Error("Trigger href cannot link to a parent directory");
34
+ const segmentsWithoutGroups = contextKey.split("/").filter(segment => !(segment.startsWith("(") && segment.endsWith(")")));
35
+ resolvedHref = resolveHrefWithSegments(resolvedHref, routeInfo, segmentsWithoutGroups);
36
+ let state = linking.getStateFromPath?.(resolvedHref, linking.config)?.routes[0];
37
+ if (!state) {
38
+ console.warn(`Unable to find screen for trigger ${JSON.stringify(trigger)}. Does this point to a valid screen?`);
39
+ continue;
40
+ }
41
+ let routeState = state;
42
+ if (routeState.name === "+not-found") {
43
+ process.env.NODE_ENV !== "production" && console.warn(`Tab trigger '${trigger.name}' has the href '${trigger.href}' which points to a +not-found route.`);
44
+ continue;
45
+ }
46
+ const targetStateName = layoutRouteNode.route || "__root";
47
+ for (; state?.state && state.name !== targetStateName;) state = state.state.routes[state.state.index ?? state.state.routes.length - 1];
48
+ routeState = state.state?.routes[state.state.index ?? state.state.routes.length - 1] || state;
49
+ const routeNode = layoutRouteNode.children.find(child => child.route === routeState?.name);
50
+ if (!routeNode) {
51
+ console.warn(`Unable to find routeNode for trigger ${JSON.stringify(trigger)}. This might be a bug in One router`);
52
+ continue;
53
+ }
54
+ const duplicateTrigger = trigger.type === "internal" && configs.find(config => config.type === "external" ? !1 : config.routeNode.route === routeNode.route);
55
+ if (duplicateTrigger) {
56
+ const duplicateTriggerText = `${JSON.stringify({
57
+ name: duplicateTrigger.name,
58
+ href: duplicateTrigger.href
59
+ })} and ${JSON.stringify({
60
+ name: trigger.name,
61
+ href: trigger.href
62
+ })}`;
63
+ throw new Error(`A navigator cannot contain multiple trigger components that map to the same sub-segment. Consider adding a shared group and assigning a group to each trigger. Conflicting triggers:
64
+ ${duplicateTriggerText}.
65
+ Both triggers map to route ${routeNode.route}.`);
66
+ }
67
+ configs.push({
68
+ ...trigger,
69
+ href: resolvedHref,
70
+ routeNode,
71
+ action: stateToAction(state, layoutRouteNode.route)
72
+ });
73
+ }
74
+ const sortFn = sortRoutesWithInitial(initialRouteName),
75
+ sortedConfigs = configs.sort((a, b) => a.type === "external" && b.type === "external" ? 0 : a.type === "external" ? 1 : b.type === "external" ? -1 : sortFn(a.routeNode, b.routeNode)),
76
+ children = [],
77
+ triggerMap = {
78
+ ...parentTriggerMap
79
+ },
80
+ {
81
+ Screen
82
+ } = require("../router/useScreens"),
83
+ {
84
+ createGetIdForRoute
85
+ } = require("../router/useScreens");
86
+ for (const [index, config] of sortedConfigs.entries()) if (triggerMap[config.name] = {
87
+ ...config,
88
+ index
89
+ }, config.type === "internal") {
90
+ const route = config.routeNode;
91
+ children.push(/* @__PURE__ */jsx(Screen, {
92
+ getId: createGetIdForRoute(route),
93
+ name: route.route,
94
+ options: args => {
95
+ const staticOptions = route.generated ? route.loadRoute()?.getNavOptions : null,
96
+ output = {
97
+ ...(typeof staticOptions == "function" ? staticOptions(args) : staticOptions)
98
+ };
99
+ return route.generated && (output.tabBarButton = () => null, output.drawerItemStyle = {
100
+ height: 0,
101
+ display: "none"
102
+ }), output;
103
+ },
104
+ getComponent: () => {
105
+ const {
106
+ getQualifiedRouteComponent
107
+ } = require("../router/useScreens");
108
+ return getQualifiedRouteComponent(route);
109
+ }
110
+ }, route.route));
111
+ }
112
+ return {
113
+ children,
114
+ triggerMap
115
+ };
116
+ }
117
+ function stateToAction(state, startAtRoute) {
118
+ const rootPayload = {};
119
+ let payload = rootPayload;
120
+ startAtRoute = startAtRoute === "" ? "__root" : startAtRoute;
121
+ let foundStartingPoint = startAtRoute === void 0 || !state?.state;
122
+ for (; state;) if (foundStartingPoint) payload === rootPayload ? payload.name = state.name : payload.screen = state.name, payload.params = state.params ? {
123
+ ...state.params
124
+ } : {}, state = state.state?.routes[state.state?.routes.length - 1], state && (payload.params ??= {}, payload = payload.params);else {
125
+ state.name === startAtRoute && (foundStartingPoint = !0);
126
+ const nextState = state.state?.routes[state.state?.routes.length - 1];
127
+ nextState && (state = nextState);
128
+ }
129
+ return {
130
+ type: "JUMP_TO",
131
+ payload: rootPayload
132
+ };
133
+ }
134
+ export { ViewSlot, stateToAction, triggersToScreens };
135
+ //# sourceMappingURL=common.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["resolveHref","sortRoutesWithInitial","Slot","jsx","ViewSlot","resolveHrefWithSegments","href","routeInfo","segmentsWithoutGroups","startsWith","parts","join","replace","split","resolved","part","pop","push","triggersToScreens","triggers","layoutRouteNode","linking","initialRouteName","parentTriggerMap","contextKey","configs","trigger","name","parentTrigger","Error","JSON","stringify","type","resolvedHref","filter","segment","endsWith","state","getStateFromPath","config","routes","console","warn","routeState","process","env","NODE_ENV","targetStateName","route","index","length","routeNode","children","find","child","duplicateTrigger","duplicateTriggerText","action","stateToAction","sortFn","sortedConfigs","sort","a","b","triggerMap","Screen","require","createGetIdForRoute","entries","getId","options","args","staticOptions","generated","loadRoute","getNavOptions","output","tabBarButton","drawerItemStyle","height","display","getComponent","getQualifiedRouteComponent","startAtRoute","rootPayload","payload","foundStartingPoint","screen","params","nextState"],"sources":["../../../src/ui/common.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,195 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { resolveHref } from "../link/href.native.js";
3
+ import { sortRoutesWithInitial } from "../router/sortRoutes.native.js";
4
+ import { Slot } from "./Slot.native.js";
5
+ var ViewSlot = Slot;
6
+ function resolveHrefWithSegments(href, routeInfo, segmentsWithoutGroups) {
7
+ if (href.startsWith("./") || href.startsWith("../")) {
8
+ var basePath = "/" + segmentsWithoutGroups.join("/"),
9
+ baseDir = basePath.replace(/\/[^/]*$/, "") || "/",
10
+ parts = (baseDir + "/" + href).split("/"),
11
+ resolved = [],
12
+ _iteratorNormalCompletion = !0,
13
+ _didIteratorError = !1,
14
+ _iteratorError = void 0;
15
+ try {
16
+ for (var _iterator = parts[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
17
+ var part = _step.value;
18
+ part === "." || part === "" || (part === ".." ? resolved.pop() : resolved.push(part));
19
+ }
20
+ } catch (err) {
21
+ _didIteratorError = !0, _iteratorError = err;
22
+ } finally {
23
+ try {
24
+ !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
25
+ } finally {
26
+ if (_didIteratorError) throw _iteratorError;
27
+ }
28
+ }
29
+ return "/" + resolved.join("/");
30
+ }
31
+ return href;
32
+ }
33
+ function triggersToScreens(triggers, layoutRouteNode, linking, initialRouteName, parentTriggerMap, routeInfo, contextKey) {
34
+ var configs = [],
35
+ _iteratorNormalCompletion = !0,
36
+ _didIteratorError = !1,
37
+ _iteratorError = void 0;
38
+ try {
39
+ for (var _loop = function () {
40
+ var trigger = _step.value,
41
+ _linking_getStateFromPath,
42
+ _linking_getStateFromPath1,
43
+ _state_state;
44
+ if (trigger.name in parentTriggerMap) {
45
+ var parentTrigger = parentTriggerMap[trigger.name];
46
+ throw new Error(`Trigger ${JSON.stringify({
47
+ name: trigger.name,
48
+ href: trigger.href
49
+ })} has the same name as parent trigger ${JSON.stringify({
50
+ name: parentTrigger.name,
51
+ href: parentTrigger.href
52
+ })}. Triggers must have unique names.`);
53
+ }
54
+ if (trigger.type === "external") return configs.push(trigger), "continue";
55
+ var resolvedHref = resolveHref(trigger.href);
56
+ if (resolvedHref.startsWith("../")) throw new Error("Trigger href cannot link to a parent directory");
57
+ var segmentsWithoutGroups = contextKey.split("/").filter(function (segment) {
58
+ return !(segment.startsWith("(") && segment.endsWith(")"));
59
+ });
60
+ resolvedHref = resolveHrefWithSegments(resolvedHref, routeInfo, segmentsWithoutGroups);
61
+ var state = (_linking_getStateFromPath1 = linking.getStateFromPath) === null || _linking_getStateFromPath1 === void 0 || (_linking_getStateFromPath = _linking_getStateFromPath1.call(linking, resolvedHref, linking.config)) === null || _linking_getStateFromPath === void 0 ? void 0 : _linking_getStateFromPath.routes[0];
62
+ if (!state) return console.warn(`Unable to find screen for trigger ${JSON.stringify(trigger)}. Does this point to a valid screen?`), "continue";
63
+ var routeState = state;
64
+ if (routeState.name === "+not-found") return process.env.NODE_ENV !== "production" && console.warn(`Tab trigger '${trigger.name}' has the href '${trigger.href}' which points to a +not-found route.`), "continue";
65
+ for (var targetStateName = layoutRouteNode.route || "__root"; state?.state && state.name !== targetStateName;) {
66
+ var _state_state_index;
67
+ state = state.state.routes[(_state_state_index = state.state.index) !== null && _state_state_index !== void 0 ? _state_state_index : state.state.routes.length - 1];
68
+ }
69
+ var _state_state_index1;
70
+ routeState = ((_state_state = state.state) === null || _state_state === void 0 ? void 0 : _state_state.routes[(_state_state_index1 = state.state.index) !== null && _state_state_index1 !== void 0 ? _state_state_index1 : state.state.routes.length - 1]) || state;
71
+ var routeNode = layoutRouteNode.children.find(function (child) {
72
+ return child.route === routeState?.name;
73
+ });
74
+ if (!routeNode) return console.warn(`Unable to find routeNode for trigger ${JSON.stringify(trigger)}. This might be a bug in One router`), "continue";
75
+ var duplicateTrigger = trigger.type === "internal" && configs.find(function (config) {
76
+ return config.type === "external" ? !1 : config.routeNode.route === routeNode.route;
77
+ });
78
+ if (duplicateTrigger) {
79
+ var duplicateTriggerText = `${JSON.stringify({
80
+ name: duplicateTrigger.name,
81
+ href: duplicateTrigger.href
82
+ })} and ${JSON.stringify({
83
+ name: trigger.name,
84
+ href: trigger.href
85
+ })}`;
86
+ throw new Error(`A navigator cannot contain multiple trigger components that map to the same sub-segment. Consider adding a shared group and assigning a group to each trigger. Conflicting triggers:
87
+ ${duplicateTriggerText}.
88
+ Both triggers map to route ${routeNode.route}.`);
89
+ }
90
+ configs.push({
91
+ ...trigger,
92
+ href: resolvedHref,
93
+ routeNode,
94
+ action: stateToAction(state, layoutRouteNode.route)
95
+ });
96
+ }, _iterator = triggers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) _loop();
97
+ } catch (err) {
98
+ _didIteratorError = !0, _iteratorError = err;
99
+ } finally {
100
+ try {
101
+ !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
102
+ } finally {
103
+ if (_didIteratorError) throw _iteratorError;
104
+ }
105
+ }
106
+ var sortFn = sortRoutesWithInitial(initialRouteName),
107
+ sortedConfigs = configs.sort(function (a, b) {
108
+ return a.type === "external" && b.type === "external" ? 0 : a.type === "external" ? 1 : b.type === "external" ? -1 : sortFn(a.routeNode, b.routeNode);
109
+ }),
110
+ children = [],
111
+ triggerMap = {
112
+ ...parentTriggerMap
113
+ },
114
+ {
115
+ Screen
116
+ } = require("../router/useScreens"),
117
+ {
118
+ createGetIdForRoute
119
+ } = require("../router/useScreens"),
120
+ _iteratorNormalCompletion1 = !0,
121
+ _didIteratorError1 = !1,
122
+ _iteratorError1 = void 0;
123
+ try {
124
+ for (var _loop1 = function () {
125
+ var [index, config] = _step1.value;
126
+ if (triggerMap[config.name] = {
127
+ ...config,
128
+ index
129
+ }, config.type === "internal") {
130
+ var route = config.routeNode;
131
+ children.push(/* @__PURE__ */_jsx(Screen, {
132
+ getId: createGetIdForRoute(route),
133
+ name: route.route,
134
+ options: function (args) {
135
+ var _route_loadRoute,
136
+ staticOptions = route.generated ? (_route_loadRoute = route.loadRoute()) === null || _route_loadRoute === void 0 ? void 0 : _route_loadRoute.getNavOptions : null,
137
+ staticResult = typeof staticOptions == "function" ? staticOptions(args) : staticOptions,
138
+ output = {
139
+ ...staticResult
140
+ };
141
+ return route.generated && (output.tabBarButton = function () {
142
+ return null;
143
+ }, output.drawerItemStyle = {
144
+ height: 0,
145
+ display: "none"
146
+ }), output;
147
+ },
148
+ getComponent: function () {
149
+ var {
150
+ getQualifiedRouteComponent
151
+ } = require("../router/useScreens");
152
+ return getQualifiedRouteComponent(route);
153
+ }
154
+ }, route.route));
155
+ }
156
+ }, _iterator1 = sortedConfigs.entries()[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = !0) _loop1();
157
+ } catch (err) {
158
+ _didIteratorError1 = !0, _iteratorError1 = err;
159
+ } finally {
160
+ try {
161
+ !_iteratorNormalCompletion1 && _iterator1.return != null && _iterator1.return();
162
+ } finally {
163
+ if (_didIteratorError1) throw _iteratorError1;
164
+ }
165
+ }
166
+ return {
167
+ children,
168
+ triggerMap
169
+ };
170
+ }
171
+ function stateToAction(state, startAtRoute) {
172
+ var rootPayload = {},
173
+ payload = rootPayload;
174
+ startAtRoute = startAtRoute === "" ? "__root" : startAtRoute;
175
+ for (var foundStartingPoint = startAtRoute === void 0 || !state?.state; state;) if (foundStartingPoint) {
176
+ var _state_state, _state_state1;
177
+ if (payload === rootPayload ? payload.name = state.name : payload.screen = state.name, payload.params = state.params ? {
178
+ ...state.params
179
+ } : {}, state = (_state_state1 = state.state) === null || _state_state1 === void 0 ? void 0 : _state_state1.routes[((_state_state = state.state) === null || _state_state === void 0 ? void 0 : _state_state.routes.length) - 1], state) {
180
+ var _payload, _params;
181
+ (_params = (_payload = payload).params) !== null && _params !== void 0 || (_payload.params = {}), payload = payload.params;
182
+ }
183
+ } else {
184
+ var _state_state2, _state_state3;
185
+ state.name === startAtRoute && (foundStartingPoint = !0);
186
+ var nextState = (_state_state3 = state.state) === null || _state_state3 === void 0 ? void 0 : _state_state3.routes[((_state_state2 = state.state) === null || _state_state2 === void 0 ? void 0 : _state_state2.routes.length) - 1];
187
+ nextState && (state = nextState);
188
+ }
189
+ return {
190
+ type: "JUMP_TO",
191
+ payload: rootPayload
192
+ };
193
+ }
194
+ export { ViewSlot, stateToAction, triggersToScreens };
195
+ //# sourceMappingURL=common.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["jsx","_jsx","resolveHref","sortRoutesWithInitial","Slot","ViewSlot","resolveHrefWithSegments","href","routeInfo","segmentsWithoutGroups","startsWith","basePath","join","baseDir","replace","parts","split","resolved","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","part","value","pop","push","err","return","triggersToScreens","triggers","layoutRouteNode","linking","initialRouteName","parentTriggerMap","contextKey","configs","_loop","trigger","_linking_getStateFromPath","_linking_getStateFromPath1","_state_state","name","parentTrigger","Error","JSON","stringify","type","resolvedHref","filter","segment","endsWith","state","getStateFromPath","call","config","routes","console","warn","routeState","process","env","NODE_ENV","targetStateName","route","_state_state_index","index","length","_state_state_index1","routeNode","children","find","child","duplicateTrigger","duplicateTriggerText","action","stateToAction","sortFn","sortedConfigs","sort","a","b","triggerMap","Screen","require","createGetIdForRoute","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_loop1","_step1","getId","options","args","_route_loadRoute","staticOptions","generated","loadRoute","getNavOptions","staticResult","output","tabBarButton","drawerItemStyle","height","display"],"sources":["../../../src/ui/common.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export * from "./Tabs";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/ui/index.ts"],
4
+ "mappings": "AAAA,cAAc;",
5
+ "names": []
6
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./Tabs.mjs";
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../src/ui/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export * from "./Tabs.native.js";
2
+ //# sourceMappingURL=index.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../src/ui/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ import { useRef, forwardRef, useEffect } from "react";
2
+ import { jsx } from "react/jsx-runtime";
3
+ const NavigationContent = ({ render, children }) => render(children);
4
+ function useComponent(render) {
5
+ const renderRef = useRef(render);
6
+ return renderRef.current = render, useEffect(() => {
7
+ renderRef.current = null;
8
+ }), useRef(
9
+ forwardRef(({ children }, _ref) => {
10
+ const render2 = renderRef.current;
11
+ if (render2 === null)
12
+ throw new Error(
13
+ "The returned component must be rendered in the same render phase as the hook."
14
+ );
15
+ return /* @__PURE__ */ jsx(NavigationContent, { render: render2, children });
16
+ })
17
+ ).current;
18
+ }
19
+ export {
20
+ useComponent
21
+ };
22
+ //# sourceMappingURL=useComponent.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/ui/useComponent.tsx"],
4
+ "mappings": "AAAA,SAAS,QAAQ,YAAY,iBAA2B;AAsC3C;AA1Bb,MAAM,oBAAoB,CAAC,EAAE,QAAQ,SAAS,MACrC,OAAO,QAAQ;AAGjB,SAAS,aAAa,QAAgB;AAC3C,QAAM,YAAY,OAAsB,MAAM;AAK9C,mBAAU,UAAU,QAEpB,UAAU,MAAM;AACd,cAAU,UAAU;AAAA,EACtB,CAAC,GAEM;AAAA,IACL,WAAW,CAAC,EAAE,SAAS,GAAkC,SAAS;AAChE,YAAMA,UAAS,UAAU;AAEzB,UAAIA,YAAW;AACb,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAGF,aAAO,oBAAC,qBAAkB,QAAQA,SAAS,UAAS;AAAA,IACtD,CAAC;AAAA,EACH,EAAE;AACJ;",
5
+ "names": ["render"]
6
+ }
@@ -0,0 +1,23 @@
1
+ import { useRef, forwardRef, useEffect } from "react";
2
+ import { jsx } from "react/jsx-runtime";
3
+ const NavigationContent = ({
4
+ render,
5
+ children
6
+ }) => render(children);
7
+ function useComponent(render) {
8
+ const renderRef = useRef(render);
9
+ return renderRef.current = render, useEffect(() => {
10
+ renderRef.current = null;
11
+ }), useRef(forwardRef(({
12
+ children
13
+ }, _ref) => {
14
+ const render2 = renderRef.current;
15
+ if (render2 === null) throw new Error("The returned component must be rendered in the same render phase as the hook.");
16
+ return /* @__PURE__ */jsx(NavigationContent, {
17
+ render: render2,
18
+ children
19
+ });
20
+ })).current;
21
+ }
22
+ export { useComponent };
23
+ //# sourceMappingURL=useComponent.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useRef","forwardRef","useEffect","jsx","NavigationContent","render","children","useComponent","renderRef","current","_ref","render2","Error"],"sources":["../../../src/ui/useComponent.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAA,EAAQC,UAAA,EAAYC,SAAA,QAA2B;AAsC3C,SAAAC,GAAA;AA1Bb,MAAMC,iBAAA,GAAoBA,CAAC;EAAEC,MAAA;EAAQC;AAAS,MACrCD,MAAA,CAAOC,QAAQ;AAGjB,SAASC,aAAaF,MAAA,EAAgB;EAC3C,MAAMG,SAAA,GAAYR,MAAA,CAAsBK,MAAM;EAK9C,OAAAG,SAAA,CAAUC,OAAA,GAAUJ,MAAA,EAEpBH,SAAA,CAAU,MAAM;IACdM,SAAA,CAAUC,OAAA,GAAU;EACtB,CAAC,GAEMT,MAAA,CACLC,UAAA,CAAW,CAAC;IAAEK;EAAS,GAAkCI,IAAA,KAAS;IAChE,MAAMC,OAAA,GAASH,SAAA,CAAUC,OAAA;IAEzB,IAAIE,OAAA,KAAW,MACb,MAAM,IAAIC,KAAA,CACR,+EACF;IAGF,OAAO,eAAAT,GAAA,CAACC,iBAAA;MAAkBC,MAAA,EAAQM,OAAA;MAASL;IAAA,CAAS;EACtD,CAAC,CACH,EAAEG,OAAA;AACJ","ignoreList":[]}
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useRef, forwardRef, useEffect } from "react";
3
+ var NavigationContent = function (param) {
4
+ var {
5
+ render,
6
+ children
7
+ } = param;
8
+ return render(children);
9
+ };
10
+ function useComponent(render) {
11
+ var renderRef = useRef(render);
12
+ return renderRef.current = render, useEffect(function () {
13
+ renderRef.current = null;
14
+ }), useRef(/* @__PURE__ */forwardRef(function (param, _ref) {
15
+ var {
16
+ children
17
+ } = param,
18
+ _$render = renderRef.current;
19
+ if (_$render === null) throw new Error("The returned component must be rendered in the same render phase as the hook.");
20
+ return /* @__PURE__ */_jsx(NavigationContent, {
21
+ render: _$render,
22
+ children
23
+ });
24
+ })).current;
25
+ }
26
+ export { useComponent };
27
+ //# sourceMappingURL=useComponent.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["jsx","_jsx","useRef","forwardRef","useEffect","NavigationContent","param","render","children","useComponent","renderRef","current","_ref","_$render","Error"],"sources":["../../../src/ui/useComponent.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAA,IAAAC,IAAQ,2BAAuC;AAsC3C,SAAAC,MAAA,EAAAC,UAAA,EAAAC,SAAA;AA1Bb,IAAAC,iBAAM,YAAAA,CAAuBC,KAAQ;EAI9B;IAAAC,MAAS;IAAAC;EAAa,IAAAF,KAAgB;EAC3C,OAAMC,MAAA,CAAAC,QAAY;AAKlB;AAGE,SAAAC,YAAUA,CAAAF,MAAU;EACtB,IAEOG,SAAA,GAAAR,MAAA,CAAAK,MAAA;EAAA,OACLG,SAAc,CAAAC,OAAA,GAASJ,MAAkC,EAAAH,SAAS;IAChEM,SAAM,CAAAC,OAAA,GAAS;EAEf,IAAAT,MAAI,gBAAWC,UAAA,WAAAG,KAAA,EAAAM,IAAA;IACb;QAAAJ;MAAU,IAAAF,KAAA;MAAAO,QAAA,GAAAH,SAAA,CAAAC,OAAA;IAAA,IAAAE,QACR,iBACF,IAAAC,KAAA;IAGF,sBAAOb,IAAA,CAAAI,iBAAC;MACTE,MAAA,EAAAM,QAAA;MACDL;IACJ","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "one",
3
- "version": "1.2.6",
3
+ "version": "1.2.8",
4
4
  "license": "BSD-3-Clause",
5
5
  "sideEffects": [
6
6
  "setup.mjs",
@@ -18,6 +18,15 @@
18
18
  "import": "./dist/esm/index.mjs",
19
19
  "require": "./dist/cjs/index.cjs"
20
20
  },
21
+ "./ui": {
22
+ "react-native": {
23
+ "import": "./dist/esm/ui/index.native.js",
24
+ "require": "./dist/cjs/ui/index.native.js"
25
+ },
26
+ "types": "./types/ui/index.d.ts",
27
+ "import": "./dist/esm/ui/index.mjs",
28
+ "require": "./dist/cjs/ui/index.cjs"
29
+ },
21
30
  "./vite": {
22
31
  "types": "./types/vite.d.ts",
23
32
  "import": "./dist/esm/vite.mjs",
@@ -112,17 +121,17 @@
112
121
  "@react-navigation/routers": "~7.5.1",
113
122
  "@swc/core": "^1.14.0",
114
123
  "@ungap/structured-clone": "^1.2.0",
115
- "@vxrn/compiler": "1.2.6",
116
- "@vxrn/resolve": "1.2.6",
117
- "@vxrn/tslib-lite": "1.2.6",
118
- "@vxrn/universal-color-scheme": "1.2.6",
119
- "@vxrn/use-isomorphic-layout-effect": "1.2.6",
120
- "@vxrn/vite-plugin-metro": "1.2.6",
124
+ "@vxrn/compiler": "1.2.8",
125
+ "@vxrn/resolve": "1.2.8",
126
+ "@vxrn/tslib-lite": "1.2.8",
127
+ "@vxrn/universal-color-scheme": "1.2.8",
128
+ "@vxrn/use-isomorphic-layout-effect": "1.2.8",
129
+ "@vxrn/vite-plugin-metro": "1.2.8",
121
130
  "babel-dead-code-elimination": "^1.0.10",
122
131
  "babel-plugin-module-resolver": "^5.0.2",
123
132
  "citty": "^0.1.6",
124
133
  "core-js": "^3.38.1",
125
- "create-vxrn": "1.2.6",
134
+ "create-vxrn": "1.2.8",
126
135
  "escape-string-regexp": "^5.0.0",
127
136
  "expo-linking": "~8.0.8",
128
137
  "expo-modules-core": "~3.0.24",
@@ -148,7 +157,7 @@
148
157
  "vite": "^7.1.12",
149
158
  "vite-plugin-barrel": "^0.4.1",
150
159
  "vite-tsconfig-paths": "^5.1.4",
151
- "vxrn": "1.2.6",
160
+ "vxrn": "1.2.8",
152
161
  "ws": "^8.18.0",
153
162
  "xxhashjs": "^0.2.2"
154
163
  },