convex-cms 0.0.7-alpha.0 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/README.md +22 -17
  2. package/admin/src/components/BreakingChangesWarningDialog.tsx +5 -5
  3. package/admin/src/components/BulkOperationModal.tsx +14 -14
  4. package/admin/src/components/ContentEntryEditor.tsx +6 -6
  5. package/admin/src/components/ContentTypeFormModal.tsx +1 -1
  6. package/admin/src/components/Header.tsx +5 -2
  7. package/admin/src/components/SchemaDriftWarning.tsx +126 -0
  8. package/admin/src/components/TaxonomyEditor.tsx +2 -2
  9. package/admin/src/components/TermTree.tsx +3 -3
  10. package/admin/src/components/UploadDropzone.tsx +7 -7
  11. package/admin/src/components/VersionCompare.tsx +13 -13
  12. package/admin/src/components/VersionHistory.tsx +2 -2
  13. package/admin/src/components/VersionRollbackModal.tsx +5 -5
  14. package/admin/src/components/cmsds/CmsButton.tsx +2 -2
  15. package/admin/src/components/cmsds/CmsDialog.tsx +4 -1
  16. package/admin/src/components/cmsds/CmsStatusBadge.tsx +5 -5
  17. package/admin/src/components/fields/JsonField.tsx +1 -1
  18. package/admin/src/components/fields/TagField.tsx +1 -1
  19. package/admin/src/contexts/SettingsConfigContext.tsx +10 -3
  20. package/admin/src/embed/index.tsx +29 -9
  21. package/admin/src/embed/pages/ContentTypeEntries.tsx +25 -0
  22. package/admin/src/embed/pages/Entry.tsx +114 -0
  23. package/admin/src/embed/pages/Media.tsx +3 -1
  24. package/admin/src/embed/pages/NewEntry.tsx +83 -0
  25. package/admin/src/embed/pages/index.ts +3 -0
  26. package/admin/src/pages/ContentPage.tsx +16 -1
  27. package/admin/src/pages/ContentTypeEntriesPage.tsx +466 -0
  28. package/admin/src/pages/ContentTypesPage.tsx +3 -3
  29. package/admin/src/pages/DashboardPage.tsx +3 -0
  30. package/admin/src/pages/SettingsPage.tsx +4 -4
  31. package/admin/src/pages/index.ts +1 -0
  32. package/admin/src/routes/__root.tsx +10 -10
  33. package/admin/src/styles/globals.css +31 -5
  34. package/admin/src/styles/tailwind-config.css +25 -0
  35. package/admin/src/styles/theme.css +50 -0
  36. package/admin-dist/nitro.json +1 -1
  37. package/admin-dist/public/assets/{CmsEmptyState-CXVkI3FZ.js → CmsEmptyState-6-PLaXtD.js} +1 -1
  38. package/admin-dist/public/assets/{CmsPageHeader-DU9fD34s.js → CmsPageHeader-SoF4Epu9.js} +1 -1
  39. package/admin-dist/public/assets/CmsStatusBadge-D7kYaohx.js +1 -0
  40. package/admin-dist/public/assets/{CmsSurface-DF7OcKg_.js → CmsSurface-BvksBm6W.js} +1 -1
  41. package/admin-dist/public/assets/{CmsToolbar-5S8FQrSx.js → CmsToolbar-DlZPMe2B.js} +1 -1
  42. package/admin-dist/public/assets/ContentEntryEditor-C6n9xLS9.js +4 -0
  43. package/admin-dist/public/assets/{TaxonomyFilter-DEN2Q9Lo.js → TaxonomyFilter-CFX1_g8s.js} +1 -1
  44. package/admin-dist/public/assets/{_contentTypeId-Ba5iowxH.js → _contentTypeId-DTv8UoTp.js} +1 -1
  45. package/admin-dist/public/assets/_entryId-D3lr5Dvy.js +1 -0
  46. package/admin-dist/public/assets/alert-BAHTL6ao.js +1 -0
  47. package/admin-dist/public/assets/badge-oJv4Eai8.js +1 -0
  48. package/admin-dist/public/assets/{circle-check-big-B7eCOM8r.js → circle-check-big-3OHxNDhO.js} +1 -1
  49. package/admin-dist/public/assets/{command-BIjzeKOv.js → command-DwgQs69u.js} +1 -1
  50. package/admin-dist/public/assets/content-CKQ4QwW2.js +1 -0
  51. package/admin-dist/public/assets/content-types-BrttaLpc.js +1 -0
  52. package/admin-dist/public/assets/globals-CoCRjt0K.css +1 -0
  53. package/admin-dist/public/assets/index-DOkgTSx0.js +1 -0
  54. package/admin-dist/public/assets/{main-BZB1uYTH.js → main-DV6oxWnU.js} +5 -5
  55. package/admin-dist/public/assets/media-B2i-mCbx.js +1 -0
  56. package/admin-dist/public/assets/new._contentTypeId-VF63rpic.js +1 -0
  57. package/admin-dist/public/assets/{pencil-BDQ1ZWRw.js → pencil-CX1CiTDD.js} +1 -1
  58. package/admin-dist/public/assets/refresh-cw-Cm-YOeFI.js +1 -0
  59. package/admin-dist/public/assets/{rotate-ccw-BWblSIsl.js → rotate-ccw-B45JsL5f.js} +1 -1
  60. package/admin-dist/public/assets/{scroll-area-BoaB6x8v.js → scroll-area-b3A1HHR7.js} +1 -1
  61. package/admin-dist/public/assets/{search-CYMIpd39.js → search-DKKh_DdH.js} +1 -1
  62. package/admin-dist/public/assets/settings-CGVDEV1r.js +1 -0
  63. package/admin-dist/public/assets/{switch-DN7TOCa5.js → switch-BTMY8Qnk.js} +1 -1
  64. package/admin-dist/public/assets/tabs-DUQwUoIb.js +1 -0
  65. package/admin-dist/public/assets/{tanstack-adapter-DQcKErwf.js → tanstack-adapter-f7AHmQ5L.js} +1 -1
  66. package/admin-dist/public/assets/taxonomies-DvMppdiD.js +1 -0
  67. package/admin-dist/public/assets/{trash-Dp_a2mpb.js → trash-D7e0uKd9.js} +1 -1
  68. package/admin-dist/public/assets/{useBreadcrumbLabel-BQ9dJI6T.js → useBreadcrumbLabel-CF2KYwsw.js} +1 -1
  69. package/admin-dist/public/assets/{usePermissions-WUBNg_Id.js → usePermissions-DWBImEOW.js} +1 -1
  70. package/admin-dist/server/_libs/lucide-react.mjs +50 -43
  71. package/admin-dist/server/_ssr/{CmsEmptyState-DYh_PPQE.mjs → CmsEmptyState-BM8DghTl.mjs} +1 -1
  72. package/admin-dist/server/_ssr/{CmsPageHeader-BcniLh49.mjs → CmsPageHeader-BHUmrIWD.mjs} +1 -1
  73. package/admin-dist/server/_ssr/{CmsStatusBadge-BShWDxwE.mjs → CmsStatusBadge-D0Zb0oRl.mjs} +7 -7
  74. package/admin-dist/server/_ssr/{CmsSurface-CHEv-Kba.mjs → CmsSurface-B2eBr-47.mjs} +1 -1
  75. package/admin-dist/server/_ssr/{CmsToolbar-Dqqb216_.mjs → CmsToolbar-BCrwg7OL.mjs} +1 -1
  76. package/admin-dist/server/_ssr/{ContentEntryEditor-DOIAyWME.mjs → ContentEntryEditor-Cjfm0uhr.mjs} +37 -37
  77. package/admin-dist/server/_ssr/{TaxonomyFilter-BfsPAZ-Y.mjs → TaxonomyFilter-C4pD0kfM.mjs} +3 -3
  78. package/admin-dist/server/_ssr/{_contentTypeId-CPjmri90.mjs → _contentTypeId-CiDiX-p7.mjs} +11 -11
  79. package/admin-dist/server/_ssr/{_entryId-D0yu8HuP.mjs → _entryId-9GxatOkL.mjs} +11 -11
  80. package/admin-dist/server/_ssr/_tanstack-start-manifest_v-CC7UrHKE.mjs +4 -0
  81. package/admin-dist/server/_ssr/{badge-Cp61aQNc.mjs → badge-EI998zba.mjs} +1 -1
  82. package/admin-dist/server/_ssr/{command-BfjE1WJf.mjs → command-BLAWQhUw.mjs} +1 -1
  83. package/admin-dist/server/_ssr/{content-DrODe6sA.mjs → content-BHX39L4D.mjs} +31 -22
  84. package/admin-dist/server/_ssr/{content-types-BPgMwxiT.mjs → content-types-DCzrBhTH.mjs} +9 -9
  85. package/admin-dist/server/_ssr/{index-BTHmIC9W.mjs → index-DwM_5VNP.mjs} +92 -6
  86. package/admin-dist/server/_ssr/index.mjs +2 -2
  87. package/admin-dist/server/_ssr/{media-DkvBfmD9.mjs → media-CbzgTRRQ.mjs} +9 -9
  88. package/admin-dist/server/_ssr/{new._contentTypeId-Co_73sDJ.mjs → new._contentTypeId-6Ph-Gtlw.mjs} +10 -10
  89. package/admin-dist/server/_ssr/{router-CaDgRHfQ.mjs → router-vd1nySeP.mjs} +45 -35
  90. package/admin-dist/server/_ssr/{scroll-area-D3v-O_jk.mjs → scroll-area--B9snFTJ.mjs} +1 -1
  91. package/admin-dist/server/_ssr/{settings-MaEXh2Hz.mjs → settings-DlTO2JSj.mjs} +11 -11
  92. package/admin-dist/server/_ssr/{switch-DmbR03dm.mjs → switch-C05NgNW0.mjs} +1 -1
  93. package/admin-dist/server/_ssr/{tabs-5oFlAGLz.mjs → tabs-DAk2J5xy.mjs} +8 -8
  94. package/admin-dist/server/_ssr/{tanstack-adapter-DNaUioIZ.mjs → tanstack-adapter-DWbaPByn.mjs} +15 -1
  95. package/admin-dist/server/_ssr/{taxonomies-D3xMK23a.mjs → taxonomies-B8nqce6u.mjs} +12 -12
  96. package/admin-dist/server/_ssr/{trash-CNw1mtF1.mjs → trash-zdlZgpTo.mjs} +7 -7
  97. package/admin-dist/server/_ssr/{useBreadcrumbLabel-BQGjOTcy.mjs → useBreadcrumbLabel-DpEKyG1h.mjs} +1 -1
  98. package/admin-dist/server/_ssr/{usePermissions-D0qtvmNi.mjs → usePermissions-olYRd9S9.mjs} +1 -1
  99. package/admin-dist/server/index.mjs +164 -157
  100. package/dist/client/admin/contentTypes.d.ts +25 -0
  101. package/dist/client/admin/contentTypes.d.ts.map +1 -1
  102. package/dist/client/admin/contentTypes.js +212 -6
  103. package/dist/client/admin/contentTypes.js.map +1 -1
  104. package/dist/client/admin/entries.d.ts.map +1 -1
  105. package/dist/client/admin/entries.js +27 -0
  106. package/dist/client/admin/entries.js.map +1 -1
  107. package/dist/client/admin/index.d.ts +4 -0
  108. package/dist/client/admin/index.d.ts.map +1 -1
  109. package/dist/client/admin/index.js +16 -0
  110. package/dist/client/admin/index.js.map +1 -1
  111. package/dist/client/admin/types.d.ts +4 -0
  112. package/dist/client/admin/types.d.ts.map +1 -1
  113. package/dist/client/schema/defineContentType.d.ts.map +1 -1
  114. package/dist/client/schema/defineContentType.js +99 -80
  115. package/dist/client/schema/defineContentType.js.map +1 -1
  116. package/dist/component/contentTypeMutations.d.ts.map +1 -1
  117. package/dist/component/contentTypeMutations.js +5 -4
  118. package/dist/component/contentTypeMutations.js.map +1 -1
  119. package/package.json +2 -2
  120. package/admin-dist/public/assets/CmsStatusBadge-nZ9TeLBL.js +0 -1
  121. package/admin-dist/public/assets/ContentEntryEditor-BDb44eTo.js +0 -4
  122. package/admin-dist/public/assets/_entryId-OY3sLz6O.js +0 -1
  123. package/admin-dist/public/assets/alert-BbW1Q9CR.js +0 -1
  124. package/admin-dist/public/assets/badge-DdM8Eua8.js +0 -1
  125. package/admin-dist/public/assets/content-BV3YeSSW.js +0 -1
  126. package/admin-dist/public/assets/content-types-Bm4b2tf8.js +0 -1
  127. package/admin-dist/public/assets/globals-D41WzvyZ.css +0 -1
  128. package/admin-dist/public/assets/index-DnJ5Twlv.js +0 -1
  129. package/admin-dist/public/assets/media-BIMN5jXt.js +0 -1
  130. package/admin-dist/public/assets/new._contentTypeId-DTWb8ZDl.js +0 -1
  131. package/admin-dist/public/assets/settings-DaNDUtr5.js +0 -1
  132. package/admin-dist/public/assets/tabs-RN__emeJ.js +0 -1
  133. package/admin-dist/public/assets/taxonomies-DylY9HE1.js +0 -1
  134. package/admin-dist/server/_ssr/_tanstack-start-manifest_v-DgCpSt_y.mjs +0 -4
@@ -1,5 +1,5 @@
1
1
  import { j as jsxRuntimeExports } from "../_chunks/_libs/react.mjs";
2
- import { C as CmsButton, f as cn } from "./router-CaDgRHfQ.mjs";
2
+ import { C as CmsButton, f as cn } from "./router-vd1nySeP.mjs";
3
3
  function CmsEmptyState({
4
4
  icon,
5
5
  title,
@@ -1,5 +1,5 @@
1
1
  import { j as jsxRuntimeExports } from "../_chunks/_libs/react.mjs";
2
- import { f as cn } from "./router-CaDgRHfQ.mjs";
2
+ import { f as cn } from "./router-vd1nySeP.mjs";
3
3
  function CmsPageHeader({
4
4
  title,
5
5
  description,
@@ -1,6 +1,6 @@
1
1
  import { j as jsxRuntimeExports } from "../_chunks/_libs/react.mjs";
2
- import { B as Badge } from "./badge-Cp61aQNc.mjs";
3
- import { f as cn } from "./router-CaDgRHfQ.mjs";
2
+ import { B as Badge } from "./badge-EI998zba.mjs";
3
+ import { f as cn } from "./router-vd1nySeP.mjs";
4
4
  const statusConfig = {
5
5
  draft: {
6
6
  label: "Draft",
@@ -65,12 +65,12 @@ const statusConfig = {
65
65
  };
66
66
  const colorToClassName = {
67
67
  gray: "bg-muted text-muted-foreground",
68
- yellow: "bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-400",
69
- blue: "bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-400",
70
- green: "bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400",
71
- red: "bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400",
68
+ yellow: "bg-diff-modified-bg text-diff-modified-foreground",
69
+ blue: "bg-info-bg text-info-foreground",
70
+ green: "bg-diff-added-bg text-diff-added-foreground",
71
+ red: "bg-diff-removed-bg text-diff-removed-foreground",
72
72
  purple: "bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-400",
73
- orange: "bg-orange-100 text-orange-800 dark:bg-orange-900/30 dark:text-orange-400"
73
+ orange: "bg-diff-modified-bg text-diff-modified-foreground"
74
74
  };
75
75
  function getDefaultIcon() {
76
76
  return /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { className: "size-3", fill: "currentColor", viewBox: "0 0 8 8", children: /* @__PURE__ */ jsxRuntimeExports.jsx("circle", { cx: "4", cy: "4", r: "3" }) });
@@ -1,5 +1,5 @@
1
1
  import { j as jsxRuntimeExports } from "../_chunks/_libs/react.mjs";
2
- import { f as cn } from "./router-CaDgRHfQ.mjs";
2
+ import { f as cn } from "./router-vd1nySeP.mjs";
3
3
  const elevationClasses = {
4
4
  base: "surface-base",
5
5
  elevated: "surface-elevated",
@@ -1,5 +1,5 @@
1
1
  import { j as jsxRuntimeExports } from "../_chunks/_libs/react.mjs";
2
- import { I as Input, f as cn } from "./router-CaDgRHfQ.mjs";
2
+ import { I as Input, f as cn } from "./router-vd1nySeP.mjs";
3
3
  import { a1 as Search } from "../_libs/lucide-react.mjs";
4
4
  function CmsToolbar({
5
5
  left,
@@ -1,15 +1,15 @@
1
1
  import { r as reactExports, j as jsxRuntimeExports } from "../_chunks/_libs/react.mjs";
2
- import { t as useSettingsConfig, h as api, f as cn, C as CmsButton, i as CmsDialog, I as Input, g as CmsConfirmDialog, T as Textarea, P as Popover, y as PopoverTrigger, z as PopoverContent, B as Button, D as Dialog, k as DialogContent, r as DialogHeader, l as DialogTitle, S as Select, a as SelectTrigger, b as SelectValue, c as SelectContent, d as SelectItem, s as DialogFooter, e as Checkbox, L as Label, J as buttonVariants } from "./router-CaDgRHfQ.mjs";
3
- import { S as Switch } from "./switch-DmbR03dm.mjs";
2
+ import { t as useSettingsConfig, h as api, f as cn, C as CmsButton, i as CmsDialog, I as Input, g as CmsConfirmDialog, T as Textarea, P as Popover, y as PopoverTrigger, z as PopoverContent, B as Button, D as Dialog, k as DialogContent, r as DialogHeader, l as DialogTitle, S as Select, a as SelectTrigger, b as SelectValue, c as SelectContent, d as SelectItem, s as DialogFooter, e as Checkbox, L as Label, J as buttonVariants } from "./router-vd1nySeP.mjs";
3
+ import { S as Switch } from "./switch-C05NgNW0.mjs";
4
4
  import { R as Root } from "../_chunks/_libs/@radix-ui/react-separator.mjs";
5
- import { T as Tabs, a as TabsList, b as TabsTrigger, c as TabsContent, U as UploadDropzone } from "./tabs-5oFlAGLz.mjs";
6
- import { C as CmsEmptyState } from "./CmsEmptyState-DYh_PPQE.mjs";
7
- import { C as Command, a as CommandInput, b as CommandList, d as CommandGroup, f as CommandItem, c as CommandEmpty } from "./command-BfjE1WJf.mjs";
8
- import { B as Badge } from "./badge-Cp61aQNc.mjs";
9
- import { C as CmsStatusBadge } from "./CmsStatusBadge-BShWDxwE.mjs";
10
- import { S as ScrollArea } from "./scroll-area-D3v-O_jk.mjs";
5
+ import { T as Tabs, a as TabsList, b as TabsTrigger, c as TabsContent, U as UploadDropzone } from "./tabs-DAk2J5xy.mjs";
6
+ import { C as CmsEmptyState } from "./CmsEmptyState-BM8DghTl.mjs";
7
+ import { C as Command, a as CommandInput, b as CommandList, d as CommandGroup, f as CommandItem, c as CommandEmpty } from "./command-BLAWQhUw.mjs";
8
+ import { B as Badge } from "./badge-EI998zba.mjs";
9
+ import { C as CmsStatusBadge } from "./CmsStatusBadge-D0Zb0oRl.mjs";
10
+ import { S as ScrollArea } from "./scroll-area--B9snFTJ.mjs";
11
11
  import { d as useMutation, u as useQuery } from "../_libs/convex.mjs";
12
- import { L as LoaderCircle, al as CircleCheckBig, j as CircleAlert, ao as RefreshCw, ap as History, x as Clock, X, d as ChevronDown, W as Tag, P as Plus, Z as Link2, Q as FileText, i as Check, a3 as Pencil, O as Image, V as FolderOpen, ab as Upload, a1 as Search, y as Calendar$1, aq as GitCompare, ar as ArrowRight, a0 as TriangleAlert, h as ChevronRight, ag as File, ah as Music, ai as Video, a9 as ChevronLeft, as as Bold, at as Italic, au as Heading2, w as Link, Y as List, av as Quote, c as Code, aw as Minus } from "../_libs/lucide-react.mjs";
12
+ import { L as LoaderCircle, al as CircleCheckBig, j as CircleAlert, ao as RefreshCw, aq as History, x as Clock, X, d as ChevronDown, W as Tag, P as Plus, Z as Link2, Q as FileText, i as Check, a3 as Pencil, O as Image, V as FolderOpen, ab as Upload, a1 as Search, y as Calendar$1, ar as GitCompare, as as ArrowRight, a0 as TriangleAlert, h as ChevronRight, ag as File, ah as Music, ai as Video, a9 as ChevronLeft, at as Bold, au as Italic, av as Heading2, w as Link, Y as List, aw as Quote, c as Code, ax as Minus } from "../_libs/lucide-react.mjs";
13
13
  import { g as getDefaultClassNames, D as DayPicker } from "../_libs/react-day-picker.mjs";
14
14
  function FieldWrapper({
15
15
  field,
@@ -946,7 +946,7 @@ function JsonField({
946
946
  /* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { className: "size-3" }),
947
947
  "Invalid"
948
948
  ] }),
949
- !syntaxError && textValue.trim() !== "" && /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "flex items-center gap-1 text-emerald-600 dark:text-emerald-400", children: [
949
+ !syntaxError && textValue.trim() !== "" && /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "flex items-center gap-1 text-success", children: [
950
950
  /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { className: "size-3" }),
951
951
  "Valid JSON"
952
952
  ] })
@@ -1773,7 +1773,7 @@ function TagField({
1773
1773
  value?.length ?? 0,
1774
1774
  " tag",
1775
1775
  (value?.length ?? 0) !== 1 ? "s" : "",
1776
- minTags && (value?.length ?? 0) < minTags && /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-amber-600", children: [
1776
+ minTags && (value?.length ?? 0) < minTags && /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-warning", children: [
1777
1777
  " (minimum ",
1778
1778
  minTags,
1779
1779
  ")"
@@ -2339,11 +2339,11 @@ function VersionCompare({
2339
2339
  const getChangeStyles = (changeType) => {
2340
2340
  switch (changeType) {
2341
2341
  case "added":
2342
- return "border-emerald-200 bg-emerald-50";
2342
+ return "diff-added border";
2343
2343
  case "removed":
2344
- return "border-red-200 bg-red-50";
2344
+ return "diff-removed border";
2345
2345
  case "modified":
2346
- return "border-amber-200 bg-amber-50";
2346
+ return "diff-modified border";
2347
2347
  default:
2348
2348
  return "border-border bg-card";
2349
2349
  }
@@ -2351,11 +2351,11 @@ function VersionCompare({
2351
2351
  const getChangeIconStyles = (changeType) => {
2352
2352
  switch (changeType) {
2353
2353
  case "added":
2354
- return "bg-emerald-100 text-emerald-700";
2354
+ return "diff-icon-added";
2355
2355
  case "removed":
2356
- return "bg-red-100 text-red-700";
2356
+ return "diff-icon-removed";
2357
2357
  case "modified":
2358
- return "bg-amber-100 text-amber-700";
2358
+ return "diff-icon-modified";
2359
2359
  default:
2360
2360
  return "bg-muted text-muted-foreground";
2361
2361
  }
@@ -2394,7 +2394,7 @@ function VersionCompare({
2394
2394
  /* @__PURE__ */ jsxRuntimeExports.jsx(ScrollArea, { className: "min-h-0 flex-1", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "p-4", children: isLoading ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col items-center justify-center py-8", children: [
2395
2395
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "size-6 animate-spin rounded-full border-2 border-muted border-t-primary" }),
2396
2396
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "mt-2 text-sm text-muted-foreground", children: "Loading comparison..." })
2397
- ] }) : !comparison ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "rounded-lg border border-red-200 bg-red-50 px-4 py-3 text-sm text-red-800", children: "Could not load version comparison" }) : !comparison.hasChanges ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "py-8 text-center", children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-sm text-muted-foreground", children: "No differences found between these versions" }) }) : /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
2397
+ ] }) : !comparison ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "diff-removed rounded-lg border px-4 py-3 text-sm", children: "Could not load version comparison" }) : !comparison.hasChanges ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "py-8 text-center", children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-sm text-muted-foreground", children: "No differences found between these versions" }) }) : /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
2398
2398
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "mb-4 flex items-center justify-center gap-3 rounded-lg border bg-muted/30 p-3", children: [
2399
2399
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-center", children: [
2400
2400
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Badge, { variant: "secondary", className: "font-mono", children: [
@@ -2436,13 +2436,13 @@ function VersionCompare({
2436
2436
  /* @__PURE__ */ jsxRuntimeExports.jsx(Badge, { variant: "outline", className: "text-xs capitalize", children: change.changeType })
2437
2437
  ] }),
2438
2438
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "mt-2 space-y-2", children: [
2439
- change.changeType !== "added" && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "rounded border border-red-200 bg-white p-2", children: [
2440
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "mb-1 text-xs font-medium text-red-700", children: "Before:" }),
2441
- /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: "overflow-x-auto whitespace-pre-wrap break-words font-mono text-xs text-red-900", children: formatValue(change.fromValue) })
2439
+ change.changeType !== "added" && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "rounded border border-diff-removed-border bg-card p-2", children: [
2440
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "mb-1 text-xs font-medium text-diff-removed", children: "Before:" }),
2441
+ /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: "overflow-x-auto whitespace-pre-wrap break-words font-mono text-xs text-diff-removed-foreground", children: formatValue(change.fromValue) })
2442
2442
  ] }),
2443
- change.changeType !== "removed" && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "rounded border border-emerald-200 bg-white p-2", children: [
2444
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "mb-1 text-xs font-medium text-emerald-700", children: "After:" }),
2445
- /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: "overflow-x-auto whitespace-pre-wrap break-words font-mono text-xs text-emerald-900", children: formatValue(change.toValue) })
2443
+ change.changeType !== "removed" && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "rounded border border-diff-added-border bg-card p-2", children: [
2444
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "mb-1 text-xs font-medium text-diff-added", children: "After:" }),
2445
+ /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: "overflow-x-auto whitespace-pre-wrap break-words font-mono text-xs text-diff-added-foreground", children: formatValue(change.toValue) })
2446
2446
  ] })
2447
2447
  ] })
2448
2448
  ]
@@ -2498,11 +2498,11 @@ function VersionRollbackModal({
2498
2498
  ] }),
2499
2499
  "."
2500
2500
  ] }),
2501
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "rounded-lg border border-amber-200 bg-amber-50 p-3", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex gap-2", children: [
2502
- /* @__PURE__ */ jsxRuntimeExports.jsx(TriangleAlert, { className: "mt-0.5 size-4 shrink-0 text-amber-600" }),
2501
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "diff-modified rounded-lg border p-3", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex gap-2", children: [
2502
+ /* @__PURE__ */ jsxRuntimeExports.jsx(TriangleAlert, { className: "mt-0.5 size-4 shrink-0 text-diff-modified" }),
2503
2503
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-2", children: [
2504
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-sm font-medium text-amber-800", children: "This action will:" }),
2505
- /* @__PURE__ */ jsxRuntimeExports.jsxs("ul", { className: "space-y-1 text-sm text-amber-700", children: [
2504
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-sm font-medium text-diff-modified", children: "This action will:" }),
2505
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("ul", { className: "space-y-1 text-sm text-diff-modified-foreground", children: [
2506
2506
  /* @__PURE__ */ jsxRuntimeExports.jsxs("li", { children: [
2507
2507
  "• Create a new version with the content from version",
2508
2508
  " ",
@@ -2513,7 +2513,7 @@ function VersionRollbackModal({
2513
2513
  ] })
2514
2514
  ] })
2515
2515
  ] }) }),
2516
- error && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "rounded-lg border border-red-200 bg-red-50 px-3 py-2 text-sm text-red-800", children: [
2516
+ error && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "diff-removed rounded-lg border px-3 py-2 text-sm", children: [
2517
2517
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "font-medium", children: "Error:" }),
2518
2518
  " ",
2519
2519
  error
@@ -2629,7 +2629,7 @@ function VersionHistory({
2629
2629
  }
2630
2630
  )
2631
2631
  ] }),
2632
- rollbackSuccess && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 border-b bg-emerald-50 px-4 py-2 text-sm text-emerald-800", children: [
2632
+ rollbackSuccess && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 border-b bg-diff-added-bg px-4 py-2 text-sm text-diff-added-foreground", children: [
2633
2633
  /* @__PURE__ */ jsxRuntimeExports.jsx(CircleCheckBig, { className: "size-4" }),
2634
2634
  "Successfully rolled back to previous version"
2635
2635
  ] }),
@@ -2665,7 +2665,7 @@ function VersionHistory({
2665
2665
  Badge,
2666
2666
  {
2667
2667
  variant: "outline",
2668
- className: "border-emerald-500/50 text-emerald-600",
2668
+ className: "border-success/50 text-success",
2669
2669
  children: "Published"
2670
2670
  }
2671
2671
  )
@@ -3379,8 +3379,8 @@ function ContentEntryEditor({
3379
3379
  className: cn(
3380
3380
  "flex items-center gap-1.5 text-sm",
3381
3381
  autosaveStatus === "saving" && "text-muted-foreground",
3382
- autosaveStatus === "saved" && "text-emerald-600",
3383
- autosaveStatus === "error" && "text-red-600"
3382
+ autosaveStatus === "saved" && "text-success",
3383
+ autosaveStatus === "error" && "text-destructive"
3384
3384
  ),
3385
3385
  "data-testid": "autosave-status",
3386
3386
  children: [
@@ -3402,13 +3402,13 @@ function ContentEntryEditor({
3402
3402
  }
3403
3403
  )
3404
3404
  ] }),
3405
- isDirty && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm text-amber-600", children: "Unsaved changes" })
3405
+ isDirty && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm text-warning", children: "Unsaved changes" })
3406
3406
  ] })
3407
3407
  ] }),
3408
3408
  saveSuccess && /* @__PURE__ */ jsxRuntimeExports.jsxs(
3409
3409
  "div",
3410
3410
  {
3411
- className: "flex items-center gap-2 rounded-lg border border-emerald-200 bg-emerald-50 px-4 py-3 text-sm text-emerald-800",
3411
+ className: "diff-added flex items-center gap-2 rounded-lg border px-4 py-3 text-sm",
3412
3412
  role: "status",
3413
3413
  children: [
3414
3414
  /* @__PURE__ */ jsxRuntimeExports.jsx(CircleCheckBig, { className: "size-4" }),
@@ -3419,7 +3419,7 @@ function ContentEntryEditor({
3419
3419
  (submitError || publishError) && /* @__PURE__ */ jsxRuntimeExports.jsxs(
3420
3420
  "div",
3421
3421
  {
3422
- className: "rounded-lg border border-red-200 bg-red-50 px-4 py-3 text-sm text-red-800",
3422
+ className: "diff-removed rounded-lg border px-4 py-3 text-sm",
3423
3423
  role: "alert",
3424
3424
  children: [
3425
3425
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "font-medium", children: "Error:" }),
@@ -3509,7 +3509,7 @@ function ContentEntryEditor({
3509
3509
  settings?.features.scheduling && entry.status === "scheduled" && entry.scheduledPublishAt && /* @__PURE__ */ jsxRuntimeExports.jsxs(
3510
3510
  "span",
3511
3511
  {
3512
- className: "flex items-center gap-1 text-xs text-blue-600",
3512
+ className: "flex items-center gap-1 text-xs text-info",
3513
3513
  "data-testid": "scheduled-time",
3514
3514
  children: [
3515
3515
  /* @__PURE__ */ jsxRuntimeExports.jsx(Clock, { className: "size-3" }),
@@ -1,7 +1,7 @@
1
1
  import { r as reactExports, j as jsxRuntimeExports } from "../_chunks/_libs/react.mjs";
2
- import { h as api, P as Popover, y as PopoverTrigger, C as CmsButton, f as cn, z as PopoverContent, e as Checkbox } from "./router-CaDgRHfQ.mjs";
3
- import { C as Command, a as CommandInput, b as CommandList, c as CommandEmpty, d as CommandGroup, e as CommandSeparator, f as CommandItem } from "./command-BfjE1WJf.mjs";
4
- import { B as Badge } from "./badge-Cp61aQNc.mjs";
2
+ import { h as api, P as Popover, y as PopoverTrigger, C as CmsButton, f as cn, z as PopoverContent, e as Checkbox } from "./router-vd1nySeP.mjs";
3
+ import { C as Command, a as CommandInput, b as CommandList, c as CommandEmpty, d as CommandGroup, e as CommandSeparator, f as CommandItem } from "./command-BLAWQhUw.mjs";
4
+ import { B as Badge } from "./badge-EI998zba.mjs";
5
5
  import { u as useQuery } from "../_libs/convex.mjs";
6
6
  import { N as Tags, d as ChevronDown, X, i as Check } from "../_libs/lucide-react.mjs";
7
7
  function TaxonomyFilter({
@@ -1,15 +1,15 @@
1
1
  import { r as reactExports, j as jsxRuntimeExports } from "../_chunks/_libs/react.mjs";
2
2
  import { d as useNavigate, L as Link } from "../_chunks/_libs/@tanstack/react-router.mjs";
3
- import { x as Route$1, h as api, C as CmsButton, I as Input, S as Select, a as SelectTrigger, b as SelectValue, c as SelectContent, d as SelectItem, g as CmsConfirmDialog } from "./router-CaDgRHfQ.mjs";
4
- import { u as usePermissions } from "./usePermissions-D0qtvmNi.mjs";
5
- import { u as useBreadcrumbLabel } from "./useBreadcrumbLabel-BQGjOTcy.mjs";
6
- import { C as CmsPageHeader } from "./CmsPageHeader-BcniLh49.mjs";
7
- import { C as CmsToolbar } from "./CmsToolbar-Dqqb216_.mjs";
8
- import { C as CmsStatusBadge } from "./CmsStatusBadge-BShWDxwE.mjs";
9
- import { C as CmsEmptyState } from "./CmsEmptyState-DYh_PPQE.mjs";
10
- import { T as TaxonomyFilter } from "./TaxonomyFilter-BfsPAZ-Y.mjs";
3
+ import { x as Route$1, h as api, C as CmsButton, I as Input, S as Select, a as SelectTrigger, b as SelectValue, c as SelectContent, d as SelectItem, g as CmsConfirmDialog } from "./router-vd1nySeP.mjs";
4
+ import { u as usePermissions } from "./usePermissions-olYRd9S9.mjs";
5
+ import { u as useBreadcrumbLabel } from "./useBreadcrumbLabel-DpEKyG1h.mjs";
6
+ import { C as CmsPageHeader } from "./CmsPageHeader-BHUmrIWD.mjs";
7
+ import { C as CmsToolbar } from "./CmsToolbar-BCrwg7OL.mjs";
8
+ import { C as CmsStatusBadge } from "./CmsStatusBadge-D0Zb0oRl.mjs";
9
+ import { C as CmsEmptyState } from "./CmsEmptyState-BM8DghTl.mjs";
10
+ import { T as TaxonomyFilter } from "./TaxonomyFilter-C4pD0kfM.mjs";
11
11
  import { d as useMutation, u as useQuery } from "../_libs/convex.mjs";
12
- import { Q as FileText, P as Plus, a1 as Search, an as ArrowUpDown, g as ChevronUp, d as ChevronDown } from "../_libs/lucide-react.mjs";
12
+ import { Q as FileText, P as Plus, a1 as Search, ap as ArrowUpDown, g as ChevronUp, d as ChevronDown } from "../_libs/lucide-react.mjs";
13
13
  import "../_libs/tiny-warning.mjs";
14
14
  import "../_chunks/_libs/@tanstack/router-core.mjs";
15
15
  import "../_chunks/_libs/@tanstack/store.mjs";
@@ -77,8 +77,8 @@ import "../_chunks/_libs/@radix-ui/react-popover.mjs";
77
77
  import "./index.mjs";
78
78
  import "node:async_hooks";
79
79
  import "../_libs/zod.mjs";
80
- import "./badge-Cp61aQNc.mjs";
81
- import "./command-BfjE1WJf.mjs";
80
+ import "./badge-EI998zba.mjs";
81
+ import "./command-BLAWQhUw.mjs";
82
82
  import "../_libs/cmdk.mjs";
83
83
  function ContentTypeEntriesPage() {
84
84
  const {
@@ -1,10 +1,10 @@
1
1
  import { j as jsxRuntimeExports } from "../_chunks/_libs/react.mjs";
2
2
  import { d as useNavigate } from "../_chunks/_libs/@tanstack/react-router.mjs";
3
- import { w as Route$2, h as api } from "./router-CaDgRHfQ.mjs";
4
- import { C as ContentEntryEditor } from "./ContentEntryEditor-DOIAyWME.mjs";
5
- import { u as usePermissions } from "./usePermissions-D0qtvmNi.mjs";
6
- import { u as useBreadcrumbLabel } from "./useBreadcrumbLabel-BQGjOTcy.mjs";
7
- import { C as CmsEmptyState } from "./CmsEmptyState-DYh_PPQE.mjs";
3
+ import { w as Route$2, h as api } from "./router-vd1nySeP.mjs";
4
+ import { C as ContentEntryEditor } from "./ContentEntryEditor-Cjfm0uhr.mjs";
5
+ import { u as usePermissions } from "./usePermissions-olYRd9S9.mjs";
6
+ import { u as useBreadcrumbLabel } from "./useBreadcrumbLabel-DpEKyG1h.mjs";
7
+ import { C as CmsEmptyState } from "./CmsEmptyState-BM8DghTl.mjs";
8
8
  import { u as useQuery } from "../_libs/convex.mjs";
9
9
  import { Q as FileText } from "../_libs/lucide-react.mjs";
10
10
  import "../_libs/tiny-warning.mjs";
@@ -74,16 +74,16 @@ import "../_chunks/_libs/@radix-ui/react-popover.mjs";
74
74
  import "./index.mjs";
75
75
  import "node:async_hooks";
76
76
  import "../_libs/zod.mjs";
77
- import "./switch-DmbR03dm.mjs";
77
+ import "./switch-C05NgNW0.mjs";
78
78
  import "../_chunks/_libs/@radix-ui/react-switch.mjs";
79
79
  import "../_chunks/_libs/@radix-ui/react-separator.mjs";
80
- import "./tabs-5oFlAGLz.mjs";
80
+ import "./tabs-DAk2J5xy.mjs";
81
81
  import "../_chunks/_libs/@radix-ui/react-tabs.mjs";
82
- import "./command-BfjE1WJf.mjs";
82
+ import "./command-BLAWQhUw.mjs";
83
83
  import "../_libs/cmdk.mjs";
84
- import "./badge-Cp61aQNc.mjs";
85
- import "./CmsStatusBadge-BShWDxwE.mjs";
86
- import "./scroll-area-D3v-O_jk.mjs";
84
+ import "./badge-EI998zba.mjs";
85
+ import "./CmsStatusBadge-D0Zb0oRl.mjs";
86
+ import "./scroll-area--B9snFTJ.mjs";
87
87
  import "../_chunks/_libs/@radix-ui/react-scroll-area.mjs";
88
88
  import "../_libs/react-day-picker.mjs";
89
89
  import "../_libs/date-fns.mjs";
@@ -0,0 +1,4 @@
1
+ const tsrStartManifest = () => ({ "routes": { "__root__": { "filePath": "/Users/home/Developer/projects/convex-cms/admin/src/routes/__root.tsx", "children": ["/", "/content", "/content-types", "/media", "/settings", "/taxonomies", "/trash", "/entries/$entryId", "/entries/new/$contentTypeId", "/entries/type/$contentTypeId"], "preloads": ["/assets/main-DV6oxWnU.js"], "assets": [] }, "/": { "filePath": "/Users/home/Developer/projects/convex-cms/admin/src/routes/index.tsx", "assets": [], "preloads": ["/assets/index-DOkgTSx0.js", "/assets/CmsPageHeader-SoF4Epu9.js", "/assets/alert-BAHTL6ao.js", "/assets/refresh-cw-Cm-YOeFI.js", "/assets/tanstack-adapter-f7AHmQ5L.js"] }, "/content": { "filePath": "/Users/home/Developer/projects/convex-cms/admin/src/routes/content.tsx", "assets": [], "preloads": ["/assets/content-CKQ4QwW2.js", "/assets/usePermissions-DWBImEOW.js", "/assets/circle-check-big-3OHxNDhO.js", "/assets/badge-oJv4Eai8.js", "/assets/CmsPageHeader-SoF4Epu9.js", "/assets/CmsToolbar-DlZPMe2B.js", "/assets/CmsEmptyState-6-PLaXtD.js", "/assets/CmsStatusBadge-D7kYaohx.js", "/assets/search-DKKh_DdH.js", "/assets/tanstack-adapter-f7AHmQ5L.js"] }, "/content-types": { "filePath": "/Users/home/Developer/projects/convex-cms/admin/src/routes/content-types.tsx", "assets": [], "preloads": ["/assets/content-types-BrttaLpc.js", "/assets/CmsPageHeader-SoF4Epu9.js", "/assets/CmsToolbar-DlZPMe2B.js", "/assets/CmsEmptyState-6-PLaXtD.js", "/assets/badge-oJv4Eai8.js", "/assets/search-DKKh_DdH.js", "/assets/pencil-CX1CiTDD.js", "/assets/tanstack-adapter-f7AHmQ5L.js"] }, "/media": { "filePath": "/Users/home/Developer/projects/convex-cms/admin/src/routes/media.tsx", "assets": [], "preloads": ["/assets/media-B2i-mCbx.js", "/assets/tabs-DUQwUoIb.js", "/assets/CmsPageHeader-SoF4Epu9.js", "/assets/CmsToolbar-DlZPMe2B.js", "/assets/CmsEmptyState-6-PLaXtD.js", "/assets/TaxonomyFilter-CFX1_g8s.js", "/assets/pencil-CX1CiTDD.js", "/assets/badge-oJv4Eai8.js", "/assets/rotate-ccw-B45JsL5f.js", "/assets/search-DKKh_DdH.js", "/assets/tanstack-adapter-f7AHmQ5L.js", "/assets/refresh-cw-Cm-YOeFI.js", "/assets/command-DwgQs69u.js"] }, "/settings": { "filePath": "/Users/home/Developer/projects/convex-cms/admin/src/routes/settings.tsx", "assets": [], "preloads": ["/assets/settings-CGVDEV1r.js", "/assets/usePermissions-DWBImEOW.js", "/assets/CmsPageHeader-SoF4Epu9.js", "/assets/CmsSurface-BvksBm6W.js", "/assets/switch-BTMY8Qnk.js", "/assets/badge-oJv4Eai8.js", "/assets/alert-BAHTL6ao.js", "/assets/tanstack-adapter-f7AHmQ5L.js"] }, "/taxonomies": { "filePath": "/Users/home/Developer/projects/convex-cms/admin/src/routes/taxonomies.tsx", "assets": [], "preloads": ["/assets/taxonomies-DvMppdiD.js", "/assets/CmsEmptyState-6-PLaXtD.js", "/assets/pencil-CX1CiTDD.js", "/assets/CmsPageHeader-SoF4Epu9.js", "/assets/CmsSurface-BvksBm6W.js", "/assets/badge-oJv4Eai8.js", "/assets/scroll-area-b3A1HHR7.js", "/assets/tanstack-adapter-f7AHmQ5L.js"] }, "/trash": { "filePath": "/Users/home/Developer/projects/convex-cms/admin/src/routes/trash.tsx", "assets": [], "preloads": ["/assets/trash-D7e0uKd9.js", "/assets/CmsPageHeader-SoF4Epu9.js", "/assets/CmsToolbar-DlZPMe2B.js", "/assets/CmsEmptyState-6-PLaXtD.js", "/assets/CmsSurface-BvksBm6W.js", "/assets/badge-oJv4Eai8.js", "/assets/alert-BAHTL6ao.js", "/assets/search-DKKh_DdH.js", "/assets/rotate-ccw-B45JsL5f.js", "/assets/tanstack-adapter-f7AHmQ5L.js"] }, "/entries/$entryId": { "filePath": "/Users/home/Developer/projects/convex-cms/admin/src/routes/entries/$entryId.tsx", "assets": [], "preloads": ["/assets/_entryId-D3lr5Dvy.js", "/assets/ContentEntryEditor-C6n9xLS9.js", "/assets/usePermissions-DWBImEOW.js", "/assets/useBreadcrumbLabel-CF2KYwsw.js", "/assets/CmsEmptyState-6-PLaXtD.js", "/assets/switch-BTMY8Qnk.js", "/assets/tabs-DUQwUoIb.js", "/assets/refresh-cw-Cm-YOeFI.js", "/assets/pencil-CX1CiTDD.js", "/assets/search-DKKh_DdH.js", "/assets/command-DwgQs69u.js", "/assets/badge-oJv4Eai8.js", "/assets/CmsStatusBadge-D7kYaohx.js", "/assets/scroll-area-b3A1HHR7.js", "/assets/circle-check-big-3OHxNDhO.js"] }, "/entries/new/$contentTypeId": { "filePath": "/Users/home/Developer/projects/convex-cms/admin/src/routes/entries/new.$contentTypeId.tsx", "assets": [], "preloads": ["/assets/new._contentTypeId-VF63rpic.js", "/assets/ContentEntryEditor-C6n9xLS9.js", "/assets/useBreadcrumbLabel-CF2KYwsw.js", "/assets/CmsEmptyState-6-PLaXtD.js", "/assets/switch-BTMY8Qnk.js", "/assets/tabs-DUQwUoIb.js", "/assets/refresh-cw-Cm-YOeFI.js", "/assets/pencil-CX1CiTDD.js", "/assets/search-DKKh_DdH.js", "/assets/command-DwgQs69u.js", "/assets/badge-oJv4Eai8.js", "/assets/CmsStatusBadge-D7kYaohx.js", "/assets/scroll-area-b3A1HHR7.js", "/assets/circle-check-big-3OHxNDhO.js"] }, "/entries/type/$contentTypeId": { "filePath": "/Users/home/Developer/projects/convex-cms/admin/src/routes/entries/type/$contentTypeId.tsx", "assets": [], "preloads": ["/assets/_contentTypeId-DTv8UoTp.js", "/assets/usePermissions-DWBImEOW.js", "/assets/useBreadcrumbLabel-CF2KYwsw.js", "/assets/CmsPageHeader-SoF4Epu9.js", "/assets/CmsToolbar-DlZPMe2B.js", "/assets/CmsStatusBadge-D7kYaohx.js", "/assets/CmsEmptyState-6-PLaXtD.js", "/assets/TaxonomyFilter-CFX1_g8s.js", "/assets/search-DKKh_DdH.js", "/assets/badge-oJv4Eai8.js", "/assets/command-DwgQs69u.js"] } }, "clientEntry": "/assets/main-DV6oxWnU.js" });
2
+ export {
3
+ tsrStartManifest
4
+ };
@@ -1,7 +1,7 @@
1
1
  import { j as jsxRuntimeExports } from "../_chunks/_libs/react.mjs";
2
2
  import { S as Slot } from "../_chunks/_libs/@radix-ui/react-slot.mjs";
3
3
  import { c as cva } from "../_libs/class-variance-authority.mjs";
4
- import { f as cn } from "./router-CaDgRHfQ.mjs";
4
+ import { f as cn } from "./router-vd1nySeP.mjs";
5
5
  const badgeVariants = cva(
6
6
  "inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
7
7
  {
@@ -1,6 +1,6 @@
1
1
  import { j as jsxRuntimeExports } from "../_chunks/_libs/react.mjs";
2
2
  import { _ as _e } from "../_libs/cmdk.mjs";
3
- import { f as cn } from "./router-CaDgRHfQ.mjs";
3
+ import { f as cn } from "./router-vd1nySeP.mjs";
4
4
  import { a1 as Search } from "../_libs/lucide-react.mjs";
5
5
  function Command({
6
6
  className,
@@ -1,12 +1,12 @@
1
1
  import { j as jsxRuntimeExports, r as reactExports } from "../_chunks/_libs/react.mjs";
2
- import { h as api, m as DropdownMenu, n as DropdownMenuTrigger, C as CmsButton, o as DropdownMenuContent, p as DropdownMenuItem, I as Input, S as Select, a as SelectTrigger, b as SelectValue, c as SelectContent, d as SelectItem, e as Checkbox, f as cn, i as CmsDialog } from "./router-CaDgRHfQ.mjs";
3
- import { u as usePermissions } from "./usePermissions-D0qtvmNi.mjs";
4
- import { B as Badge } from "./badge-Cp61aQNc.mjs";
5
- import { C as CmsPageHeader } from "./CmsPageHeader-BcniLh49.mjs";
6
- import { C as CmsToolbar } from "./CmsToolbar-Dqqb216_.mjs";
7
- import { C as CmsEmptyState } from "./CmsEmptyState-DYh_PPQE.mjs";
8
- import { C as CmsStatusBadge } from "./CmsStatusBadge-BShWDxwE.mjs";
9
- import { u as useTanStackNavigation } from "./tanstack-adapter-DNaUioIZ.mjs";
2
+ import { h as api, m as DropdownMenu, n as DropdownMenuTrigger, C as CmsButton, o as DropdownMenuContent, p as DropdownMenuItem, I as Input, S as Select, a as SelectTrigger, b as SelectValue, c as SelectContent, d as SelectItem, e as Checkbox, f as cn, i as CmsDialog } from "./router-vd1nySeP.mjs";
3
+ import { u as usePermissions } from "./usePermissions-olYRd9S9.mjs";
4
+ import { B as Badge } from "./badge-EI998zba.mjs";
5
+ import { C as CmsPageHeader } from "./CmsPageHeader-BHUmrIWD.mjs";
6
+ import { C as CmsToolbar } from "./CmsToolbar-BCrwg7OL.mjs";
7
+ import { C as CmsEmptyState } from "./CmsEmptyState-BM8DghTl.mjs";
8
+ import { C as CmsStatusBadge } from "./CmsStatusBadge-D0Zb0oRl.mjs";
9
+ import { u as useTanStackNavigation } from "./tanstack-adapter-DWbaPByn.mjs";
10
10
  import { u as useQuery, d as useMutation } from "../_libs/convex.mjs";
11
11
  import { P as Plus, d as ChevronDown, a1 as Search, Q as FileText, X, al as CircleCheckBig, a0 as TriangleAlert } from "../_libs/lucide-react.mjs";
12
12
  import "../_chunks/_libs/@tanstack/react-router.mjs";
@@ -141,7 +141,7 @@ function BulkOperationModal({
141
141
  )
142
142
  ] }),
143
143
  children: result ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "space-y-4", children: result.failed === 0 ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col items-center gap-3 py-4 text-center", children: [
144
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex size-12 items-center justify-center rounded-full bg-emerald-100 text-emerald-600", children: /* @__PURE__ */ jsxRuntimeExports.jsx(CircleCheckBig, { className: "size-6" }) }),
144
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex size-12 items-center justify-center rounded-full bg-diff-added-bg text-diff-added", children: /* @__PURE__ */ jsxRuntimeExports.jsx(CircleCheckBig, { className: "size-6" }) }),
145
145
  /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-sm text-muted-foreground", children: [
146
146
  "Successfully processed",
147
147
  " ",
@@ -151,23 +151,23 @@ function BulkOperationModal({
151
151
  ] })
152
152
  ] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-4", children: [
153
153
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
154
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "rounded-lg border border-emerald-200 bg-emerald-50 p-3 text-center", children: [
155
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-2xl font-semibold text-emerald-700", children: result.succeeded }),
156
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs text-emerald-600", children: "Succeeded" })
154
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "diff-added rounded-lg border p-3 text-center", children: [
155
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-2xl font-semibold text-diff-added", children: result.succeeded }),
156
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs text-diff-added-foreground", children: "Succeeded" })
157
157
  ] }),
158
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "rounded-lg border border-red-200 bg-red-50 p-3 text-center", children: [
159
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-2xl font-semibold text-red-700", children: result.failed }),
160
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs text-red-600", children: "Failed" })
158
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "diff-removed rounded-lg border p-3 text-center", children: [
159
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-2xl font-semibold text-diff-removed", children: result.failed }),
160
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs text-diff-removed-foreground", children: "Failed" })
161
161
  ] })
162
162
  ] }),
163
- result.errors && result.errors.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "rounded-lg border border-amber-200 bg-amber-50 p-3", children: [
164
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "mb-2 text-sm font-medium text-amber-800", children: "Errors:" }),
165
- /* @__PURE__ */ jsxRuntimeExports.jsxs("ul", { className: "space-y-1 text-xs text-amber-700", children: [
163
+ result.errors && result.errors.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "diff-modified rounded-lg border p-3", children: [
164
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "mb-2 text-sm font-medium text-diff-modified", children: "Errors:" }),
165
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("ul", { className: "space-y-1 text-xs text-diff-modified-foreground", children: [
166
166
  result.errors.slice(0, 5).map((error, index) => /* @__PURE__ */ jsxRuntimeExports.jsxs("li", { className: "truncate", children: [
167
167
  "• ",
168
168
  error
169
169
  ] }, index)),
170
- result.errors.length > 5 && /* @__PURE__ */ jsxRuntimeExports.jsxs("li", { className: "text-amber-600", children: [
170
+ result.errors.length > 5 && /* @__PURE__ */ jsxRuntimeExports.jsxs("li", { className: "text-diff-modified-foreground/80", children: [
171
171
  "...and ",
172
172
  result.errors.length - 5,
173
173
  " more errors"
@@ -187,9 +187,9 @@ function BulkOperationModal({
187
187
  "."
188
188
  ] }),
189
189
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-sm text-muted-foreground", children: config.description }),
190
- config.warning && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-start gap-2 rounded-lg border border-amber-200 bg-amber-50 p-3", children: [
191
- /* @__PURE__ */ jsxRuntimeExports.jsx(TriangleAlert, { className: "mt-0.5 size-4 shrink-0 text-amber-600" }),
192
- /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-sm text-amber-800", children: [
190
+ config.warning && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "diff-modified flex items-start gap-2 rounded-lg border p-3", children: [
191
+ /* @__PURE__ */ jsxRuntimeExports.jsx(TriangleAlert, { className: "mt-0.5 size-4 shrink-0 text-diff-modified" }),
192
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-sm", children: [
193
193
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "font-medium", children: "Note:" }),
194
194
  " ",
195
195
  config.warning
@@ -366,6 +366,15 @@ function ContentPage({ api: api2, navigation }) {
366
366
  const [searchQuery, setSearchQuery] = reactExports.useState("");
367
367
  const [selectedIds, setSelectedIds] = reactExports.useState(/* @__PURE__ */ new Set());
368
368
  const { canCreate, canUpdate } = usePermissions();
369
+ reactExports.useEffect(() => {
370
+ const contentTypeId = navigation.params?.contentTypeId;
371
+ if (contentTypeId) {
372
+ const slug = contentTypeId.startsWith("code:") ? contentTypeId.slice(5) : contentTypeId;
373
+ setSelectedTypeId(slug);
374
+ } else {
375
+ setSelectedTypeId("");
376
+ }
377
+ }, [navigation.params?.contentTypeId]);
369
378
  const contentTypesResult = useQuery(api2.listContentTypes, { isActive: true });
370
379
  const contentTypes = contentTypesResult?.page ?? [];
371
380
  const isLoadingContentTypes = contentTypesResult === void 0;
@@ -1,10 +1,10 @@
1
1
  import { j as jsxRuntimeExports, r as reactExports } from "../_chunks/_libs/react.mjs";
2
- import { h as api, f as cn, C as CmsButton, I as Input, e as Checkbox, v as ContentTypeFormModal } from "./router-CaDgRHfQ.mjs";
3
- import { B as Badge } from "./badge-Cp61aQNc.mjs";
4
- import { C as CmsPageHeader } from "./CmsPageHeader-BcniLh49.mjs";
5
- import { C as CmsToolbar } from "./CmsToolbar-Dqqb216_.mjs";
6
- import { C as CmsEmptyState } from "./CmsEmptyState-DYh_PPQE.mjs";
7
- import { u as useTanStackNavigation } from "./tanstack-adapter-DNaUioIZ.mjs";
2
+ import { h as api, f as cn, C as CmsButton, I as Input, e as Checkbox, v as ContentTypeFormModal } from "./router-vd1nySeP.mjs";
3
+ import { B as Badge } from "./badge-EI998zba.mjs";
4
+ import { C as CmsPageHeader } from "./CmsPageHeader-BHUmrIWD.mjs";
5
+ import { C as CmsToolbar } from "./CmsToolbar-BCrwg7OL.mjs";
6
+ import { C as CmsEmptyState } from "./CmsEmptyState-BM8DghTl.mjs";
7
+ import { u as useTanStackNavigation } from "./tanstack-adapter-DWbaPByn.mjs";
8
8
  import { u as useQuery } from "../_libs/convex.mjs";
9
9
  import { ak as Grid3x3, Y as List, P as Plus, a1 as Search, _ as FileType, f as CodeXml, k as Eye, a3 as Pencil, $ as TextAlignStart, V as FolderOpen, W as Tag, d as ChevronDown, t as Braces, O as Image, Z as Link2, y as Calendar, T as ToggleLeft, v as Hash } from "../_libs/lucide-react.mjs";
10
10
  import "../_chunks/_libs/@tanstack/react-router.mjs";
@@ -260,7 +260,7 @@ function ContentTypesPage({ api: api2, navigation }) {
260
260
  Badge,
261
261
  {
262
262
  variant: "secondary",
263
- className: "border-amber-200 bg-amber-50 text-xs font-normal text-amber-700",
263
+ className: "border-diff-modified-border bg-diff-modified-bg text-xs font-normal text-diff-modified-foreground",
264
264
  children: "Singleton"
265
265
  }
266
266
  ),
@@ -372,7 +372,7 @@ function ContentTypesPage({ api: api2, navigation }) {
372
372
  variant: contentType.isActive ? "default" : "secondary",
373
373
  className: cn(
374
374
  "text-xs font-normal",
375
- contentType.isActive && "border-emerald-200 bg-emerald-50 text-emerald-700"
375
+ contentType.isActive && "border-diff-added-border bg-diff-added-bg text-diff-added-foreground"
376
376
  ),
377
377
  children: contentType.isActive ? "Active" : "Inactive"
378
378
  }
@@ -381,7 +381,7 @@ function ContentTypesPage({ api: api2, navigation }) {
381
381
  Badge,
382
382
  {
383
383
  variant: "secondary",
384
- className: "border-amber-200 bg-amber-50 text-xs font-normal text-amber-700",
384
+ className: "border-diff-modified-border bg-diff-modified-bg text-xs font-normal text-diff-modified-foreground",
385
385
  children: "Singleton"
386
386
  }
387
387
  )