@multiplatform.one/components 7.79.0 → 7.80.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 (268) hide show
  1. package/dist/cjs/appShell/AppShell.cjs +432 -0
  2. package/dist/cjs/appShell/AppShell.native.js +499 -0
  3. package/dist/cjs/appShell/AppShell.native.js.map +1 -0
  4. package/dist/cjs/appShell/index.cjs +1 -0
  5. package/dist/cjs/appShell/index.native.js +1 -0
  6. package/dist/cjs/appShell/index.native.js.map +1 -1
  7. package/dist/cjs/layouts/page.cjs +3 -0
  8. package/dist/cjs/layouts/page.native.js +3 -0
  9. package/dist/cjs/layouts/page.native.js.map +1 -1
  10. package/dist/cjs/layouts/screenScroll.cjs +55 -0
  11. package/dist/cjs/layouts/screenScroll.native.js +59 -0
  12. package/dist/cjs/layouts/screenScroll.native.js.map +1 -1
  13. package/dist/cjs/layouts/sidebar.cjs +46 -9
  14. package/dist/cjs/layouts/sidebar.native.js +49 -9
  15. package/dist/cjs/layouts/sidebar.native.js.map +1 -1
  16. package/dist/esm/Accordion/index.native.js.map +1 -1
  17. package/dist/esm/AnimateHeight/index.native.js.map +1 -1
  18. package/dist/esm/Avatar/getInitials.native.js.map +1 -1
  19. package/dist/esm/Avatar/index.native.js.map +1 -1
  20. package/dist/esm/Badge/index.native.js.map +1 -1
  21. package/dist/esm/Button.native.js.map +1 -1
  22. package/dist/esm/Carousel/index.native.js.map +1 -1
  23. package/dist/esm/Chip/index.native.js.map +1 -1
  24. package/dist/esm/Collapsible.native.js.map +1 -1
  25. package/dist/esm/ContextMenu/index.native.js.map +1 -1
  26. package/dist/esm/CopyField/CopyMenuButton.native.js.map +1 -1
  27. package/dist/esm/CopyField/index.native.js.map +1 -1
  28. package/dist/esm/Dialog.native.js.map +1 -1
  29. package/dist/esm/Diff/diff.native.js.map +1 -1
  30. package/dist/esm/Diff/index.native.js.map +1 -1
  31. package/dist/esm/DotIndicator/index.native.js.map +1 -1
  32. package/dist/esm/DropdownMenu/index.native.js.map +1 -1
  33. package/dist/esm/DropdownMenu/menuSettle.native.js.map +1 -1
  34. package/dist/esm/ElapsedProgress/index.native.js.map +1 -1
  35. package/dist/esm/ErrorBoundary/index.native.js.map +1 -1
  36. package/dist/esm/Heading.native.js.map +1 -1
  37. package/dist/esm/Kbd/index.native.js.map +1 -1
  38. package/dist/esm/Kbd/keys.native.js.map +1 -1
  39. package/dist/esm/Lightbox/MediaControl.native.js.map +1 -1
  40. package/dist/esm/Lightbox/index.gnome.native.js.map +1 -1
  41. package/dist/esm/Lightbox/shared.native.js.map +1 -1
  42. package/dist/esm/Lightbox/useLightbox.native.js.map +1 -1
  43. package/dist/esm/MachineLiteral/index.native.js.map +1 -1
  44. package/dist/esm/Material/index.native.js.map +1 -1
  45. package/dist/esm/Meter/index.native.js.map +1 -1
  46. package/dist/esm/Meter/meter.native.js.map +1 -1
  47. package/dist/esm/OverflowRow/index.native.js.map +1 -1
  48. package/dist/esm/Pagination.native.js.map +1 -1
  49. package/dist/esm/Popover.native.js.map +1 -1
  50. package/dist/esm/ProgressSteps/index.native.js.map +1 -1
  51. package/dist/esm/Quote/index.native.js.map +1 -1
  52. package/dist/esm/SchemeToggle/index.native.js.map +1 -1
  53. package/dist/esm/ScrollView/revealFocusedField.native.js.map +1 -1
  54. package/dist/esm/Separator/index.native.js.map +1 -1
  55. package/dist/esm/Sheet.native.js.map +1 -1
  56. package/dist/esm/SheetModal/SheetHeader.native.js.map +1 -1
  57. package/dist/esm/SheetModal/SheetNavigation.native.js.map +1 -1
  58. package/dist/esm/SheetModal/detents.native.js.map +1 -1
  59. package/dist/esm/SheetModal/useSheetFrameFocus.native.js.map +1 -1
  60. package/dist/esm/Skeleton/index.native.js.map +1 -1
  61. package/dist/esm/SkipLink/index.native.js.map +1 -1
  62. package/dist/esm/SortableList/SortableHandle.native.js.map +1 -1
  63. package/dist/esm/SortableList/index.native.js.map +1 -1
  64. package/dist/esm/SortableList/useSortableRows.native.js.map +1 -1
  65. package/dist/esm/SortableList/useUserOrder.native.js.map +1 -1
  66. package/dist/esm/Tabs/index.native.js.map +1 -1
  67. package/dist/esm/Text.native.js.map +1 -1
  68. package/dist/esm/ThemePresetPicker/index.native.js.map +1 -1
  69. package/dist/esm/Toast/index.native.js.map +1 -1
  70. package/dist/esm/Toast/store.native.js.map +1 -1
  71. package/dist/esm/Tooltip/nativePress.native.js.map +1 -1
  72. package/dist/esm/Tooltip/tooltipShared.native.js.map +1 -1
  73. package/dist/esm/TreeSelect/index.native.js.map +1 -1
  74. package/dist/esm/TreeSelect/treeSelectModel.native.js.map +1 -1
  75. package/dist/esm/Video/PlayerChrome.native.js.map +1 -1
  76. package/dist/esm/Video/VideoFrame.native.js.map +1 -1
  77. package/dist/esm/Video/types.native.js.map +1 -1
  78. package/dist/esm/Wheel/index.native.js.map +1 -1
  79. package/dist/esm/Wizard/index.native.js.map +1 -1
  80. package/dist/esm/actions/ActionBar.native.js.map +1 -1
  81. package/dist/esm/actions/DangerSection.native.js.map +1 -1
  82. package/dist/esm/actions/DestructiveAction.native.js.map +1 -1
  83. package/dist/esm/actions/HeaderActions.native.js.map +1 -1
  84. package/dist/esm/actions/StandardAction.native.js.map +1 -1
  85. package/dist/esm/actions/devWarn.native.js.map +1 -1
  86. package/dist/esm/actions/index.native.js.map +1 -1
  87. package/dist/esm/actions/severity.native.js.map +1 -1
  88. package/dist/esm/appShell/AppShell.mjs +406 -0
  89. package/dist/esm/appShell/AppShell.mjs.map +1 -0
  90. package/dist/esm/appShell/AppShell.native.js +470 -0
  91. package/dist/esm/appShell/AppShell.native.js.map +1 -0
  92. package/dist/esm/appShell/Dock.native.js.map +1 -1
  93. package/dist/esm/appShell/MpoTabHost.native.js.map +1 -1
  94. package/dist/esm/appShell/ScopeMenu.native.js.map +1 -1
  95. package/dist/esm/appShell/SettingsSplit.native.js.map +1 -1
  96. package/dist/esm/appShell/Springboard.native.js.map +1 -1
  97. package/dist/esm/appShell/SystemBar.native.js.map +1 -1
  98. package/dist/esm/appShell/TabBar.native.js.map +1 -1
  99. package/dist/esm/appShell/appTile.native.js.map +1 -1
  100. package/dist/esm/appShell/bottomChrome.native.js.map +1 -1
  101. package/dist/esm/appShell/index.mjs +1 -0
  102. package/dist/esm/appShell/index.mjs.map +1 -1
  103. package/dist/esm/appShell/index.native.js +1 -0
  104. package/dist/esm/appShell/index.native.js.map +1 -1
  105. package/dist/esm/charts/Axis.native.js.map +1 -1
  106. package/dist/esm/charts/BarChart.native.js.map +1 -1
  107. package/dist/esm/charts/ChartDataView.native.js.map +1 -1
  108. package/dist/esm/charts/ChartSurface.native.js.map +1 -1
  109. package/dist/esm/charts/LineChart.native.js.map +1 -1
  110. package/dist/esm/charts/PieChart.native.js.map +1 -1
  111. package/dist/esm/charts/Sparkline.native.js.map +1 -1
  112. package/dist/esm/charts/accessibility.native.js.map +1 -1
  113. package/dist/esm/charts/chartHeight.native.js.map +1 -1
  114. package/dist/esm/charts/composeChart.native.js.map +1 -1
  115. package/dist/esm/charts/index.native.js.map +1 -1
  116. package/dist/esm/charts/math.native.js.map +1 -1
  117. package/dist/esm/charts/series.native.js.map +1 -1
  118. package/dist/esm/charts/svg.native.js.map +1 -1
  119. package/dist/esm/charts/types.native.js.map +1 -1
  120. package/dist/esm/charts/useChartTheme.native.js.map +1 -1
  121. package/dist/esm/code/Code/index.native.js.map +1 -1
  122. package/dist/esm/code/CodeBlock/index.native.js.map +1 -1
  123. package/dist/esm/code/HighlightedCode/index.native.js.map +1 -1
  124. package/dist/esm/code/Highlighter/houseSyntaxTheme.native.js.map +1 -1
  125. package/dist/esm/code/Highlighter/index.native.js.map +1 -1
  126. package/dist/esm/code/Highlighter/namedGroupMatchAll.native.js.map +1 -1
  127. package/dist/esm/code/Pre/index.native.js.map +1 -1
  128. package/dist/esm/code/index.native.js.map +1 -1
  129. package/dist/esm/componentColors.native.js.map +1 -1
  130. package/dist/esm/feedback/ConfirmDialog.native.js.map +1 -1
  131. package/dist/esm/feedback/NotifyHost.native.js.map +1 -1
  132. package/dist/esm/feedback/copy.native.js.map +1 -1
  133. package/dist/esm/feedback/index.native.js.map +1 -1
  134. package/dist/esm/feedback/notify.native.js.map +1 -1
  135. package/dist/esm/feedback/route.native.js.map +1 -1
  136. package/dist/esm/feedback/store.native.js.map +1 -1
  137. package/dist/esm/formLayouts/FormLayouts.native.js.map +1 -1
  138. package/dist/esm/formLayouts/PreferencePanel.native.js.map +1 -1
  139. package/dist/esm/formLayouts/index.native.js.map +1 -1
  140. package/dist/esm/hooks/index.native.js.map +1 -1
  141. package/dist/esm/hooks/useClipboard.native.js.map +1 -1
  142. package/dist/esm/hooks/useDocumentTitle.native.js.map +1 -1
  143. package/dist/esm/hooks/useHoldCue.native.js.map +1 -1
  144. package/dist/esm/icons/CheckRegular.native.js.map +1 -1
  145. package/dist/esm/icons/MinusRegular.native.js.map +1 -1
  146. package/dist/esm/icons/index.native.js.map +1 -1
  147. package/dist/esm/icons/lucide.native.js.map +1 -1
  148. package/dist/esm/icons/themed.native.js.map +1 -1
  149. package/dist/esm/images/Image/ImageFrame.native.js.map +1 -1
  150. package/dist/esm/images/Image/framing.native.js.map +1 -1
  151. package/dist/esm/images/Image/mediaRadius.native.js.map +1 -1
  152. package/dist/esm/images/Image/shared.native.js.map +1 -1
  153. package/dist/esm/images/Image/types.native.js.map +1 -1
  154. package/dist/esm/images/index.native.js.map +1 -1
  155. package/dist/esm/index.native.js.map +1 -1
  156. package/dist/esm/knobImmuneExports.native.js.map +1 -1
  157. package/dist/esm/layouts/AsyncBoundary.native.js.map +1 -1
  158. package/dist/esm/layouts/Debug/index.native.js.map +1 -1
  159. package/dist/esm/layouts/EmptyState.native.js.map +1 -1
  160. package/dist/esm/layouts/IdentityPlate.native.js.map +1 -1
  161. package/dist/esm/layouts/KeyboardAvoidingWrapper/behavior.native.js.map +1 -1
  162. package/dist/esm/layouts/PageTemplates.native.js.map +1 -1
  163. package/dist/esm/layouts/PaneScaffold.native.js.map +1 -1
  164. package/dist/esm/layouts/SafeAreaWrapper/insets.native.js.map +1 -1
  165. package/dist/esm/layouts/StatusDot.native.js.map +1 -1
  166. package/dist/esm/layouts/StatusGlyphStrip.native.js.map +1 -1
  167. package/dist/esm/layouts/ViewSwitcher.native.js.map +1 -1
  168. package/dist/esm/layouts/attachments.native.js.map +1 -1
  169. package/dist/esm/layouts/bottomAccessory.native.js.map +1 -1
  170. package/dist/esm/layouts/breadcrumbs.native.js.map +1 -1
  171. package/dist/esm/layouts/index.native.js.map +1 -1
  172. package/dist/esm/layouts/page.mjs +4 -2
  173. package/dist/esm/layouts/page.mjs.map +1 -1
  174. package/dist/esm/layouts/page.native.js +4 -2
  175. package/dist/esm/layouts/page.native.js.map +1 -1
  176. package/dist/esm/layouts/pageHeadingScope.native.js.map +1 -1
  177. package/dist/esm/layouts/screenScroll.mjs +53 -1
  178. package/dist/esm/layouts/screenScroll.mjs.map +1 -1
  179. package/dist/esm/layouts/screenScroll.native.js +57 -1
  180. package/dist/esm/layouts/screenScroll.native.js.map +1 -1
  181. package/dist/esm/layouts/shellSidebarSlot.native.js.map +1 -1
  182. package/dist/esm/layouts/sidebar.mjs +45 -11
  183. package/dist/esm/layouts/sidebar.mjs.map +1 -1
  184. package/dist/esm/layouts/sidebar.native.js +48 -11
  185. package/dist/esm/layouts/sidebar.native.js.map +1 -1
  186. package/dist/esm/layouts/tags.native.js.map +1 -1
  187. package/dist/esm/layouts/timeline.native.js.map +1 -1
  188. package/dist/esm/layouts/toolbar.native.js.map +1 -1
  189. package/dist/esm/shared/actionScan.native.js.map +1 -1
  190. package/dist/esm/shared/i18n.native.js.map +1 -1
  191. package/dist/esm/shared/restoreRetries.native.js.map +1 -1
  192. package/dist/esm/shared/t.native.js.map +1 -1
  193. package/dist/esm/shared/textRidesText.native.js.map +1 -1
  194. package/dist/esm/shared/useReturnFocusOnClose.native.js.map +1 -1
  195. package/dist/esm/surfaces.native.js.map +1 -1
  196. package/dist/esm/tamagui.native.js.map +1 -1
  197. package/dist/esm/testSetup.native.js.map +1 -1
  198. package/dist/esm/utils/setTinted.native.js.map +1 -1
  199. package/dist/esm/utils/unwrapText.native.js.map +1 -1
  200. package/dist/esm/views/Calendar.native.js.map +1 -1
  201. package/dist/esm/views/Dashboard.native.js.map +1 -1
  202. package/dist/esm/views/Gantt.native.js.map +1 -1
  203. package/dist/esm/views/GanttDateGrip.native.js.map +1 -1
  204. package/dist/esm/views/ImageGrid.native.js.map +1 -1
  205. package/dist/esm/views/List.native.js.map +1 -1
  206. package/dist/esm/views/ListGroup.native.js.map +1 -1
  207. package/dist/esm/views/ListRow.native.js.map +1 -1
  208. package/dist/esm/views/Matrix.native.js.map +1 -1
  209. package/dist/esm/views/ReportBuilder.native.js.map +1 -1
  210. package/dist/esm/views/ShortcutCard.native.js.map +1 -1
  211. package/dist/esm/views/TreeView.native.js.map +1 -1
  212. package/dist/esm/views/calendarMath.native.js.map +1 -1
  213. package/dist/esm/views/ganttIntervals.native.js.map +1 -1
  214. package/dist/esm/views/ganttMath.native.js.map +1 -1
  215. package/dist/esm/views/index.native.js.map +1 -1
  216. package/dist/esm/views/kanbanDnd.native.js.map +1 -1
  217. package/dist/esm/views/matrixMath.native.js.map +1 -1
  218. package/dist/esm/views/sameNameScope.native.js.map +1 -1
  219. package/dist/esm/views/treeViewDnd.native.js.map +1 -1
  220. package/dist/esm/views/treeViewLayout.native.js.map +1 -1
  221. package/dist/esm/views/treeViewMotion.native.js.map +1 -1
  222. package/dist/esm/views/treeViewReveal.native.js.map +1 -1
  223. package/dist/esm/views/usePageFlowLoadMore.native.js.map +1 -1
  224. package/dist/esm/views/widgetChrome.native.js.map +1 -1
  225. package/dist/jsx/appShell/AppShell.mjs +406 -0
  226. package/dist/jsx/appShell/AppShell.mjs.map +1 -0
  227. package/dist/jsx/appShell/AppShell.native.js +499 -0
  228. package/dist/jsx/appShell/AppShell.native.js.map +1 -0
  229. package/dist/jsx/appShell/index.mjs +1 -0
  230. package/dist/jsx/appShell/index.mjs.map +1 -1
  231. package/dist/jsx/appShell/index.native.js +1 -0
  232. package/dist/jsx/appShell/index.native.js.map +1 -1
  233. package/dist/jsx/feedback/NotifyHost.native.js +1 -1
  234. package/dist/jsx/formLayouts/PreferencePanel.native.js +1 -1
  235. package/dist/jsx/index.native.js +1 -1
  236. package/dist/jsx/layouts/AsyncBoundary.native.js +1 -1
  237. package/dist/jsx/layouts/AsyncBoundary.native.js.map +1 -1
  238. package/dist/jsx/layouts/page.mjs +4 -2
  239. package/dist/jsx/layouts/page.mjs.map +1 -1
  240. package/dist/jsx/layouts/page.native.js +3 -0
  241. package/dist/jsx/layouts/page.native.js.map +1 -1
  242. package/dist/jsx/layouts/screenScroll.mjs +53 -1
  243. package/dist/jsx/layouts/screenScroll.mjs.map +1 -1
  244. package/dist/jsx/layouts/screenScroll.native.js +59 -0
  245. package/dist/jsx/layouts/screenScroll.native.js.map +1 -1
  246. package/dist/jsx/layouts/sidebar.mjs +45 -11
  247. package/dist/jsx/layouts/sidebar.mjs.map +1 -1
  248. package/dist/jsx/layouts/sidebar.native.js +49 -9
  249. package/dist/jsx/layouts/sidebar.native.js.map +1 -1
  250. package/package.json +9 -9
  251. package/src/appShell/AppShell.spec.tsx +259 -0
  252. package/src/appShell/AppShell.stories.tsx +112 -0
  253. package/src/appShell/AppShell.tsx +526 -0
  254. package/src/appShell/index.ts +1 -0
  255. package/src/layouts/Sidebar.spec.tsx +31 -0
  256. package/src/layouts/page.tsx +8 -0
  257. package/src/layouts/screenScroll.tsx +71 -0
  258. package/src/layouts/sidebar.tsx +83 -5
  259. package/types/appShell/AppShell.d.ts +47 -0
  260. package/types/appShell/AppShell.d.ts.map +1 -0
  261. package/types/appShell/index.d.ts +1 -0
  262. package/types/appShell/index.d.ts.map +1 -1
  263. package/types/layouts/page.d.ts +5 -0
  264. package/types/layouts/page.d.ts.map +1 -1
  265. package/types/layouts/screenScroll.d.ts +24 -0
  266. package/types/layouts/screenScroll.d.ts.map +1 -1
  267. package/types/layouts/sidebar.d.ts +31 -1
  268. package/types/layouts/sidebar.d.ts.map +1 -1
@@ -0,0 +1,499 @@
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: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
+ value: true
24
+ }), mod);
25
+ var AppShell_exports = {};
26
+ __export(AppShell_exports, {
27
+ AppShell: () => AppShell,
28
+ appShellRoute: () => appShellRoute
29
+ });
30
+ module.exports = __toCommonJS(AppShell_exports);
31
+ var import_jsx_runtime = require("react/jsx-runtime");
32
+ var import_forms = require("@multiplatform.one/forms");
33
+ var import_platform = require("@multiplatform.one/platform");
34
+ var import_theme = require("@multiplatform.one/theme");
35
+ var import_react = require("@phosphor-icons/react");
36
+ var import_react2 = require("react");
37
+ var import_tamagui = require("tamagui");
38
+ var import_componentColors = require("../componentColors.native.js");
39
+ var import_DropdownMenu = require("../DropdownMenu");
40
+ var import_page = require("../layouts/page.native.js");
41
+ var import_screenScroll = require("../layouts/screenScroll.native.js");
42
+ var import_shellSidebarSlot = require("../layouts/shellSidebarSlot.native.js");
43
+ var import_bottomAccessory = require("../layouts/bottomAccessory.native.js");
44
+ var import_sidebar = require("../layouts/sidebar.native.js");
45
+ var import_i18n = require("../shared/i18n.native.js");
46
+ var import_TabHost = require("./TabHost.native.js");
47
+ var import_bottomChrome = require("./bottomChrome.native.js");
48
+ function underKey(path, key) {
49
+ if (key === "/") return path === "/";
50
+ return path === key || path.startsWith(`${key}/`);
51
+ }
52
+ function appShellRoute(destinations, path) {
53
+ var normal = path.length > 1 ? path.replace(/\/+$/, "") : path;
54
+ var destination;
55
+ var _iteratorNormalCompletion = true,
56
+ _didIteratorError = false,
57
+ _iteratorError = void 0;
58
+ try {
59
+ for (var _iterator = destinations[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
60
+ var candidate = _step.value;
61
+ if (candidate.onPress || !underKey(normal, candidate.key)) continue;
62
+ if (!destination || candidate.key.length > destination.key.length) destination = candidate;
63
+ }
64
+ } catch (err) {
65
+ _didIteratorError = true;
66
+ _iteratorError = err;
67
+ } finally {
68
+ try {
69
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
70
+ _iterator.return();
71
+ }
72
+ } finally {
73
+ if (_didIteratorError) {
74
+ throw _iteratorError;
75
+ }
76
+ }
77
+ }
78
+ return {
79
+ destination,
80
+ pushed: Boolean(destination && normal !== destination.key)
81
+ };
82
+ }
83
+ function useDocumentScrolled(enabled) {
84
+ var [scrolled, setScrolled] = (0, import_react2.useState)(false);
85
+ (0, import_react2.useEffect)(function () {
86
+ if (!enabled || typeof document === "undefined") return;
87
+ var sync = function sync2() {
88
+ return setScrolled(window.scrollY > 1);
89
+ };
90
+ sync();
91
+ window.addEventListener("scroll", sync, {
92
+ passive: true
93
+ });
94
+ return function () {
95
+ return window.removeEventListener("scroll", sync);
96
+ };
97
+ }, [enabled]);
98
+ return scrolled;
99
+ }
100
+ var sticky = function sticky2(edge) {
101
+ return import_platform.isWeb ? {
102
+ position: "sticky",
103
+ [edge]: 0,
104
+ zIndex: import_forms.zIndex.stickyHeader
105
+ } : null;
106
+ };
107
+ function HomeControl(param) {
108
+ var {
109
+ title,
110
+ onPress,
111
+ children
112
+ } = param;
113
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
114
+ role: "link",
115
+ "aria-label": title,
116
+ alignItems: "center",
117
+ minHeight: import_theme.MIN_PRESS_TARGET,
118
+ flexShrink: 1,
119
+ minWidth: 0,
120
+ gap: "$2",
121
+ cursor: "pointer",
122
+ onPress,
123
+ "data-testid": "app-shell-home",
124
+ children
125
+ });
126
+ }
127
+ function AppShellNavBar(param) {
128
+ var {
129
+ maxWidth,
130
+ leading,
131
+ trailing,
132
+ title,
133
+ showTitle,
134
+ scrolled
135
+ } = param;
136
+ var {
137
+ knobProps
138
+ } = (0, import_theme.useResolvedKnobs)({
139
+ component: "ScreenToolbar"
140
+ });
141
+ var [sides, setSides] = (0, import_react2.useState)({
142
+ leading: 0,
143
+ trailing: 0
144
+ });
145
+ var measure = function measure2(side) {
146
+ return function (event) {
147
+ var width = Math.ceil(event.nativeEvent.layout.width);
148
+ setSides(function (prev) {
149
+ return prev[side] === width ? prev : {
150
+ ...prev,
151
+ [side]: width
152
+ };
153
+ });
154
+ };
155
+ };
156
+ var motion = (0, import_theme.transitionProps)(knobProps.motion.control);
157
+ var clearance = Math.max(sides.leading, sides.trailing);
158
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_theme.Surface, {
159
+ bar: true,
160
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
161
+ role: "banner",
162
+ "data-testid": "app-shell-bar",
163
+ "data-scroll-edge": scrolled ? "" : void 0,
164
+ backgroundColor: "$background",
165
+ flexShrink: 0,
166
+ ...import_theme.hairline.bottom,
167
+ borderColor: scrolled ? import_componentColors.componentColors.divider : "transparent",
168
+ ...motion,
169
+ ...sticky("top"),
170
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
171
+ position: "relative",
172
+ width: "100%",
173
+ ...(maxWidth ? {
174
+ maxWidth,
175
+ alignSelf: "center"
176
+ } : null),
177
+ minHeight: import_theme.MIN_PRESS_TARGET,
178
+ alignItems: "center",
179
+ flexWrap: "nowrap",
180
+ paddingHorizontal: knobProps.panelPadding.padding,
181
+ ...knobProps.gap,
182
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
183
+ alignItems: "center",
184
+ flexShrink: 1e3,
185
+ minWidth: 0,
186
+ ...knobProps.gap,
187
+ onLayout: measure("leading"),
188
+ children: leading
189
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
190
+ flexGrow: 1
191
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
192
+ alignItems: "center",
193
+ flexShrink: 1,
194
+ minWidth: 0,
195
+ justifyContent: "flex-end",
196
+ ...knobProps.gap,
197
+ onLayout: measure("trailing"),
198
+ children: trailing
199
+ }), title ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
200
+ position: "absolute",
201
+ top: 0,
202
+ bottom: 0,
203
+ left: clearance,
204
+ right: clearance,
205
+ alignItems: "center",
206
+ justifyContent: "center",
207
+ pointerEvents: "none",
208
+ "aria-hidden": !showTitle,
209
+ "data-testid": "app-shell-bar-title",
210
+ opacity: showTitle ? 1 : 0,
211
+ ...motion,
212
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.SizableText, {
213
+ ...knobProps.body,
214
+ fontWeight: "600",
215
+ color: "$color12",
216
+ numberOfLines: 1,
217
+ children: title
218
+ })
219
+ }) : null]
220
+ })
221
+ })
222
+ });
223
+ }
224
+ function StackedPanel(param) {
225
+ var {
226
+ panel
227
+ } = param;
228
+ var {
229
+ knobProps
230
+ } = (0, import_theme.useResolvedKnobs)();
231
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
232
+ paddingHorizontal: knobProps.panelPadding.padding,
233
+ ...knobProps.gap,
234
+ "data-testid": "app-shell-page-panel",
235
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.SizableText, {
236
+ ...knobProps.body,
237
+ size: "$2",
238
+ textTransform: "uppercase",
239
+ color: knobProps.textAccentColor,
240
+ numberOfLines: 1,
241
+ children: panel.title
242
+ }), panel.content]
243
+ });
244
+ }
245
+ function AppShell(param) {
246
+ var {
247
+ destinations,
248
+ path,
249
+ onNavigate,
250
+ title,
251
+ logo,
252
+ onTitlePress,
253
+ actions,
254
+ onBack,
255
+ accessory,
256
+ ownChrome = [],
257
+ children,
258
+ testID = "app-shell"
259
+ } = param;
260
+ var _ref, _ref1;
261
+ var {
262
+ t
263
+ } = (0, import_i18n.useTranslation)();
264
+ var {
265
+ knobProps
266
+ } = (0, import_theme.useResolvedKnobs)();
267
+ var compact = (0, import_theme.useLayoutSizeClass)() === "compact";
268
+ var {
269
+ report,
270
+ reporter
271
+ } = (0, import_screenScroll.useShellScrollReports)();
272
+ var sidebarSlot = (0, import_shellSidebarSlot.useShellSidebarSlotState)();
273
+ var documentScrolled = useDocumentScrolled(import_platform.isWeb);
274
+ var chromeInset = (0, import_bottomChrome.useBottomChromeInset)();
275
+ var floatingBar = (0, import_bottomChrome.useFloatingBarMounted)();
276
+ var {
277
+ destination,
278
+ pushed
279
+ } = appShellRoute(destinations, path);
280
+ var ownsChrome = ownChrome.some(function (prefix) {
281
+ return underKey(path, prefix);
282
+ });
283
+ var go = function go2(item) {
284
+ return item.onPress ? item.onPress() : onNavigate(item.key);
285
+ };
286
+ var goHome = onTitlePress !== null && onTitlePress !== void 0 ? onTitlePress : function () {
287
+ return destinations[0] && go(destinations[0]);
288
+ };
289
+ var tabs = (0, import_react2.useMemo)(function () {
290
+ return destinations.filter(function (item) {
291
+ var _item_placement;
292
+ return ((_item_placement = item.placement) !== null && _item_placement !== void 0 ? _item_placement : "tab") === "tab";
293
+ });
294
+ }, [destinations]);
295
+ var more = (0, import_react2.useMemo)(function () {
296
+ return destinations.filter(function (item) {
297
+ return item.placement === "more";
298
+ });
299
+ }, [destinations]);
300
+ if (ownsChrome) {
301
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
302
+ flex: 1,
303
+ minHeight: 0,
304
+ backgroundColor: "$background",
305
+ ...(import_platform.isWeb ? {
306
+ height: "100dvh"
307
+ } : null),
308
+ "data-testid": testID,
309
+ "data-chrome": "own",
310
+ children
311
+ });
312
+ }
313
+ var pageBar = Boolean(report === null || report === void 0 ? void 0 : report.ownTopBar);
314
+ var scrolled = import_platform.isWeb ? documentScrolled : Boolean(report === null || report === void 0 ? void 0 : report.scrolled);
315
+ var largeTitle = (_ref = report === null || report === void 0 ? void 0 : report.title) !== null && _ref !== void 0 ? _ref : null;
316
+ var barTitle = (_ref1 = largeTitle !== null && largeTitle !== void 0 ? largeTitle : destination === null || destination === void 0 ? void 0 : destination.label) !== null && _ref1 !== void 0 ? _ref1 : null;
317
+ var showTitle = largeTitle ? Boolean(report === null || report === void 0 ? void 0 : report.collapsed) : Boolean(barTitle);
318
+ var back = pushed && onBack && destination && !pageBar ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_page.PageBackButton, {
319
+ label: destination.label,
320
+ onPress: function onPress() {
321
+ return onBack(destination.key);
322
+ }
323
+ }) : null;
324
+ var showBar = compact ? !pageBar : Boolean(back);
325
+ var moreMenu = compact && more.length > 0 ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DropdownMenu.DropdownMenu, {
326
+ placement: "bottom-end",
327
+ items: more.map(function (item) {
328
+ return {
329
+ key: item.key,
330
+ label: item.label,
331
+ icon: /* @__PURE__ */(0, import_react2.createElement)(item.icon),
332
+ onSelect: function onSelect() {
333
+ return go(item);
334
+ }
335
+ };
336
+ }),
337
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_page.PageBarButton, {
338
+ edge: "end",
339
+ icon: import_react.ListIcon,
340
+ "aria-label": t("More"),
341
+ "data-testid": "app-shell-more"
342
+ })
343
+ }) : null;
344
+ var bar = showBar ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(AppShellNavBar, {
345
+ leading: back !== null && back !== void 0 ? back : compact && logo ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(HomeControl, {
346
+ title,
347
+ onPress: goHome,
348
+ children: logo
349
+ }) : null,
350
+ trailing: compact ? /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
351
+ children: [actions, moreMenu]
352
+ }) : null,
353
+ maxWidth: compact ? void 0 : import_page.READABLE_MAX_WIDTH,
354
+ title: barTitle,
355
+ showTitle,
356
+ scrolled
357
+ }) : null;
358
+ var content = /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
359
+ role: "main",
360
+ flex: 1,
361
+ minWidth: 0,
362
+ ...(import_platform.isWeb ? null : {
363
+ minHeight: 0
364
+ }),
365
+ "data-testid": "app-shell-content",
366
+ children: compact ? children : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
367
+ flex: 1,
368
+ width: "100%",
369
+ maxWidth: import_page.READABLE_MAX_WIDTH,
370
+ alignSelf: "center",
371
+ ...(import_platform.isWeb ? null : {
372
+ minHeight: 0
373
+ }),
374
+ "data-testid": "app-shell-readable",
375
+ children
376
+ })
377
+ });
378
+ var showTabs = compact && Boolean(destination && tabs.includes(destination));
379
+ var tabItems = tabs.map(function (param2) {
380
+ var {
381
+ key,
382
+ label,
383
+ icon,
384
+ nativeIcon
385
+ } = param2;
386
+ return {
387
+ key,
388
+ label,
389
+ icon,
390
+ nativeIcon
391
+ };
392
+ });
393
+ var pageAccessory = accessory ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
394
+ flexShrink: 0,
395
+ ...(import_platform.isWeb || floatingBar ? null : {
396
+ paddingBottom: chromeInset
397
+ }),
398
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_bottomAccessory.BottomAccessory, {
399
+ children: accessory
400
+ })
401
+ }) : null;
402
+ var frame = compact ? /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
403
+ flex: 1,
404
+ backgroundColor: "$background",
405
+ ...(import_platform.isWeb ? {
406
+ minHeight: "100dvh"
407
+ } : null),
408
+ "data-testid": testID,
409
+ "data-size": "compact",
410
+ children: [bar, tabItems.length > 0 ? /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_TabHost.TabHost, {
411
+ items: tabItems,
412
+ activeKey: showTabs ? destination === null || destination === void 0 ? void 0 : destination.key : void 0,
413
+ onTabPress: function onTabPress(key) {
414
+ var item = tabs.find(function (tab) {
415
+ return tab.key === key;
416
+ });
417
+ if (item) go(item);
418
+ },
419
+ children: [content, pageAccessory]
420
+ }) : /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
421
+ children: [content, pageAccessory]
422
+ })]
423
+ }) : /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
424
+ flex: 1,
425
+ backgroundColor: "$background",
426
+ ...(import_platform.isWeb ? {
427
+ minHeight: "100dvh"
428
+ } : null),
429
+ "data-testid": testID,
430
+ "data-size": "regular",
431
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
432
+ flexShrink: 0,
433
+ alignSelf: "stretch",
434
+ ...(import_platform.isWeb ? {
435
+ position: "sticky",
436
+ top: 0,
437
+ height: "100dvh"
438
+ } : null),
439
+ "data-testid": "app-shell-sidebar",
440
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_sidebar.Sidebar, {
441
+ material: true,
442
+ "aria-label": title,
443
+ header: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
444
+ paddingHorizontal: knobProps.panelPadding.padding,
445
+ alignItems: "center",
446
+ minHeight: import_theme.MIN_PRESS_TARGET,
447
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(HomeControl, {
448
+ title,
449
+ onPress: goHome,
450
+ children: [logo, /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.SizableText, {
451
+ ...knobProps.heading,
452
+ fontWeight: "700",
453
+ color: "$color12",
454
+ numberOfLines: 1,
455
+ children: title
456
+ })]
457
+ })
458
+ }),
459
+ footer: actions ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
460
+ paddingHorizontal: knobProps.panelPadding.padding,
461
+ alignItems: "center",
462
+ minHeight: import_theme.MIN_PRESS_TARGET,
463
+ flexWrap: "wrap",
464
+ ...knobProps.gap,
465
+ "data-testid": "app-shell-sidebar-actions",
466
+ children: actions
467
+ }) : void 0,
468
+ sections: [{
469
+ items: destinations.map(function (item) {
470
+ return {
471
+ label: item.label,
472
+ value: item.key,
473
+ icon: /* @__PURE__ */(0, import_react2.createElement)(item.icon),
474
+ active: item === destination,
475
+ onPress: function onPress() {
476
+ return go(item);
477
+ }
478
+ };
479
+ })
480
+ }],
481
+ children: sidebarSlot.panel ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(StackedPanel, {
482
+ panel: sidebarSlot.panel
483
+ }) : null
484
+ })
485
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
486
+ flex: 1,
487
+ minWidth: 0,
488
+ children: [bar, content, pageAccessory]
489
+ })]
490
+ });
491
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_shellSidebarSlot.ShellSidebarSlotProvider, {
492
+ value: compact ? null : sidebarSlot.value,
493
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_screenScroll.ShellScrollReportScope, {
494
+ reporter,
495
+ children: frame
496
+ })
497
+ });
498
+ }
499
+ //# sourceMappingURL=AppShell.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","AppShell_exports","AppShell","appShellRoute","module","exports","import_jsx_runtime","require","import_forms","import_platform","import_theme","import_react","import_react2","import_tamagui","import_componentColors","import_DropdownMenu","import_page","import_screenScroll","import_shellSidebarSlot","import_bottomAccessory","import_sidebar","import_i18n","import_TabHost","import_bottomChrome","underKey","path","startsWith","destinations","normal","length","replace","destination","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","candidate","onPress","err","return","pushed","Boolean","useDocumentScrolled","enabled","scrolled","setScrolled","useState","useEffect","document","sync","sync2","window","scrollY","addEventListener","passive","removeEventListener","sticky","sticky2","edge","isWeb","position","zIndex","stickyHeader","HomeControl","param","title","children","jsx","XStack","role","alignItems","minHeight","MIN_PRESS_TARGET","flexShrink","minWidth","gap","cursor","AppShellNavBar","maxWidth","leading","trailing","showTitle","knobProps","useResolvedKnobs","component","sides","setSides","measure","measure2","side","event","width","Math","ceil","nativeEvent","layout","prev","motion","transitionProps","control","clearance","max","Surface","bar","YStack","backgroundColor","hairline","bottom","borderColor","componentColors","divider","jsxs","alignSelf","flexWrap","paddingHorizontal","panelPadding","padding","onLayout","flexGrow","justifyContent","top","left","right","pointerEvents","opacity","SizableText","body","fontWeight","color","numberOfLines","StackedPanel","panel","size","textTransform","textAccentColor","content","onNavigate","logo","onTitlePress","actions","onBack","accessory","ownChrome","testID","_ref","_ref1","t","useTranslation","compact","useLayoutSizeClass","report","reporter","useShellScrollReports","sidebarSlot","useShellSidebarSlotState","documentScrolled","chromeInset","useBottomChromeInset","floatingBar","useFloatingBarMounted","ownsChrome","some","prefix","go","go2","item","goHome","tabs","useMemo","filter","_item_placement","placement","more","flex","height","pageBar","ownTopBar","largeTitle","barTitle","label","collapsed","back","PageBackButton","showBar","moreMenu","DropdownMenu","items","map","icon","createElement","onSelect","PageBarButton","ListIcon","Fragment","READABLE_MAX_WIDTH","showTabs","includes","tabItems","param2","nativeIcon","pageAccessory","paddingBottom","BottomAccessory","frame","TabHost","activeKey","onTabPress","find","tab","Sidebar","material","header","heading","footer","sections","active","ShellSidebarSlotProvider","ShellScrollReportScope"],"sources":["AppShell.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar AppShell_exports = {};\n__export(AppShell_exports, {\n AppShell: () => AppShell,\n appShellRoute: () => appShellRoute\n});\nmodule.exports = __toCommonJS(AppShell_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_forms = require(\"@multiplatform.one/forms\");\nvar import_platform = require(\"@multiplatform.one/platform\");\nvar import_theme = require(\"@multiplatform.one/theme\");\nvar import_react = require(\"@phosphor-icons/react\");\nvar import_react2 = require(\"react\");\nvar import_tamagui = require(\"tamagui\");\nvar import_componentColors = require(\"../componentColors\");\nvar import_DropdownMenu = require(\"../DropdownMenu\");\nvar import_page = require(\"../layouts/page\");\nvar import_screenScroll = require(\"../layouts/screenScroll\");\nvar import_shellSidebarSlot = require(\"../layouts/shellSidebarSlot\");\nvar import_bottomAccessory = require(\"../layouts/bottomAccessory\");\nvar import_sidebar = require(\"../layouts/sidebar\");\nvar import_i18n = require(\"../shared/i18n\");\nvar import_TabHost = require(\"./TabHost\");\nvar import_bottomChrome = require(\"./bottomChrome\");\nfunction underKey(path, key) {\n if (key === \"/\") return path === \"/\";\n return path === key || path.startsWith(`${key}/`);\n}\nfunction appShellRoute(destinations, path) {\n var normal = path.length > 1 ? path.replace(/\\/+$/, \"\") : path;\n var destination;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = destinations[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var candidate = _step.value;\n if (candidate.onPress || !underKey(normal, candidate.key)) continue;\n if (!destination || candidate.key.length > destination.key.length) destination = candidate;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return {\n destination,\n pushed: Boolean(destination && normal !== destination.key)\n };\n}\nfunction useDocumentScrolled(enabled) {\n var [scrolled, setScrolled] = (0, import_react2.useState)(false);\n (0, import_react2.useEffect)(function() {\n if (!enabled || typeof document === \"undefined\") return;\n var sync = function sync2() {\n return setScrolled(window.scrollY > 1);\n };\n sync();\n window.addEventListener(\"scroll\", sync, {\n passive: true\n });\n return function() {\n return window.removeEventListener(\"scroll\", sync);\n };\n }, [\n enabled\n ]);\n return scrolled;\n}\nvar sticky = function sticky2(edge) {\n return import_platform.isWeb ? {\n position: \"sticky\",\n [edge]: 0,\n zIndex: import_forms.zIndex.stickyHeader\n } : null;\n};\nfunction HomeControl(param) {\n var { title, onPress, children } = param;\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tamagui.XStack, {\n role: \"link\",\n \"aria-label\": title,\n alignItems: \"center\",\n minHeight: import_theme.MIN_PRESS_TARGET,\n flexShrink: 1,\n minWidth: 0,\n gap: \"$2\",\n cursor: \"pointer\",\n onPress,\n \"data-testid\": \"app-shell-home\",\n children\n });\n}\nfunction AppShellNavBar(param) {\n var { maxWidth, leading, trailing, title, showTitle, scrolled } = param;\n var { knobProps } = (0, import_theme.useResolvedKnobs)({\n component: \"ScreenToolbar\"\n });\n var [sides, setSides] = (0, import_react2.useState)({\n leading: 0,\n trailing: 0\n });\n var measure = function measure2(side) {\n return function(event) {\n var width = Math.ceil(event.nativeEvent.layout.width);\n setSides(function(prev) {\n return prev[side] === width ? prev : {\n ...prev,\n [side]: width\n };\n });\n };\n };\n var motion = (0, import_theme.transitionProps)(knobProps.motion.control);\n var clearance = Math.max(sides.leading, sides.trailing);\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_theme.Surface, {\n bar: true,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tamagui.YStack, {\n role: \"banner\",\n \"data-testid\": \"app-shell-bar\",\n \"data-scroll-edge\": scrolled ? \"\" : void 0,\n backgroundColor: \"$background\",\n flexShrink: 0,\n ...import_theme.hairline.bottom,\n borderColor: scrolled ? import_componentColors.componentColors.divider : \"transparent\",\n ...motion,\n ...sticky(\"top\"),\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {\n position: \"relative\",\n width: \"100%\",\n ...maxWidth ? {\n maxWidth,\n alignSelf: \"center\"\n } : null,\n minHeight: import_theme.MIN_PRESS_TARGET,\n alignItems: \"center\",\n flexWrap: \"nowrap\",\n paddingHorizontal: knobProps.panelPadding.padding,\n ...knobProps.gap,\n children: [\n /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tamagui.XStack, {\n alignItems: \"center\",\n flexShrink: 1e3,\n minWidth: 0,\n ...knobProps.gap,\n onLayout: measure(\"leading\"),\n children: leading\n }),\n /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tamagui.XStack, {\n flexGrow: 1\n }),\n /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tamagui.XStack, {\n alignItems: \"center\",\n flexShrink: 1,\n minWidth: 0,\n justifyContent: \"flex-end\",\n ...knobProps.gap,\n onLayout: measure(\"trailing\"),\n children: trailing\n }),\n title ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tamagui.XStack, {\n position: \"absolute\",\n top: 0,\n bottom: 0,\n left: clearance,\n right: clearance,\n alignItems: \"center\",\n justifyContent: \"center\",\n pointerEvents: \"none\",\n \"aria-hidden\": !showTitle,\n \"data-testid\": \"app-shell-bar-title\",\n opacity: showTitle ? 1 : 0,\n ...motion,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tamagui.SizableText, {\n ...knobProps.body,\n fontWeight: \"600\",\n color: \"$color12\",\n numberOfLines: 1,\n children: title\n })\n }) : null\n ]\n })\n })\n });\n}\nfunction StackedPanel(param) {\n var { panel } = param;\n var { knobProps } = (0, import_theme.useResolvedKnobs)();\n return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {\n paddingHorizontal: knobProps.panelPadding.padding,\n ...knobProps.gap,\n \"data-testid\": \"app-shell-page-panel\",\n children: [\n /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tamagui.SizableText, {\n ...knobProps.body,\n size: \"$2\",\n textTransform: \"uppercase\",\n color: knobProps.textAccentColor,\n numberOfLines: 1,\n children: panel.title\n }),\n panel.content\n ]\n });\n}\nfunction AppShell(param) {\n var { destinations, path, onNavigate, title, logo, onTitlePress, actions, onBack, accessory, ownChrome = [], children, testID = \"app-shell\" } = param;\n var _ref, _ref1;\n var { t } = (0, import_i18n.useTranslation)();\n var { knobProps } = (0, import_theme.useResolvedKnobs)();\n var compact = (0, import_theme.useLayoutSizeClass)() === \"compact\";\n var { report, reporter } = (0, import_screenScroll.useShellScrollReports)();\n var sidebarSlot = (0, import_shellSidebarSlot.useShellSidebarSlotState)();\n var documentScrolled = useDocumentScrolled(import_platform.isWeb);\n var chromeInset = (0, import_bottomChrome.useBottomChromeInset)();\n var floatingBar = (0, import_bottomChrome.useFloatingBarMounted)();\n var { destination, pushed } = appShellRoute(destinations, path);\n var ownsChrome = ownChrome.some(function(prefix) {\n return underKey(path, prefix);\n });\n var go = function go2(item) {\n return item.onPress ? item.onPress() : onNavigate(item.key);\n };\n var goHome = onTitlePress !== null && onTitlePress !== void 0 ? onTitlePress : function() {\n return destinations[0] && go(destinations[0]);\n };\n var tabs = (0, import_react2.useMemo)(function() {\n return destinations.filter(function(item) {\n var _item_placement;\n return ((_item_placement = item.placement) !== null && _item_placement !== void 0 ? _item_placement : \"tab\") === \"tab\";\n });\n }, [\n destinations\n ]);\n var more = (0, import_react2.useMemo)(function() {\n return destinations.filter(function(item) {\n return item.placement === \"more\";\n });\n }, [\n destinations\n ]);\n if (ownsChrome) {\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tamagui.YStack, {\n flex: 1,\n minHeight: 0,\n backgroundColor: \"$background\",\n ...import_platform.isWeb ? {\n height: \"100dvh\"\n } : null,\n \"data-testid\": testID,\n \"data-chrome\": \"own\",\n children\n });\n }\n var pageBar = Boolean(report === null || report === void 0 ? void 0 : report.ownTopBar);\n var scrolled = import_platform.isWeb ? documentScrolled : Boolean(report === null || report === void 0 ? void 0 : report.scrolled);\n var largeTitle = (_ref = report === null || report === void 0 ? void 0 : report.title) !== null && _ref !== void 0 ? _ref : null;\n var barTitle = (_ref1 = largeTitle !== null && largeTitle !== void 0 ? largeTitle : destination === null || destination === void 0 ? void 0 : destination.label) !== null && _ref1 !== void 0 ? _ref1 : null;\n var showTitle = largeTitle ? Boolean(report === null || report === void 0 ? void 0 : report.collapsed) : Boolean(barTitle);\n var back = pushed && onBack && destination && !pageBar ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_page.PageBackButton, {\n label: destination.label,\n onPress: function onPress() {\n return onBack(destination.key);\n }\n }) : null;\n var showBar = compact ? !pageBar : Boolean(back);\n var moreMenu = compact && more.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_DropdownMenu.DropdownMenu, {\n placement: \"bottom-end\",\n items: more.map(function(item) {\n return {\n key: item.key,\n label: item.label,\n icon: /* @__PURE__ */ (0, import_react2.createElement)(item.icon),\n onSelect: function onSelect() {\n return go(item);\n }\n };\n }),\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_page.PageBarButton, {\n edge: \"end\",\n icon: import_react.ListIcon,\n \"aria-label\": t(\"More\"),\n \"data-testid\": \"app-shell-more\"\n })\n }) : null;\n var bar = showBar ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AppShellNavBar, {\n leading: back !== null && back !== void 0 ? back : compact && logo ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(HomeControl, {\n title,\n onPress: goHome,\n children: logo\n }) : null,\n trailing: compact ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {\n children: [\n actions,\n moreMenu\n ]\n }) : null,\n maxWidth: compact ? void 0 : import_page.READABLE_MAX_WIDTH,\n title: barTitle,\n showTitle,\n scrolled\n }) : null;\n var content = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tamagui.YStack, {\n role: \"main\",\n flex: 1,\n minWidth: 0,\n ...import_platform.isWeb ? null : {\n minHeight: 0\n },\n \"data-testid\": \"app-shell-content\",\n children: compact ? children : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tamagui.YStack, {\n flex: 1,\n width: \"100%\",\n maxWidth: import_page.READABLE_MAX_WIDTH,\n alignSelf: \"center\",\n ...import_platform.isWeb ? null : {\n minHeight: 0\n },\n \"data-testid\": \"app-shell-readable\",\n children\n })\n });\n var showTabs = compact && Boolean(destination && tabs.includes(destination));\n var tabItems = tabs.map(function(param2) {\n var { key, label, icon, nativeIcon } = param2;\n return {\n key,\n label,\n icon,\n nativeIcon\n };\n });\n var pageAccessory = accessory ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tamagui.YStack, {\n flexShrink: 0,\n ...import_platform.isWeb || floatingBar ? null : {\n paddingBottom: chromeInset\n },\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_bottomAccessory.BottomAccessory, {\n children: accessory\n })\n }) : null;\n var frame = compact ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {\n flex: 1,\n backgroundColor: \"$background\",\n ...import_platform.isWeb ? {\n minHeight: \"100dvh\"\n } : null,\n \"data-testid\": testID,\n \"data-size\": \"compact\",\n children: [\n bar,\n tabItems.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_TabHost.TabHost, {\n items: tabItems,\n activeKey: showTabs ? destination === null || destination === void 0 ? void 0 : destination.key : void 0,\n onTabPress: function onTabPress(key) {\n var item = tabs.find(function(tab) {\n return tab.key === key;\n });\n if (item) go(item);\n },\n children: [\n content,\n pageAccessory\n ]\n }) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {\n children: [\n content,\n pageAccessory\n ]\n })\n ]\n }) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {\n flex: 1,\n backgroundColor: \"$background\",\n ...import_platform.isWeb ? {\n minHeight: \"100dvh\"\n } : null,\n \"data-testid\": testID,\n \"data-size\": \"regular\",\n children: [\n /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tamagui.YStack, {\n flexShrink: 0,\n alignSelf: \"stretch\",\n ...import_platform.isWeb ? {\n position: \"sticky\",\n top: 0,\n height: \"100dvh\"\n } : null,\n \"data-testid\": \"app-shell-sidebar\",\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_sidebar.Sidebar, {\n material: true,\n \"aria-label\": title,\n header: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tamagui.XStack, {\n paddingHorizontal: knobProps.panelPadding.padding,\n alignItems: \"center\",\n minHeight: import_theme.MIN_PRESS_TARGET,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(HomeControl, {\n title,\n onPress: goHome,\n children: [\n logo,\n /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tamagui.SizableText, {\n ...knobProps.heading,\n fontWeight: \"700\",\n color: \"$color12\",\n numberOfLines: 1,\n children: title\n })\n ]\n })\n }),\n footer: actions ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tamagui.XStack, {\n paddingHorizontal: knobProps.panelPadding.padding,\n alignItems: \"center\",\n minHeight: import_theme.MIN_PRESS_TARGET,\n flexWrap: \"wrap\",\n ...knobProps.gap,\n \"data-testid\": \"app-shell-sidebar-actions\",\n children: actions\n }) : void 0,\n sections: [\n {\n items: destinations.map(function(item) {\n return {\n label: item.label,\n value: item.key,\n icon: /* @__PURE__ */ (0, import_react2.createElement)(item.icon),\n active: item === destination,\n onPress: function onPress() {\n return go(item);\n }\n };\n })\n }\n ],\n children: sidebarSlot.panel ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StackedPanel, {\n panel: sidebarSlot.panel\n }) : null\n })\n }),\n /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {\n flex: 1,\n minWidth: 0,\n children: [\n bar,\n content,\n pageAccessory\n ]\n })\n ]\n });\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_shellSidebarSlot.ShellSidebarSlotProvider, {\n value: compact ? null : sidebarSlot.value,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_screenScroll.ShellScrollReportScope, {\n reporter,\n children: frame\n })\n });\n}\n//# sourceMappingURL=AppShell.js.map\n"],"mappings":"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","ignoreList":[]}
@@ -34,4 +34,5 @@ __reExport(appShell_exports, require("./TabBar.cjs"), module.exports);
34
34
  var import_TabHost = require("./TabHost.cjs");
35
35
  __reExport(appShell_exports, require("./Springboard.cjs"), module.exports);
36
36
  __reExport(appShell_exports, require("./SettingsSplit.cjs"), module.exports);
37
+ __reExport(appShell_exports, require("./AppShell.cjs"), module.exports);
37
38
  var import_bottomChrome = require("./bottomChrome.cjs");
@@ -36,5 +36,6 @@ __reExport(appShell_exports, require("./TabBar.native.js"), module.exports);
36
36
  var import_TabHost = require("./TabHost.native.js");
37
37
  __reExport(appShell_exports, require("./Springboard.native.js"), module.exports);
38
38
  __reExport(appShell_exports, require("./SettingsSplit.native.js"), module.exports);
39
+ __reExport(appShell_exports, require("./AppShell.native.js"), module.exports);
39
40
  var import_bottomChrome = require("./bottomChrome.native.js");
40
41
  //# sourceMappingURL=index.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__reExport","mod","secondTarget","__toCommonJS","value","appShell_exports","TabHost","import_TabHost","useBottomChromeInset","import_bottomChrome","module","exports","require"],"sources":["index.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar appShell_exports = {};\n__export(appShell_exports, {\n TabHost: () => import_TabHost.TabHost,\n useBottomChromeInset: () => import_bottomChrome.useBottomChromeInset\n});\nmodule.exports = __toCommonJS(appShell_exports);\n__reExport(appShell_exports, require(\"./SystemBar\"), module.exports);\n__reExport(appShell_exports, require(\"./ScopeMenu\"), module.exports);\n__reExport(appShell_exports, require(\"./Dock\"), module.exports);\n__reExport(appShell_exports, require(\"./TabBar\"), module.exports);\nvar import_TabHost = require(\"./TabHost\");\n__reExport(appShell_exports, require(\"./Springboard\"), module.exports);\n__reExport(appShell_exports, require(\"./SettingsSplit\"), module.exports);\nvar import_bottomChrome = require(\"./bottomChrome\");\n//# sourceMappingURL=index.js.map\n"],"mappings":"AAAA,YAAY;;AACZ,IAAIA,SAAS,GAAGC,MAAM,CAACC,cAAc;AACrC,IAAIC,gBAAgB,GAAGF,MAAM,CAACG,wBAAwB;AACtD,IAAIC,iBAAiB,GAAGJ,MAAM,CAACK,mBAAmB;AAClD,IAAIC,YAAY,GAAGN,MAAM,CAACO,SAAS,CAACC,cAAc;AAClD,IAAIC,QAAQ,GAAGA,CAACC,MAAM,EAAEC,GAAG,KAAK;EAC9B,KAAK,IAAIC,IAAI,IAAID,GAAG,EAClBZ,SAAS,CAACW,MAAM,EAAEE,IAAI,EAAE;IAAEC,GAAG,EAAEF,GAAG,CAACC,IAAI,CAAC;IAAEE,UAAU,EAAE;EAAK,CAAC,CAAC;AACjE,CAAC;AACD,IAAIC,WAAW,GAAGA,CAACC,EAAE,EAAEC,IAAI,EAAEC,MAAM,EAAEC,IAAI,KAAK;EAC5C,IAAIF,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAI,OAAOA,IAAI,KAAK,UAAU,EAAE;IAClE,KAAK,IAAIG,GAAG,IAAIhB,iBAAiB,CAACa,IAAI,CAAC,EACrC,IAAI,CAACX,YAAY,CAACe,IAAI,CAACL,EAAE,EAAEI,GAAG,CAAC,IAAIA,GAAG,KAAKF,MAAM,EAC/CnB,SAAS,CAACiB,EAAE,EAAEI,GAAG,EAAE;MAAEP,GAAG,EAAEA,CAAA,KAAMI,IAAI,CAACG,GAAG,CAAC;MAAEN,UAAU,EAAE,EAAEK,IAAI,GAAGjB,gBAAgB,CAACe,IAAI,EAAEG,GAAG,CAAC,CAAC,IAAID,IAAI,CAACL;IAAW,CAAC,CAAC;EACxH;EACA,OAAOE,EAAE;AACX,CAAC;AACD,IAAIM,UAAU,GAAGA,CAACZ,MAAM,EAAEa,GAAG,EAAEC,YAAY,MAAMT,WAAW,CAACL,MAAM,EAAEa,GAAG,EAAE,SAAS,CAAC,EAAEC,YAAY,IAAIT,WAAW,CAACS,YAAY,EAAED,GAAG,EAAE,SAAS,CAAC,CAAC;AAChJ,IAAIE,YAAY,GAAIF,GAAG,IAAKR,WAAW,CAAChB,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE;EAAE2B,KAAK,EAAE;AAAK,CAAC,CAAC,EAAEH,GAAG,CAAC;AAC1F,IAAII,gBAAgB,GAAG,CAAC,CAAC;AACzBlB,QAAQ,CAACkB,gBAAgB,EAAE;EACzBC,OAAO,EAAEA,CAAA,KAAMC,cAAc,CAACD,OAAO;EACrCE,oBAAoB,EAAEA,CAAA,KAAMC,mBAAmB,CAACD;AAClD,CAAC,CAAC;AACFE,MAAM,CAACC,OAAO,GAAGR,YAAY,CAACE,gBAAgB,CAAC;AAC/CL,UAAU,CAACK,gBAAgB,EAAEO,OAAO,CAAC,uBAAa,CAAC,EAAEF,MAAM,CAACC,OAAO,CAAC;AACpEX,UAAU,CAACK,gBAAgB,EAAEO,OAAO,CAAC,uBAAa,CAAC,EAAEF,MAAM,CAACC,OAAO,CAAC;AACpEX,UAAU,CAACK,gBAAgB,EAAEO,OAAO,CAAC,kBAAQ,CAAC,EAAEF,MAAM,CAACC,OAAO,CAAC;AAC/DX,UAAU,CAACK,gBAAgB,EAAEO,OAAO,CAAC,oBAAU,CAAC,EAAEF,MAAM,CAACC,OAAO,CAAC;AACjE,IAAIJ,cAAc,GAAGK,OAAO,CAAC,qBAAW,CAAC;AACzCZ,UAAU,CAACK,gBAAgB,EAAEO,OAAO,CAAC,yBAAe,CAAC,EAAEF,MAAM,CAACC,OAAO,CAAC;AACtEX,UAAU,CAACK,gBAAgB,EAAEO,OAAO,CAAC,2BAAiB,CAAC,EAAEF,MAAM,CAACC,OAAO,CAAC;AACxE,IAAIF,mBAAmB,GAAGG,OAAO,CAAC,0BAAgB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__reExport","mod","secondTarget","__toCommonJS","value","appShell_exports","TabHost","import_TabHost","useBottomChromeInset","import_bottomChrome","module","exports","require"],"sources":["index.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar appShell_exports = {};\n__export(appShell_exports, {\n TabHost: () => import_TabHost.TabHost,\n useBottomChromeInset: () => import_bottomChrome.useBottomChromeInset\n});\nmodule.exports = __toCommonJS(appShell_exports);\n__reExport(appShell_exports, require(\"./SystemBar\"), module.exports);\n__reExport(appShell_exports, require(\"./ScopeMenu\"), module.exports);\n__reExport(appShell_exports, require(\"./Dock\"), module.exports);\n__reExport(appShell_exports, require(\"./TabBar\"), module.exports);\nvar import_TabHost = require(\"./TabHost\");\n__reExport(appShell_exports, require(\"./Springboard\"), module.exports);\n__reExport(appShell_exports, require(\"./SettingsSplit\"), module.exports);\n__reExport(appShell_exports, require(\"./AppShell\"), module.exports);\nvar import_bottomChrome = require(\"./bottomChrome\");\n//# sourceMappingURL=index.js.map\n"],"mappings":"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","ignoreList":[]}
@@ -31,6 +31,7 @@ __export(page_exports, {
31
31
  PageHeader: () => PageHeader,
32
32
  PageMenuButton: () => PageMenuButton,
33
33
  PageSection: () => PageSection,
34
+ READABLE_MAX_WIDTH: () => READABLE_MAX_WIDTH,
34
35
  Screen: () => Screen,
35
36
  ScreenToolbar: () => ScreenToolbar
36
37
  });
@@ -64,6 +65,7 @@ function negateSpaceToken(token) {
64
65
  return `$-${token.startsWith("$") ? token.slice(1) : token}`;
65
66
  }
66
67
  const CONTENT_MAX_WIDTH = import_theme.layoutBreakpoints.xl;
68
+ const READABLE_MAX_WIDTH = import_theme.layoutBreakpoints.expanded;
67
69
  function Screen(props) {
68
70
  const parent = (0, import_theme.useParentScreen)();
69
71
  return parent ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(NestedScreen, {
@@ -190,6 +192,7 @@ function PageShell({
190
192
  component: "Screen"
191
193
  });
192
194
  const scrollState = (0, import_screenScroll.useScreenScrollController)();
195
+ (0, import_screenScroll.useReportScreenScroll)(scrollState.state, Boolean(topBar));
193
196
  const [accessories] = (0, import_react2.useState)(import_bottomAccessory.createBottomAccessoryStore);
194
197
  const chromeInset = (0, import_bottomChrome.useBottomChromeInset)();
195
198
  const inset = noPadding ? null : knobProps.panelPadding.padding;