@jant/core 0.2.12 → 0.2.13

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 (146) hide show
  1. package/bin/jant.js +3 -1
  2. package/dist/app.d.ts.map +1 -1
  3. package/dist/app.js +112 -85
  4. package/dist/auth.d.ts +1 -0
  5. package/dist/auth.d.ts.map +1 -1
  6. package/dist/auth.js +2 -1
  7. package/dist/client.js +1 -1
  8. package/dist/db/schema.d.ts.map +1 -1
  9. package/dist/i18n/context.d.ts.map +1 -1
  10. package/dist/i18n/context.js +0 -3
  11. package/dist/i18n/detect.d.ts +0 -11
  12. package/dist/i18n/detect.d.ts.map +1 -1
  13. package/dist/i18n/detect.js +1 -52
  14. package/dist/i18n/i18n.d.ts +4 -14
  15. package/dist/i18n/i18n.d.ts.map +1 -1
  16. package/dist/i18n/i18n.js +19 -25
  17. package/dist/i18n/index.d.ts +1 -1
  18. package/dist/i18n/index.d.ts.map +1 -1
  19. package/dist/i18n/index.js +1 -1
  20. package/dist/i18n/middleware.d.ts +2 -5
  21. package/dist/i18n/middleware.d.ts.map +1 -1
  22. package/dist/i18n/middleware.js +12 -23
  23. package/dist/lib/constants.d.ts.map +1 -1
  24. package/dist/lib/image.d.ts.map +1 -1
  25. package/dist/lib/schemas.d.ts.map +1 -1
  26. package/dist/lib/sse.d.ts +45 -17
  27. package/dist/lib/sse.d.ts.map +1 -1
  28. package/dist/lib/sse.js +77 -37
  29. package/dist/middleware/auth.d.ts.map +1 -1
  30. package/dist/routes/api/posts.js +0 -1
  31. package/dist/routes/api/upload.js +3 -1
  32. package/dist/routes/dash/collections.d.ts.map +1 -1
  33. package/dist/routes/dash/collections.js +134 -142
  34. package/dist/routes/dash/index.js +25 -26
  35. package/dist/routes/dash/media.d.ts.map +1 -1
  36. package/dist/routes/dash/media.js +60 -56
  37. package/dist/routes/dash/pages.js +64 -66
  38. package/dist/routes/dash/posts.d.ts.map +1 -1
  39. package/dist/routes/dash/posts.js +50 -59
  40. package/dist/routes/dash/redirects.d.ts.map +1 -1
  41. package/dist/routes/dash/redirects.js +63 -60
  42. package/dist/routes/dash/settings.d.ts.map +1 -1
  43. package/dist/routes/dash/settings.js +249 -93
  44. package/dist/routes/feed/rss.js +6 -4
  45. package/dist/routes/pages/archive.js +60 -62
  46. package/dist/routes/pages/collection.js +8 -8
  47. package/dist/routes/pages/home.js +14 -14
  48. package/dist/routes/pages/page.js +7 -6
  49. package/dist/routes/pages/post.js +8 -8
  50. package/dist/routes/pages/search.js +25 -27
  51. package/dist/services/collection.d.ts.map +1 -1
  52. package/dist/services/index.d.ts.map +1 -1
  53. package/dist/services/media.d.ts.map +1 -1
  54. package/dist/services/post.d.ts.map +1 -1
  55. package/dist/services/redirect.d.ts.map +1 -1
  56. package/dist/services/settings.d.ts.map +1 -1
  57. package/dist/theme/components/ActionButtons.d.ts +1 -1
  58. package/dist/theme/components/ActionButtons.d.ts.map +1 -1
  59. package/dist/theme/components/ActionButtons.js +17 -21
  60. package/dist/theme/components/CrudPageHeader.d.ts.map +1 -1
  61. package/dist/theme/components/DangerZone.d.ts.map +1 -1
  62. package/dist/theme/components/DangerZone.js +12 -15
  63. package/dist/theme/components/EmptyState.d.ts.map +1 -1
  64. package/dist/theme/components/PageForm.d.ts.map +1 -1
  65. package/dist/theme/components/PageForm.js +58 -56
  66. package/dist/theme/components/Pagination.d.ts.map +1 -1
  67. package/dist/theme/components/Pagination.js +22 -25
  68. package/dist/theme/components/PostForm.d.ts +0 -1
  69. package/dist/theme/components/PostForm.d.ts.map +1 -1
  70. package/dist/theme/components/PostForm.js +85 -77
  71. package/dist/theme/components/PostList.d.ts.map +1 -1
  72. package/dist/theme/components/PostList.js +17 -17
  73. package/dist/theme/components/ThreadView.d.ts.map +1 -1
  74. package/dist/theme/components/ThreadView.js +15 -18
  75. package/dist/theme/components/TypeBadge.d.ts.map +1 -1
  76. package/dist/theme/components/TypeBadge.js +20 -20
  77. package/dist/theme/components/VisibilityBadge.d.ts.map +1 -1
  78. package/dist/theme/components/VisibilityBadge.js +14 -14
  79. package/dist/theme/components/index.d.ts +1 -1
  80. package/dist/theme/components/index.d.ts.map +1 -1
  81. package/dist/theme/layouts/BaseLayout.d.ts.map +1 -1
  82. package/dist/theme/layouts/BaseLayout.js +4 -2
  83. package/dist/theme/layouts/DashLayout.d.ts.map +1 -1
  84. package/dist/theme/layouts/DashLayout.js +29 -29
  85. package/dist/types/lingui-react-macro.d.js +9 -0
  86. package/dist/types.d.ts +2 -0
  87. package/dist/types.d.ts.map +1 -1
  88. package/dist/vendor/datastar.js +1606 -0
  89. package/package.json +5 -2
  90. package/src/app.tsx +175 -56
  91. package/src/auth.ts +5 -1
  92. package/src/client.ts +1 -1
  93. package/src/db/schema.ts +22 -7
  94. package/src/i18n/EXAMPLES.md +34 -14
  95. package/src/i18n/README.md +19 -9
  96. package/src/i18n/context.tsx +1 -4
  97. package/src/i18n/detect.ts +1 -67
  98. package/src/i18n/i18n.ts +15 -19
  99. package/src/i18n/index.ts +0 -3
  100. package/src/i18n/middleware.ts +12 -24
  101. package/src/lib/constants.ts +2 -1
  102. package/src/lib/image-processor.ts +23 -7
  103. package/src/lib/image.ts +6 -2
  104. package/src/lib/schemas.ts +6 -2
  105. package/src/lib/sse.ts +138 -50
  106. package/src/middleware/auth.ts +6 -2
  107. package/src/routes/api/posts.ts +14 -5
  108. package/src/routes/api/upload.ts +25 -7
  109. package/src/routes/dash/collections.tsx +162 -70
  110. package/src/routes/dash/index.tsx +22 -7
  111. package/src/routes/dash/media.tsx +59 -16
  112. package/src/routes/dash/pages.tsx +102 -44
  113. package/src/routes/dash/posts.tsx +87 -54
  114. package/src/routes/dash/redirects.tsx +74 -26
  115. package/src/routes/dash/settings.tsx +250 -57
  116. package/src/routes/feed/rss.ts +6 -4
  117. package/src/routes/pages/archive.tsx +71 -21
  118. package/src/routes/pages/collection.tsx +21 -6
  119. package/src/routes/pages/home.tsx +30 -9
  120. package/src/routes/pages/page.tsx +14 -5
  121. package/src/routes/pages/post.tsx +21 -7
  122. package/src/routes/pages/search.tsx +42 -11
  123. package/src/services/collection.ts +34 -9
  124. package/src/services/index.ts +4 -1
  125. package/src/services/media.ts +15 -3
  126. package/src/services/post.ts +39 -10
  127. package/src/services/redirect.ts +4 -1
  128. package/src/services/settings.ts +14 -3
  129. package/src/theme/components/ActionButtons.tsx +26 -14
  130. package/src/theme/components/CrudPageHeader.tsx +6 -1
  131. package/src/theme/components/DangerZone.tsx +19 -13
  132. package/src/theme/components/EmptyState.tsx +6 -1
  133. package/src/theme/components/PageForm.tsx +71 -24
  134. package/src/theme/components/Pagination.tsx +26 -8
  135. package/src/theme/components/PostForm.tsx +72 -25
  136. package/src/theme/components/PostList.tsx +16 -5
  137. package/src/theme/components/ThreadView.tsx +25 -7
  138. package/src/theme/components/TypeBadge.tsx +13 -4
  139. package/src/theme/components/VisibilityBadge.tsx +17 -5
  140. package/src/theme/components/index.ts +4 -1
  141. package/src/theme/layouts/BaseLayout.tsx +5 -2
  142. package/src/theme/layouts/DashLayout.tsx +41 -12
  143. package/src/types/lingui-react-macro.d.ts +34 -0
  144. package/src/types.ts +16 -2
  145. package/src/vendor/datastar.js +9 -0
  146. package/src/vendor/datastar.js.map +7 -0
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Post List Component
3
3
  */ import { jsx as _jsx, jsxs as _jsxs } from "hono/jsx/jsx-runtime";
4
- import { useLingui } from "../../i18n/index.js";
4
+ import { useLingui as $_useLingui } from "@jant/core/i18n";
5
5
  import * as sqid from "../../lib/sqid.js";
6
6
  import * as time from "../../lib/time.js";
7
7
  import { VisibilityBadge } from "./VisibilityBadge.js";
@@ -10,16 +10,16 @@ import { EmptyState } from "./EmptyState.js";
10
10
  import { ListItemRow } from "./ListItemRow.js";
11
11
  import { ActionButtons } from "./ActionButtons.js";
12
12
  export const PostList = ({ posts })=>{
13
- const { t } = useLingui();
13
+ const { i18n: $__i18n, _: $__ } = $_useLingui();
14
14
  if (posts.length === 0) {
15
15
  return /*#__PURE__*/ _jsx(EmptyState, {
16
- message: t({
17
- message: "No posts yet.",
18
- comment: "@context: Empty state message when no posts exist"
16
+ message: $__i18n._({
17
+ id: "ODiSoW",
18
+ message: "No posts yet."
19
19
  }),
20
- ctaText: t({
21
- message: "Create your first post",
22
- comment: "@context: Button in empty state to create first post"
20
+ ctaText: $__i18n._({
21
+ id: "x0mzE0",
22
+ message: "Create your first post"
23
23
  }),
24
24
  ctaHref: "/dash/posts/new"
25
25
  });
@@ -29,14 +29,14 @@ export const PostList = ({ posts })=>{
29
29
  children: posts.map((post)=>/*#__PURE__*/ _jsxs(ListItemRow, {
30
30
  actions: /*#__PURE__*/ _jsx(ActionButtons, {
31
31
  editHref: `/dash/posts/${sqid.encode(post.id)}/edit`,
32
- editLabel: t({
33
- message: "Edit",
34
- comment: "@context: Button to edit post"
32
+ editLabel: $__i18n._({
33
+ id: "ePK91l",
34
+ message: "Edit"
35
35
  }),
36
36
  viewHref: `/p/${sqid.encode(post.id)}`,
37
- viewLabel: t({
38
- message: "View",
39
- comment: "@context: Button to view post on public site"
37
+ viewLabel: $__i18n._({
38
+ id: "jpctdh",
39
+ message: "View"
40
40
  })
41
41
  }),
42
42
  children: [
@@ -58,9 +58,9 @@ export const PostList = ({ posts })=>{
58
58
  /*#__PURE__*/ _jsx("a", {
59
59
  href: `/dash/posts/${sqid.encode(post.id)}`,
60
60
  class: "font-medium hover:underline",
61
- children: post.title || post.content?.slice(0, 60) || t({
62
- message: "Untitled",
63
- comment: "@context: Default title for untitled post"
61
+ children: post.title || post.content?.slice(0, 60) || $__i18n._({
62
+ id: "wja8aL",
63
+ message: "Untitled"
64
64
  })
65
65
  }),
66
66
  post.content && !post.title && /*#__PURE__*/ _jsx("p", {
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadView.d.ts","sourceRoot":"","sources":["../../../src/theme/components/ThreadView.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAEnC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAI3C,MAAM,WAAW,eAAe;IAC9B,oDAAoD;IACpD,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,qDAAqD;IACrD,aAAa,EAAE,MAAM,CAAC;CACvB;AAoDD,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CA6C1C,CAAC"}
1
+ {"version":3,"file":"ThreadView.d.ts","sourceRoot":"","sources":["../../../src/theme/components/ThreadView.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAEnC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAI3C,MAAM,WAAW,eAAe;IAC9B,oDAAoD;IACpD,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,qDAAqD;IACrD,aAAa,EAAE,MAAM,CAAC;CACvB;AA6DD,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CAsD1C,CAAC"}
@@ -3,11 +3,11 @@
3
3
  *
4
4
  * Displays a thread of posts with reply chain visualization
5
5
  */ import { jsx as _jsx, jsxs as _jsxs } from "hono/jsx/jsx-runtime";
6
- import { useLingui } from "../../i18n/index.js";
6
+ import { useLingui as $_useLingui } from "@jant/core/i18n";
7
7
  import * as sqid from "../../lib/sqid.js";
8
8
  import * as time from "../../lib/time.js";
9
9
  const ThreadPost = ({ post, isCurrent, isRoot })=>{
10
- const { t } = useLingui();
10
+ const { i18n: $__i18n, _: $__ } = $_useLingui();
11
11
  return /*#__PURE__*/ _jsxs("article", {
12
12
  id: `post-${post.id}`,
13
13
  class: `h-entry p-4 rounded-lg border ${isCurrent ? "border-primary bg-primary/5 ring-2 ring-primary/20" : "border-border hover:border-muted-foreground/30"}`,
@@ -36,17 +36,17 @@ const ThreadPost = ({ post, isCurrent, isRoot })=>{
36
36
  }),
37
37
  isRoot && /*#__PURE__*/ _jsx("span", {
38
38
  class: "text-xs",
39
- children: t({
40
- message: "Thread start",
41
- comment: "@context: Thread view indicator - first post in thread"
39
+ children: $__i18n._({
40
+ id: "sGajR7",
41
+ message: "Thread start"
42
42
  })
43
43
  }),
44
44
  !isCurrent && /*#__PURE__*/ _jsx("a", {
45
45
  href: `/p/${sqid.encode(post.id)}`,
46
46
  class: "text-xs hover:underline",
47
- children: t({
48
- message: "Permalink",
49
- comment: "@context: Link to individual post in thread"
47
+ children: $__i18n._({
48
+ id: "D9Oea+",
49
+ message: "Permalink"
50
50
  })
51
51
  })
52
52
  ]
@@ -55,7 +55,7 @@ const ThreadPost = ({ post, isCurrent, isRoot })=>{
55
55
  });
56
56
  };
57
57
  export const ThreadView = ({ posts, currentPostId })=>{
58
- const { t } = useLingui();
58
+ const { i18n: $__i18n, _: $__ } = $_useLingui();
59
59
  if (posts.length === 0) {
60
60
  return null;
61
61
  }
@@ -70,15 +70,12 @@ export const ThreadView = ({ posts, currentPostId })=>{
70
70
  isRoot: false
71
71
  }));
72
72
  }
73
- const threadLabel = posts.length === 1 ? t({
74
- message: "Thread with 1 post",
75
- comment: "@context: Thread view header - single post"
76
- }) : t({
77
- message: "Thread with {count} posts",
78
- comment: "@context: Thread view header - multiple posts",
79
- values: {
80
- count: String(posts.length)
81
- }
73
+ const threadLabel = posts.length === 1 ? $__i18n._({
74
+ id: "rzNUSl",
75
+ message: "Thread with 1 post"
76
+ }) : $__i18n._({
77
+ id: "RwGhWy",
78
+ message: "Thread with {count} posts"
82
79
  });
83
80
  return /*#__PURE__*/ _jsxs("div", {
84
81
  class: "thread-view",
@@ -1 +1 @@
1
- {"version":3,"file":"TypeBadge.d.ts","sourceRoot":"","sources":["../../../src/theme/components/TypeBadge.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAEnC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CAaxC,CAAC"}
1
+ {"version":3,"file":"TypeBadge.d.ts","sourceRoot":"","sources":["../../../src/theme/components/TypeBadge.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAEnC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CAsBxC,CAAC"}
@@ -3,33 +3,33 @@
3
3
  *
4
4
  * Displays a badge indicating the type of a post (note, article, link, etc.)
5
5
  */ import { jsx as _jsx } from "hono/jsx/jsx-runtime";
6
- import { useLingui } from "../../i18n/index.js";
6
+ import { useLingui as $_useLingui } from "@jant/core/i18n";
7
7
  export const TypeBadge = ({ type })=>{
8
- const { t } = useLingui();
8
+ const { i18n: $__i18n, _: $__ } = $_useLingui();
9
9
  const labels = {
10
- note: t({
11
- message: "Note",
12
- comment: "@context: Post type badge - note"
10
+ note: $__i18n._({
11
+ id: "KiJn9B",
12
+ message: "Note"
13
13
  }),
14
- article: t({
15
- message: "Article",
16
- comment: "@context: Post type badge - article"
14
+ article: $__i18n._({
15
+ id: "f6e0Ry",
16
+ message: "Article"
17
17
  }),
18
- link: t({
19
- message: "Link",
20
- comment: "@context: Post type badge - link"
18
+ link: $__i18n._({
19
+ id: "yzF66j",
20
+ message: "Link"
21
21
  }),
22
- quote: t({
23
- message: "Quote",
24
- comment: "@context: Post type badge - quote"
22
+ quote: $__i18n._({
23
+ id: "ZhhOwV",
24
+ message: "Quote"
25
25
  }),
26
- image: t({
27
- message: "Image",
28
- comment: "@context: Post type badge - image"
26
+ image: $__i18n._({
27
+ id: "hG89Ed",
28
+ message: "Image"
29
29
  }),
30
- page: t({
31
- message: "Page",
32
- comment: "@context: Post type badge - page"
30
+ page: $__i18n._({
31
+ id: "6WdDG7",
32
+ message: "Page"
33
33
  })
34
34
  };
35
35
  return /*#__PURE__*/ _jsx("span", {
@@ -1 +1 @@
1
- {"version":3,"file":"VisibilityBadge.d.ts","sourceRoot":"","sources":["../../../src/theme/components/VisibilityBadge.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAEnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAkBpD,CAAC"}
1
+ {"version":3,"file":"VisibilityBadge.d.ts","sourceRoot":"","sources":["../../../src/theme/components/VisibilityBadge.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAEnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CA8BpD,CAAC"}
@@ -3,9 +3,9 @@
3
3
  *
4
4
  * Displays a badge indicating the visibility level of a post
5
5
  */ import { jsx as _jsx } from "hono/jsx/jsx-runtime";
6
- import { useLingui } from "../../i18n/index.js";
6
+ import { useLingui as $_useLingui } from "@jant/core/i18n";
7
7
  export const VisibilityBadge = ({ visibility })=>{
8
- const { t } = useLingui();
8
+ const { i18n: $__i18n, _: $__ } = $_useLingui();
9
9
  const variants = {
10
10
  featured: "badge-primary",
11
11
  quiet: "badge-secondary",
@@ -13,21 +13,21 @@ export const VisibilityBadge = ({ visibility })=>{
13
13
  draft: "badge-outline"
14
14
  };
15
15
  const labels = {
16
- featured: t({
17
- message: "Featured",
18
- comment: "@context: Post visibility badge - featured"
16
+ featured: $__i18n._({
17
+ id: "FkMol5",
18
+ message: "Featured"
19
19
  }),
20
- quiet: t({
21
- message: "Quiet",
22
- comment: "@context: Post visibility badge - normal"
20
+ quiet: $__i18n._({
21
+ id: "r1MpXi",
22
+ message: "Quiet"
23
23
  }),
24
- unlisted: t({
25
- message: "Unlisted",
26
- comment: "@context: Post visibility badge - unlisted"
24
+ unlisted: $__i18n._({
25
+ id: "WDcQq9",
26
+ message: "Unlisted"
27
27
  }),
28
- draft: t({
29
- message: "Draft",
30
- comment: "@context: Post visibility badge - draft"
28
+ draft: $__i18n._({
29
+ id: "eneWvv",
30
+ message: "Draft"
31
31
  })
32
32
  };
33
33
  return /*#__PURE__*/ _jsx("span", {
@@ -9,5 +9,5 @@ export { PostForm, type PostFormProps } from "./PostForm.js";
9
9
  export { PostList, type PostListProps } from "./PostList.js";
10
10
  export { ThreadView, type ThreadViewProps } from "./ThreadView.js";
11
11
  export { TypeBadge, type TypeBadgeProps } from "./TypeBadge.js";
12
- export { VisibilityBadge, type VisibilityBadgeProps } from "./VisibilityBadge.js";
12
+ export { VisibilityBadge, type VisibilityBadgeProps, } from "./VisibilityBadge.js";
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/theme/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EACL,UAAU,EACV,QAAQ,EACR,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,mBAAmB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/theme/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EACL,UAAU,EACV,QAAQ,EACR,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,mBAAmB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EACL,eAAe,EACf,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"BaseLayout.d.ts","sourceRoot":"","sources":["../../../src/theme/layouts/BaseLayout.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAIpC,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,CAAC,EAAE,OAAO,CAAC;CACb;AAED,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAwB7D,CAAC"}
1
+ {"version":3,"file":"BaseLayout.d.ts","sourceRoot":"","sources":["../../../src/theme/layouts/BaseLayout.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAIpC,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,CAAC,EAAE,OAAO,CAAC;CACb;AAED,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,iBAAiB,CAAC,eAAe,CAAC,CA2B7D,CAAC"}
@@ -8,14 +8,16 @@
8
8
  */ import { jsx as _jsx, jsxs as _jsxs } from "hono/jsx/jsx-runtime";
9
9
  import { Script, Link, ViteClient } from "vite-ssr-components/hono";
10
10
  import { I18nProvider } from "../../i18n/index.js";
11
- export const BaseLayout = ({ title, description, lang = "en", c, children })=>{
11
+ export const BaseLayout = ({ title, description, lang, c, children })=>{
12
+ // Read lang from Hono context if available, otherwise use prop or default
13
+ const resolvedLang = lang ?? (c ? c.get("lang") : "en");
12
14
  // Automatically wrap with I18nProvider if Context is provided
13
15
  const content = c ? /*#__PURE__*/ _jsx(I18nProvider, {
14
16
  c: c,
15
17
  children: children
16
18
  }) : children;
17
19
  return /*#__PURE__*/ _jsxs("html", {
18
- lang: lang,
20
+ lang: resolvedLang,
19
21
  children: [
20
22
  /*#__PURE__*/ _jsxs("head", {
21
23
  children: [
@@ -1 +1 @@
1
- {"version":3,"file":"DashLayout.d.ts","sourceRoot":"","sources":["../../../src/theme/layouts/DashLayout.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAIpC,MAAM,WAAW,eAAe;IAC9B,CAAC,EAAE,OAAO,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAqGD,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAc7D,CAAC"}
1
+ {"version":3,"file":"DashLayout.d.ts","sourceRoot":"","sources":["../../../src/theme/layouts/DashLayout.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAIpC,MAAM,WAAW,eAAe;IAC9B,CAAC,EAAE,OAAO,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAkID,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAc7D,CAAC"}
@@ -3,10 +3,10 @@
3
3
  *
4
4
  * Layout for admin dashboard pages
5
5
  */ import { jsx as _jsx, jsxs as _jsxs } from "hono/jsx/jsx-runtime";
6
- import { useLingui } from "../../i18n/index.js";
6
+ import { useLingui as $_useLingui } from "@jant/core/i18n";
7
7
  import { BaseLayout } from "./BaseLayout.js";
8
8
  function DashLayoutContent({ siteName, currentPath, children }) {
9
- const { t } = useLingui();
9
+ const { i18n: $__i18n, _: $__ } = $_useLingui();
10
10
  const isActive = (path, match)=>{
11
11
  if (!currentPath) return false;
12
12
  if (match) return match.test(currentPath);
@@ -32,17 +32,17 @@ function DashLayoutContent({ siteName, currentPath, children }) {
32
32
  /*#__PURE__*/ _jsx("a", {
33
33
  href: "/",
34
34
  class: "text-sm text-muted-foreground hover:text-foreground",
35
- children: t({
36
- message: "View Site",
37
- comment: "@context: Dashboard header link to view the public site"
35
+ children: $__i18n._({
36
+ id: "4/SFQS",
37
+ message: "View Site"
38
38
  })
39
39
  }),
40
40
  /*#__PURE__*/ _jsx("a", {
41
41
  href: "/signout",
42
42
  class: "text-sm text-muted-foreground hover:text-foreground",
43
- children: t({
44
- message: "Sign Out",
45
- comment: "@context: Dashboard header link to sign out"
43
+ children: $__i18n._({
44
+ id: "bHYIks",
45
+ message: "Sign Out"
46
46
  })
47
47
  })
48
48
  ]
@@ -61,57 +61,57 @@ function DashLayoutContent({ siteName, currentPath, children }) {
61
61
  /*#__PURE__*/ _jsx("a", {
62
62
  href: "/dash",
63
63
  class: navClass("/dash", /^\/dash$/),
64
- children: t({
65
- message: "Dashboard",
66
- comment: "@context: Dashboard navigation - main dashboard page"
64
+ children: $__i18n._({
65
+ id: "7p5kLi",
66
+ message: "Dashboard"
67
67
  })
68
68
  }),
69
69
  /*#__PURE__*/ _jsx("a", {
70
70
  href: "/dash/posts",
71
71
  class: navClass("/dash/posts", /^\/dash\/posts/),
72
- children: t({
73
- message: "Posts",
74
- comment: "@context: Dashboard navigation - posts management"
72
+ children: $__i18n._({
73
+ id: "+owNNn",
74
+ message: "Posts"
75
75
  })
76
76
  }),
77
77
  /*#__PURE__*/ _jsx("a", {
78
78
  href: "/dash/pages",
79
79
  class: navClass("/dash/pages", /^\/dash\/pages/),
80
- children: t({
81
- message: "Pages",
82
- comment: "@context: Dashboard navigation - pages management"
80
+ children: $__i18n._({
81
+ id: "wRR604",
82
+ message: "Pages"
83
83
  })
84
84
  }),
85
85
  /*#__PURE__*/ _jsx("a", {
86
86
  href: "/dash/media",
87
87
  class: navClass("/dash/media", /^\/dash\/media/),
88
- children: t({
89
- message: "Media",
90
- comment: "@context: Dashboard navigation - media library"
88
+ children: $__i18n._({
89
+ id: "xYilR2",
90
+ message: "Media"
91
91
  })
92
92
  }),
93
93
  /*#__PURE__*/ _jsx("a", {
94
94
  href: "/dash/collections",
95
95
  class: navClass("/dash/collections", /^\/dash\/collections/),
96
- children: t({
97
- message: "Collections",
98
- comment: "@context: Dashboard navigation - collections management"
96
+ children: $__i18n._({
97
+ id: "DoJzLz",
98
+ message: "Collections"
99
99
  })
100
100
  }),
101
101
  /*#__PURE__*/ _jsx("a", {
102
102
  href: "/dash/redirects",
103
103
  class: navClass("/dash/redirects", /^\/dash\/redirects/),
104
- children: t({
105
- message: "Redirects",
106
- comment: "@context: Dashboard navigation - URL redirects"
104
+ children: $__i18n._({
105
+ id: "M9xgHy",
106
+ message: "Redirects"
107
107
  })
108
108
  }),
109
109
  /*#__PURE__*/ _jsx("a", {
110
110
  href: "/dash/settings",
111
111
  class: navClass("/dash/settings", /^\/dash\/settings/),
112
- children: t({
113
- message: "Settings",
114
- comment: "@context: Dashboard navigation - site settings"
112
+ children: $__i18n._({
113
+ id: "Tz0i8g",
114
+ message: "Settings"
115
115
  })
116
116
  })
117
117
  ]
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Type declarations for @lingui/react/macro
3
+ *
4
+ * @lingui/react is not installed (it requires React as a peer dependency),
5
+ * but the SWC Lingui plugin recognizes imports from @lingui/react/macro and
6
+ * rewrites them via runtimeConfigModule to our custom Hono JSX implementation.
7
+ *
8
+ * These declarations satisfy TypeScript for the pre-transformation API surface.
9
+ */
package/dist/types.d.ts CHANGED
@@ -12,6 +12,8 @@ export interface Bindings {
12
12
  AUTH_SECRET?: string;
13
13
  R2_PUBLIC_URL?: string;
14
14
  IMAGE_TRANSFORM_URL?: string;
15
+ DEMO_EMAIL?: string;
16
+ DEMO_PASSWORD?: string;
15
17
  }
16
18
  export interface Post {
17
19
  id: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}