gemi 0.9.2 → 0.10.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 (118) hide show
  1. package/dist/app/index.js +2 -2
  2. package/dist/app/index.js.map +1 -1
  3. package/dist/bin/gemi.js +35394 -0
  4. package/dist/bin/gemi.js.map +94 -0
  5. package/dist/broadcasting/index.js +1 -1
  6. package/dist/chunk-0gr0rj7r.js +4 -0
  7. package/dist/{chunk-b8d5htph.js.map → chunk-0gr0rj7r.js.map} +2 -2
  8. package/dist/chunk-18anmejw.js +13 -0
  9. package/dist/{chunk-t6h32cqw.js.map → chunk-18anmejw.js.map} +4 -4
  10. package/dist/chunk-35zcs0pk.js +4 -0
  11. package/dist/{chunk-d1jvc299.js.map → chunk-35zcs0pk.js.map} +5 -5
  12. package/dist/chunk-3hb4j4tb.js +11 -0
  13. package/dist/{chunk-t0br3jky.js.map → chunk-3hb4j4tb.js.map} +2 -2
  14. package/dist/chunk-3vm1nb1w.js +11 -0
  15. package/dist/{chunk-avqfpn5v.js.map → chunk-3vm1nb1w.js.map} +5 -5
  16. package/dist/{chunk-vvdgy5ba.js → chunk-5f0rzak7.js} +3 -3
  17. package/dist/{chunk-vvdgy5ba.js.map → chunk-5f0rzak7.js.map} +1 -1
  18. package/dist/{chunk-wrtx683g.js → chunk-63hxfm31.js} +3 -3
  19. package/dist/{chunk-wrtx683g.js.map → chunk-63hxfm31.js.map} +1 -1
  20. package/dist/chunk-767yrc2c.js +4 -0
  21. package/dist/{chunk-vqpqea57.js.map → chunk-767yrc2c.js.map} +2 -2
  22. package/dist/chunk-as0ze3hk.js +5 -0
  23. package/dist/{chunk-6g1mntab.js.map → chunk-as0ze3hk.js.map} +6 -6
  24. package/dist/chunk-cn143fca.js +6 -0
  25. package/dist/{chunk-x46drz7r.js.map → chunk-cn143fca.js.map} +2 -2
  26. package/dist/chunk-e077ya3j.js +22 -0
  27. package/dist/{chunk-vress81a.js.map → chunk-e077ya3j.js.map} +2 -2
  28. package/dist/chunk-e21gmk4a.js +4 -0
  29. package/dist/{chunk-5yex263y.js.map → chunk-e21gmk4a.js.map} +2 -2
  30. package/dist/{chunk-2myc2s6w.js → chunk-gkzrn1xy.js} +3 -3
  31. package/dist/{chunk-2myc2s6w.js.map → chunk-gkzrn1xy.js.map} +1 -1
  32. package/dist/chunk-gzc58n6z.js +4 -0
  33. package/dist/{chunk-hwaaf04e.js.map → chunk-gzc58n6z.js.map} +2 -2
  34. package/dist/chunk-hcxp20gw.js +4 -0
  35. package/dist/{chunk-641dtrzq.js.map → chunk-hcxp20gw.js.map} +2 -2
  36. package/dist/{chunk-k9katf2f.js → chunk-j61ayndh.js} +2 -2
  37. package/dist/{chunk-k9katf2f.js.map → chunk-j61ayndh.js.map} +1 -1
  38. package/dist/chunk-jbnkc3n4.js +4 -0
  39. package/dist/{chunk-qbvhdtxt.js.map → chunk-jbnkc3n4.js.map} +2 -2
  40. package/dist/chunk-myntqyk8.js +4 -0
  41. package/dist/chunk-myntqyk8.js.map +14 -0
  42. package/dist/chunk-ng7ryvkk.js +4 -0
  43. package/dist/{chunk-w8eezrzs.js.map → chunk-ng7ryvkk.js.map} +2 -2
  44. package/dist/chunk-njsvs0gx.js +41 -0
  45. package/dist/{chunk-8arqqbhx.js.map → chunk-njsvs0gx.js.map} +13 -11
  46. package/dist/chunk-nshcr6nw.js +4 -0
  47. package/dist/{chunk-wv5423nm.js.map → chunk-nshcr6nw.js.map} +2 -2
  48. package/dist/chunk-nyn5gztt.js +4 -0
  49. package/dist/{chunk-ameyxxdy.js.map → chunk-nyn5gztt.js.map} +5 -5
  50. package/dist/chunk-rsj6ke1v.js +8 -0
  51. package/dist/{chunk-36mj8mav.js.map → chunk-rsj6ke1v.js.map} +2 -2
  52. package/dist/chunk-v0mpng4p.js +4 -0
  53. package/dist/{chunk-0wqf4729.js.map → chunk-v0mpng4p.js.map} +2 -2
  54. package/dist/chunk-x02snmef.js +3 -0
  55. package/dist/chunk-x02snmef.js.map +15 -0
  56. package/dist/chunk-xd3556sw.js +4 -0
  57. package/dist/{chunk-9qk0pjxc.js.map → chunk-xd3556sw.js.map} +2 -2
  58. package/dist/chunk-y2fy75zm.js +4 -0
  59. package/dist/{chunk-crahc1t6.js.map → chunk-y2fy75zm.js.map} +2 -2
  60. package/dist/chunk-zjy4ngej.js +5 -0
  61. package/dist/{chunk-zp1h0k9v.js.map → chunk-zjy4ngej.js.map} +5 -5
  62. package/dist/client/ClientRouter.d.ts.map +1 -1
  63. package/dist/client/ClientRouterContext.d.ts +4 -1
  64. package/dist/client/ClientRouterContext.d.ts.map +1 -1
  65. package/dist/client/ServerDataProvider.d.ts +4 -0
  66. package/dist/client/ServerDataProvider.d.ts.map +1 -1
  67. package/dist/client/index.d.ts +1 -0
  68. package/dist/client/index.d.ts.map +1 -1
  69. package/dist/client/index.js +35 -5
  70. package/dist/client/index.js.map +1 -1
  71. package/dist/client/useBreadcrumbs.d.ts +6 -0
  72. package/dist/client/useBreadcrumbs.d.ts.map +1 -0
  73. package/dist/client/useNavigate.d.ts.map +1 -1
  74. package/dist/email/index.js +2 -2
  75. package/dist/email/index.js.map +1 -1
  76. package/dist/facades/index.js +5 -2
  77. package/dist/facades/index.js.map +2 -2
  78. package/dist/http/ViewRouter.d.ts +14 -4
  79. package/dist/http/ViewRouter.d.ts.map +1 -1
  80. package/dist/http/index.js +2 -2
  81. package/dist/http/index.js.map +3 -3
  82. package/dist/kernel/index.js +2 -2
  83. package/dist/kernel/index.js.map +2 -2
  84. package/dist/server/index.js +6 -6
  85. package/dist/server/index.js.map +2 -2
  86. package/dist/services/index.js +63 -3
  87. package/dist/services/index.js.map +2 -2
  88. package/dist/services/router/ViewRouterServiceContainer.d.ts +1 -0
  89. package/dist/services/router/ViewRouterServiceContainer.d.ts.map +1 -1
  90. package/dist/services/router/createFlatViewRoutes.d.ts.map +1 -1
  91. package/package.json +3 -3
  92. package/dist/bin/index.js +0 -35238
  93. package/dist/chunk-0wqf4729.js +0 -4
  94. package/dist/chunk-36mj8mav.js +0 -8
  95. package/dist/chunk-5yex263y.js +0 -4
  96. package/dist/chunk-641dtrzq.js +0 -4
  97. package/dist/chunk-6g1mntab.js +0 -4
  98. package/dist/chunk-8arqqbhx.js +0 -20
  99. package/dist/chunk-9qk0pjxc.js +0 -4
  100. package/dist/chunk-ameyxxdy.js +0 -4
  101. package/dist/chunk-avqfpn5v.js +0 -11
  102. package/dist/chunk-b8d5htph.js +0 -4
  103. package/dist/chunk-crahc1t6.js +0 -4
  104. package/dist/chunk-d1jvc299.js +0 -4
  105. package/dist/chunk-ek6n8gyv.js +0 -4
  106. package/dist/chunk-ek6n8gyv.js.map +0 -10
  107. package/dist/chunk-hwaaf04e.js +0 -4
  108. package/dist/chunk-hzfj9k0z.js +0 -4
  109. package/dist/chunk-hzfj9k0z.js.map +0 -14
  110. package/dist/chunk-qbvhdtxt.js +0 -4
  111. package/dist/chunk-t0br3jky.js +0 -4
  112. package/dist/chunk-t6h32cqw.js +0 -5
  113. package/dist/chunk-vqpqea57.js +0 -4
  114. package/dist/chunk-vress81a.js +0 -22
  115. package/dist/chunk-w8eezrzs.js +0 -4
  116. package/dist/chunk-wv5423nm.js +0 -4
  117. package/dist/chunk-x46drz7r.js +0 -4
  118. package/dist/chunk-zp1h0k9v.js +0 -4
@@ -1416,6 +1416,7 @@ function useNavigate() {
1416
1416
  const {
1417
1417
  data,
1418
1418
  prefetchedData,
1419
+ breadcrumbs,
1419
1420
  directive = {},
1420
1421
  is404 = false
1421
1422
  } = await res.json();
@@ -1426,7 +1427,7 @@ function useNavigate() {
1426
1427
  }
1427
1428
  return;
1428
1429
  }
1429
- updatePageData(data);
1430
+ updatePageData(data, breadcrumbs);
1430
1431
  updatePrefecthedData(prefetchedData);
1431
1432
  history == null ? void 0 : history[pushOrReplace](
1432
1433
  navigationPath,
@@ -1590,7 +1591,8 @@ const ClientRouterProvider = (props) => {
1590
1591
  cssManifest,
1591
1592
  pageData,
1592
1593
  params,
1593
- searchParams
1594
+ searchParams,
1595
+ breadcrumbs
1594
1596
  } = props;
1595
1597
  const [parameters, setParameters] = useState(params);
1596
1598
  const navigationAbortControllerRef = useRef(new AbortController());
@@ -1601,6 +1603,9 @@ const ClientRouterProvider = (props) => {
1601
1603
  const [progressManager] = useState(new ProgressManager(isNavigatingSubject));
1602
1604
  const pageDataRef = useRef(structuredClone(pageData));
1603
1605
  const scrollHistoryRef = useRef(/* @__PURE__ */ new Map());
1606
+ const breadcrumbsCache = useRef(
1607
+ new Map(Object.entries(breadcrumbs))
1608
+ );
1604
1609
  const initalViewEntries = is404 ? ["404"] : routeManifest[pathname] ?? ["404"];
1605
1610
  const viewEntriesSubject = useRef(new Subject(initalViewEntries));
1606
1611
  const [locationSubject] = useState(
@@ -1673,12 +1678,15 @@ const ClientRouterProvider = (props) => {
1673
1678
  window.removeEventListener("scroll", handleScroll);
1674
1679
  };
1675
1680
  }, []);
1676
- const updatePageData = (newPageData) => {
1681
+ const updatePageData = (newPageData, breadcrumbs2) => {
1677
1682
  var _a2;
1678
1683
  const [key, value] = Object.entries(newPageData)[0];
1679
1684
  if (!((_a2 = pageDataRef.current) == null ? void 0 : _a2[key])) {
1680
1685
  pageDataRef.current[key] = {};
1681
1686
  }
1687
+ for (const b2 in breadcrumbs2) {
1688
+ breadcrumbsCache.current.set(b2, breadcrumbs2[b2]);
1689
+ }
1682
1690
  pageDataRef.current[key] = value;
1683
1691
  };
1684
1692
  const getPageData = (key) => {
@@ -1731,7 +1739,8 @@ const ClientRouterProvider = (props) => {
1731
1739
  getRoutePathnameFromHref,
1732
1740
  setNavigationAbortController,
1733
1741
  progressManager,
1734
- fetchRouteCSS
1742
+ fetchRouteCSS,
1743
+ breadcrumbsCache: breadcrumbsCache.current
1735
1744
  },
1736
1745
  children: [
1737
1746
  children,
@@ -2124,6 +2133,18 @@ function useNavigationProgress() {
2124
2133
  }, []);
2125
2134
  return progress;
2126
2135
  }
2136
+ function useBreadcrumbs() {
2137
+ const { pathname } = useRoute();
2138
+ const { getViewPathsFromPathname, breadcrumbsCache } = useContext(ClientRouterContext);
2139
+ let breadcrumbs = [];
2140
+ const viewPaths = getViewPathsFromPathname(pathname);
2141
+ for (const viewPath of viewPaths) {
2142
+ if (breadcrumbsCache.has(`${viewPath}:${pathname}`)) {
2143
+ breadcrumbs.push(breadcrumbsCache.get(`${viewPath}:${pathname}`));
2144
+ }
2145
+ }
2146
+ return breadcrumbs.filter((breadcrumb) => (breadcrumb == null ? void 0 : breadcrumb.label.length) > 0);
2147
+ }
2127
2148
  function normalizeSearch(search) {
2128
2149
  return Object.fromEntries(
2129
2150
  Object.entries(search).filter(([_k, v2]) => v2 !== void 0 && v2 !== null).map(([k2, v2]) => [k2, String(v2)])
@@ -31398,7 +31419,14 @@ const Routes = (props) => {
31398
31419
  };
31399
31420
  const ClientRouter = (props) => {
31400
31421
  const { RootLayout } = props;
31401
- const { routeManifest, router, componentTree, pageData, cssManifest } = useContext(ServerDataContext);
31422
+ const {
31423
+ routeManifest,
31424
+ router,
31425
+ componentTree,
31426
+ pageData,
31427
+ cssManifest,
31428
+ breadcrumbs
31429
+ } = useContext(ServerDataContext);
31402
31430
  return /* @__PURE__ */ jsx(I18nProvider, { children: /* @__PURE__ */ jsx(WebSocketContextProvider, { children: /* @__PURE__ */ jsx(QueryManagerProvider, { children: /* @__PURE__ */ jsx(ComponentsProvider, { viewImportMap: props.viewImportMap, children: /* @__PURE__ */ jsx(
31403
31431
  ClientRouterProvider,
31404
31432
  {
@@ -31410,6 +31438,7 @@ const ClientRouter = (props) => {
31410
31438
  pathname: router.pathname,
31411
31439
  currentPath: router.currentPath,
31412
31440
  routeManifest,
31441
+ breadcrumbs,
31413
31442
  children: /* @__PURE__ */ jsx(StrictMode, { children: /* @__PURE__ */ jsx(RootLayout, { children: /* @__PURE__ */ jsx(Routes, { componentTree }) }) })
31414
31443
  }
31415
31444
  ) }) }) }) });
@@ -31675,6 +31704,7 @@ export {
31675
31704
  create,
31676
31705
  createRoot,
31677
31706
  init,
31707
+ useBreadcrumbs,
31678
31708
  useBroadcast,
31679
31709
  useDelete,
31680
31710
  useForgotPassword,