convex-cms 0.0.9-alpha.5 → 0.0.9-alpha.6

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 (72) hide show
  1. package/admin/src/embed/index.tsx +57 -67
  2. package/admin/src/embed/pages/Entry.tsx +4 -5
  3. package/admin/src/embed/pages/NewEntry.tsx +2 -1
  4. package/admin/src/embed/types.ts +0 -1
  5. package/admin-dist/nitro.json +1 -1
  6. package/admin-dist/public/assets/{CmsEmptyState-BM4e6N83.js → CmsEmptyState-la_kLGHv.js} +1 -1
  7. package/admin-dist/public/assets/{CmsPageHeader-uor3DPIk.js → CmsPageHeader-Cf0SafVG.js} +1 -1
  8. package/admin-dist/public/assets/{CmsStatusBadge-D8N18LJx.js → CmsStatusBadge-BovugIHH.js} +1 -1
  9. package/admin-dist/public/assets/{CmsSurface-BEcY-WpI.js → CmsSurface-Dp1TegU4.js} +1 -1
  10. package/admin-dist/public/assets/{CmsToolbar-DE-bu3W8.js → CmsToolbar-B1zdfMu0.js} +1 -1
  11. package/admin-dist/public/assets/{ContentEntryEditor-BdkIMCUk.js → ContentEntryEditor-CB--8SC3.js} +1 -1
  12. package/admin-dist/public/assets/{TaxonomyFilter-a1-O9DPs.js → TaxonomyFilter-fmZxxbdA.js} +1 -1
  13. package/admin-dist/public/assets/{_contentTypeId-XIkYOLyY.js → _contentTypeId-vT09P77i.js} +1 -1
  14. package/admin-dist/public/assets/{_entryId-DyP15QpI.js → _entryId-Dhq6ybYt.js} +1 -1
  15. package/admin-dist/public/assets/{alert-DHBQuuib.js → alert-DfdkD-ZZ.js} +1 -1
  16. package/admin-dist/public/assets/{badge-BOhWFWzb.js → badge-Cmc3T9vs.js} +1 -1
  17. package/admin-dist/public/assets/{circle-check-big-DjTNapen.js → circle-check-big-B8AJAcBi.js} +1 -1
  18. package/admin-dist/public/assets/{command-BIc5_8gL.js → command-BsmkQ6_j.js} +1 -1
  19. package/admin-dist/public/assets/{content-C3N8Ugra.js → content-DdQ1u7T4.js} +1 -1
  20. package/admin-dist/public/assets/{content-types-D0wh1eUF.js → content-types-QYcwm0Sy.js} +1 -1
  21. package/admin-dist/public/assets/{index-B-g3F_ri.js → index-kxLB3e43.js} +1 -1
  22. package/admin-dist/public/assets/main-BrFRroF1.js +107 -0
  23. package/admin-dist/public/assets/{media-8uh1MwDi.js → media-Cx9IyZvU.js} +1 -1
  24. package/admin-dist/public/assets/{new._contentTypeId-S96rFbgY.js → new._contentTypeId-2HsDwzy_.js} +1 -1
  25. package/admin-dist/public/assets/{pencil-DgaZav4e.js → pencil-PaJhpDeC.js} +1 -1
  26. package/admin-dist/public/assets/{refresh-cw-BBut4hAU.js → refresh-cw-D_KNzBUN.js} +1 -1
  27. package/admin-dist/public/assets/{rotate-ccw-DVCkojZZ.js → rotate-ccw-I3wzW1RQ.js} +1 -1
  28. package/admin-dist/public/assets/{scroll-area-DPC4uXzf.js → scroll-area-t72-FBB4.js} +1 -1
  29. package/admin-dist/public/assets/{search-CSyHHglh.js → search-BsuImjd-.js} +1 -1
  30. package/admin-dist/public/assets/{settings-cEqPsoJ0.js → settings-DB6TvceQ.js} +1 -1
  31. package/admin-dist/public/assets/{switch-O2BviO8Q.js → switch-DWN_fx2n.js} +1 -1
  32. package/admin-dist/public/assets/{tabs-p1MWhOqY.js → tabs-BG0vukFH.js} +1 -1
  33. package/admin-dist/public/assets/{tanstack-adapter-CDrxoPZD.js → tanstack-adapter-DHsy8Fjs.js} +1 -1
  34. package/admin-dist/public/assets/{taxonomies-DJ9UbjXW.js → taxonomies-WG8YV2pR.js} +1 -1
  35. package/admin-dist/public/assets/{trash-RnpP6lXF.js → trash-C3Lt5m9d.js} +1 -1
  36. package/admin-dist/public/assets/{useBreadcrumbLabel-zbIWXlkc.js → useBreadcrumbLabel-BC8wl3jQ.js} +1 -1
  37. package/admin-dist/public/assets/{usePermissions-4CTlK-vU.js → usePermissions-BM1Vv1YJ.js} +1 -1
  38. package/admin-dist/server/_libs/convex-helpers.mjs +37 -0
  39. package/admin-dist/server/_libs/convex.mjs +1357 -168
  40. package/admin-dist/server/_ssr/{CmsEmptyState-BA0Lc5xs.mjs → CmsEmptyState-NKmyUWD9.mjs} +1 -1
  41. package/admin-dist/server/_ssr/{CmsPageHeader-PMyecILZ.mjs → CmsPageHeader-CngxPIOg.mjs} +1 -1
  42. package/admin-dist/server/_ssr/{CmsStatusBadge-CInuN2bZ.mjs → CmsStatusBadge-D4fiHjJD.mjs} +2 -2
  43. package/admin-dist/server/_ssr/{CmsSurface-CH1PIfcS.mjs → CmsSurface-DN9I2iuX.mjs} +1 -1
  44. package/admin-dist/server/_ssr/{CmsToolbar-IuhSA7gR.mjs → CmsToolbar-ux-veU96.mjs} +1 -1
  45. package/admin-dist/server/_ssr/{ContentEntryEditor-Bzhir4fQ.mjs → ContentEntryEditor-BiY9bJr9.mjs} +9 -9
  46. package/admin-dist/server/_ssr/{TaxonomyFilter-r4izSMBh.mjs → TaxonomyFilter-BdtKJie2.mjs} +3 -3
  47. package/admin-dist/server/_ssr/{_contentTypeId-BWEbjqxY.mjs → _contentTypeId-CRo5WQVu.mjs} +12 -11
  48. package/admin-dist/server/_ssr/{_entryId-B5xoXoJf.mjs → _entryId-FnG3uc_Y.mjs} +12 -11
  49. package/admin-dist/server/_ssr/_tanstack-start-manifest_v-BbSNqRIw.mjs +4 -0
  50. package/admin-dist/server/_ssr/{badge-DXrjBRqZ.mjs → badge-D3SGS0Jp.mjs} +1 -1
  51. package/admin-dist/server/_ssr/{command-Cj90OdCX.mjs → command-2t7uTBKt.mjs} +1 -1
  52. package/admin-dist/server/_ssr/{content-DKRI-YqL.mjs → content-CCsSzXeb.mjs} +10 -9
  53. package/admin-dist/server/_ssr/{content-types-BzgRcS8K.mjs → content-types-CuVG3uSt.mjs} +7 -6
  54. package/admin-dist/server/_ssr/{index-BPf6_agY.mjs → index-CLwCLoco.mjs} +5 -4
  55. package/admin-dist/server/_ssr/index.mjs +2 -2
  56. package/admin-dist/server/_ssr/{media-MpjxOZL8.mjs → media-D3duVWkk.mjs} +11 -10
  57. package/admin-dist/server/_ssr/{new._contentTypeId-DSb4qR9j.mjs → new._contentTypeId-6uKYdgGO.mjs} +11 -10
  58. package/admin-dist/server/_ssr/router-D9Zk56-q.mjs +7979 -0
  59. package/admin-dist/server/_ssr/{scroll-area-JwVD_6MZ.mjs → scroll-area-vbjKsfFu.mjs} +1 -1
  60. package/admin-dist/server/_ssr/{settings-KVJNe0GM.mjs → settings-D7-vwjqD.mjs} +9 -8
  61. package/admin-dist/server/_ssr/{switch-DvREvRv4.mjs → switch-CbKuV4Qh.mjs} +1 -1
  62. package/admin-dist/server/_ssr/{tabs-B0h57pFf.mjs → tabs-C_IfqLiu.mjs} +2 -2
  63. package/admin-dist/server/_ssr/{tanstack-adapter-gmM64LnW.mjs → tanstack-adapter-yhyAcBi-.mjs} +1 -1
  64. package/admin-dist/server/_ssr/{taxonomies-BbBNx260.mjs → taxonomies-C15s_nvM.mjs} +9 -8
  65. package/admin-dist/server/_ssr/{trash-JAzYGh7A.mjs → trash-BPIjmAUh.mjs} +9 -8
  66. package/admin-dist/server/_ssr/{useBreadcrumbLabel-BWIujj97.mjs → useBreadcrumbLabel-BC7plG0L.mjs} +1 -1
  67. package/admin-dist/server/_ssr/{usePermissions-CcLDCSwa.mjs → usePermissions-DJ8a7bZU.mjs} +1 -1
  68. package/admin-dist/server/index.mjs +157 -157
  69. package/package.json +2 -1
  70. package/admin-dist/public/assets/main-BapBJgQD.js +0 -102
  71. package/admin-dist/server/_ssr/_tanstack-start-manifest_v-CBTan6ii.mjs +0 -4
  72. package/admin-dist/server/_ssr/router-Dk9ikPNc.mjs +0 -3055
@@ -4,32 +4,38 @@
4
4
  * Use this component to embed the CMS admin UI into your existing React app.
5
5
  * Provides a fully functional admin interface with router-agnostic navigation.
6
6
  *
7
+ * IMPORTANT: The CmsAdmin component must be rendered within a ConvexProvider.
8
+ * Your app should already have this if you're using Convex.
9
+ *
7
10
  * @example
8
11
  * ```tsx
9
- * import { CmsAdmin } from "@convex-cms/admin/embed";
12
+ * import { CmsAdmin } from "convex-cms/admin";
13
+ * import { api } from "./convex/_generated/api";
10
14
  *
11
15
  * function App() {
12
16
  * return (
13
- * <CmsAdmin
14
- * convexUrl="https://your-deployment.convex.cloud"
15
- * auth={{
16
- * getUser: () => currentUser,
17
- * getUserRole: (userId) => userRoles[userId] ?? null,
18
- * onLogout: () => signOut(),
19
- * }}
20
- * config={{
21
- * branding: { appName: "My CMS" },
22
- * navigation: { showTaxonomies: false },
23
- * }}
24
- * basePath="/admin"
25
- * />
17
+ * <ConvexProvider client={convex}>
18
+ * <CmsAdmin
19
+ * api={api.admin}
20
+ * auth={{
21
+ * getUser: () => currentUser,
22
+ * getUserRole: (userId) => userRoles[userId] ?? null,
23
+ * onLogout: () => signOut(),
24
+ * }}
25
+ * config={{
26
+ * branding: { appName: "My CMS" },
27
+ * navigation: { showTaxonomies: false },
28
+ * }}
29
+ * basePath="/admin"
30
+ * />
31
+ * </ConvexProvider>
26
32
  * );
27
33
  * }
28
34
  * ```
29
35
  */
30
36
 
31
- import { ConvexProvider, ConvexReactClient } from "convex/react";
32
- import { useMemo, type ReactNode } from "react";
37
+ import { useConvex } from "convex/react";
38
+ import { useMemo } from "react";
33
39
  import { SettingsConfigProvider } from "../contexts/SettingsConfigContext";
34
40
  import {
35
41
  AuthProvider,
@@ -73,36 +79,6 @@ function adaptAuthConfig(auth: CmsAdminAuthConfig): {
73
79
  };
74
80
  }
75
81
 
76
- function ConvexProviderWrapper({
77
- convexUrl,
78
- children,
79
- }: {
80
- convexUrl: string;
81
- children: ReactNode;
82
- }) {
83
- const convex = useMemo(() => {
84
- if (!convexUrl) return null;
85
- return new ConvexReactClient(convexUrl);
86
- }, [convexUrl]);
87
-
88
- if (!convex) {
89
- return (
90
- <div className="flex min-h-full items-center justify-center bg-background p-6">
91
- <div className="diff-modified max-w-lg space-y-4 rounded-lg border p-6 text-center">
92
- <h2 className="text-xl font-semibold text-diff-modified">
93
- Convex Configuration Required
94
- </h2>
95
- <p className="text-sm text-diff-modified-foreground">
96
- Please provide a valid convexUrl prop to the CmsAdmin component.
97
- </p>
98
- </div>
99
- </div>
100
- );
101
- }
102
-
103
- return <ConvexProvider client={convex}>{children}</ConvexProvider>;
104
- }
105
-
106
82
  function EmbedRouter() {
107
83
  const { currentRoute } = useEmbedNavigation();
108
84
 
@@ -147,7 +123,6 @@ function EmbedRouter() {
147
123
 
148
124
  export function CmsAdmin({
149
125
  api,
150
- convexUrl,
151
126
  config,
152
127
  auth,
153
128
  basePath = "/admin",
@@ -158,6 +133,7 @@ export function CmsAdmin({
158
133
  initialRoute?: EmbedRoute;
159
134
  onNavigate?: (path: string, params: Record<string, string>) => void;
160
135
  }) {
136
+ const convex = useConvex();
161
137
  const adminConfig = useMemo(() => resolveAdminConfig(config), [config]);
162
138
  const authConfig = useMemo(() => adaptAuthConfig(auth), [auth]);
163
139
  const settingsApi = useMemo(
@@ -165,31 +141,45 @@ export function CmsAdmin({
165
141
  [api]
166
142
  );
167
143
 
144
+ if (!convex) {
145
+ return (
146
+ <div className="flex min-h-full items-center justify-center bg-background p-6">
147
+ <div className="diff-modified max-w-lg space-y-4 rounded-lg border p-6 text-center">
148
+ <h2 className="text-xl font-semibold text-diff-modified">
149
+ ConvexProvider Required
150
+ </h2>
151
+ <p className="text-sm text-diff-modified-foreground">
152
+ CmsAdmin must be rendered within a ConvexProvider. Wrap your app or
153
+ this component with ConvexProvider.
154
+ </p>
155
+ </div>
156
+ </div>
157
+ );
158
+ }
159
+
168
160
  return (
169
161
  <div className={className}>
170
162
  <ApiProvider api={api}>
171
163
  <ThemeProvider>
172
- <ConvexProviderWrapper convexUrl={convexUrl}>
173
- <SettingsConfigProvider baseConfig={adminConfig} api={settingsApi}>
174
- <AuthProvider
175
- getUser={authConfig.getUser}
176
- getUserRole={authConfig.getUserRole}
177
- onLogout={authConfig.onLogout}
164
+ <SettingsConfigProvider baseConfig={adminConfig} api={settingsApi}>
165
+ <AuthProvider
166
+ getUser={authConfig.getUser}
167
+ getUserRole={authConfig.getUserRole}
168
+ onLogout={authConfig.onLogout}
169
+ >
170
+ <EmbedNavigationProvider
171
+ initialRoute={initialRoute}
172
+ basePath={basePath}
173
+ onNavigate={onNavigate}
178
174
  >
179
- <EmbedNavigationProvider
180
- initialRoute={initialRoute}
181
- basePath={basePath}
182
- onNavigate={onNavigate}
183
- >
184
- <RouteGuard>
185
- <div className="min-h-screen">
186
- <EmbedRouter />
187
- </div>
188
- </RouteGuard>
189
- </EmbedNavigationProvider>
190
- </AuthProvider>
191
- </SettingsConfigProvider>
192
- </ConvexProviderWrapper>
175
+ <RouteGuard>
176
+ <div className="min-h-screen">
177
+ <EmbedRouter />
178
+ </div>
179
+ </RouteGuard>
180
+ </EmbedNavigationProvider>
181
+ </AuthProvider>
182
+ </SettingsConfigProvider>
193
183
  </ThemeProvider>
194
184
  </ApiProvider>
195
185
  </div>
@@ -21,12 +21,11 @@ export function EmbedEntry() {
21
21
 
22
22
  const entryId = params.entryId;
23
23
 
24
- const entry = useQuery(api.getEntry, entryId ? { id: entryId } : "skip");
24
+ const entryArgs = entryId ? { id: entryId } : ("skip" as const);
25
+ const entry = useQuery(api.getEntry, entryArgs);
25
26
 
26
- const contentType = useQuery(
27
- api.getContentType,
28
- entry ? { name: entry.contentTypeName } : "skip"
29
- );
27
+ const contentTypeArgs = entry ? { name: entry.contentTypeName } : ("skip" as const);
28
+ const contentType = useQuery(api.getContentType, contentTypeArgs);
30
29
 
31
30
  if (!entryId) {
32
31
  return (
@@ -18,7 +18,8 @@ export function EmbedNewEntry() {
18
18
  const { navigate, navigateToEntry, navigateToContentType } = useEmbedNavigation();
19
19
 
20
20
  const contentTypeId = params.contentTypeId;
21
- const contentType = useQuery(api.getContentType, contentTypeId ? { id: contentTypeId } : "skip");
21
+ const contentTypeArgs = contentTypeId ? { id: contentTypeId } : ("skip" as const);
22
+ const contentType = useQuery(api.getContentType, contentTypeArgs);
22
23
 
23
24
  if (!contentTypeId) {
24
25
  return (
@@ -16,7 +16,6 @@ export interface CmsAdminAuthConfig {
16
16
 
17
17
  export interface CmsAdminProps {
18
18
  api: CmsAdminApi;
19
- convexUrl: string;
20
19
  config?: Partial<AdminConfig>;
21
20
  auth: CmsAdminAuthConfig;
22
21
  basePath?: string;
@@ -1,5 +1,5 @@
1
1
  {
2
- "date": "2026-01-28T04:17:46.218Z",
2
+ "date": "2026-01-28T12:28:07.860Z",
3
3
  "preset": "node-server",
4
4
  "framework": {
5
5
  "name": "nitro",
@@ -1 +1 @@
1
- import{j as e,C as n,h as x}from"./main-BapBJgQD.js";function d({icon:s,title:m,description:r,action:t,className:l,...a}){return e.jsxs("div",{className:x("flex flex-col items-center justify-center py-12 text-center",l),...a,children:[s&&e.jsx("div",{className:"mb-4 flex size-12 items-center justify-center rounded-full bg-muted text-muted-foreground",children:s}),e.jsx("h3",{className:"text-base font-semibold text-foreground",children:m}),r&&e.jsx("p",{className:"mt-1 max-w-sm text-sm text-muted-foreground",children:r}),t&&e.jsx(n,{variant:t.variant??"primary",onClick:t.onClick,className:"mt-4",children:t.label})]})}export{d as C};
1
+ import{j as e,C as n,h as x}from"./main-BrFRroF1.js";function d({icon:s,title:m,description:r,action:t,className:l,...a}){return e.jsxs("div",{className:x("flex flex-col items-center justify-center py-12 text-center",l),...a,children:[s&&e.jsx("div",{className:"mb-4 flex size-12 items-center justify-center rounded-full bg-muted text-muted-foreground",children:s}),e.jsx("h3",{className:"text-base font-semibold text-foreground",children:m}),r&&e.jsx("p",{className:"mt-1 max-w-sm text-sm text-muted-foreground",children:r}),t&&e.jsx(n,{variant:t.variant??"primary",onClick:t.onClick,className:"mt-4",children:t.label})]})}export{d as C};
@@ -1 +1 @@
1
- import{j as e,h as m}from"./main-BapBJgQD.js";function c({title:i,description:s,actions:t,breadcrumbs:a,className:l,...r}){return e.jsxs("div",{className:m("mb-6",l),...r,children:[a&&e.jsx("div",{className:"mb-2",children:a}),e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx("h1",{className:"text-2xl font-semibold tracking-tight text-foreground",children:i}),s&&e.jsx("p",{className:"text-sm text-muted-foreground",children:s})]}),t&&e.jsx("div",{className:"flex items-center gap-2",children:t})]})]})}export{c as C};
1
+ import{j as e,h as m}from"./main-BrFRroF1.js";function c({title:i,description:s,actions:t,breadcrumbs:a,className:l,...r}){return e.jsxs("div",{className:m("mb-6",l),...r,children:[a&&e.jsx("div",{className:"mb-2",children:a}),e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx("h1",{className:"text-2xl font-semibold tracking-tight text-foreground",children:i}),s&&e.jsx("p",{className:"text-sm text-muted-foreground",children:s})]}),t&&e.jsx("div",{className:"flex items-center gap-2",children:t})]})]})}export{c as C};
@@ -1 +1 @@
1
- import{j as e,h as t}from"./main-BapBJgQD.js";import{B as a}from"./badge-BOhWFWzb.js";const c={draft:{label:"Draft",className:"status-draft",icon:e.jsx("svg",{className:"size-3",fill:"currentColor",viewBox:"0 0 8 8",children:e.jsx("circle",{cx:"4",cy:"4",r:"3"})})},published:{label:"Published",className:"status-published",icon:e.jsx("svg",{className:"size-3",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"})})},scheduled:{label:"Scheduled",className:"status-scheduled",icon:e.jsxs("svg",{className:"size-3",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[e.jsx("circle",{cx:"12",cy:"12",r:"10"}),e.jsx("path",{strokeLinecap:"round",d:"M12 6v6l4 2"})]})},archived:{label:"Archived",className:"status-archived",icon:e.jsx("svg",{className:"size-3",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 8h14M5 8a2 2 0 110-4h14a2 2 0 110 4M5 8v10a2 2 0 002 2h10a2 2 0 002-2V8m-9 4h4"})})}},n={gray:"bg-muted text-muted-foreground",yellow:"bg-diff-modified-bg text-diff-modified-foreground",blue:"bg-info-bg text-info-foreground",green:"bg-diff-added-bg text-diff-added-foreground",red:"bg-diff-removed-bg text-diff-removed-foreground",purple:"bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-400",orange:"bg-diff-modified-bg text-diff-modified-foreground"};function l(){return e.jsx("svg",{className:"size-3",fill:"currentColor",viewBox:"0 0 8 8",children:e.jsx("circle",{cx:"4",cy:"4",r:"3"})})}function x({status:d,customConfig:s,className:o,...i}){if(s)return e.jsxs(a,{variant:"secondary",className:t("gap-1.5 px-2 py-0.5 text-xs font-medium",n[s.color],o),...i,children:[l(),s.displayName]});const r=c[d];return r?e.jsxs(a,{variant:"secondary",className:t("gap-1.5 px-2 py-0.5 text-xs font-medium",r.className,o),...i,children:[r.icon,r.label]}):e.jsxs(a,{variant:"secondary",className:t("gap-1.5 px-2 py-0.5 text-xs font-medium",n.gray,o),...i,children:[l(),d]})}export{x as C};
1
+ import{j as e,h as t}from"./main-BrFRroF1.js";import{B as a}from"./badge-Cmc3T9vs.js";const c={draft:{label:"Draft",className:"status-draft",icon:e.jsx("svg",{className:"size-3",fill:"currentColor",viewBox:"0 0 8 8",children:e.jsx("circle",{cx:"4",cy:"4",r:"3"})})},published:{label:"Published",className:"status-published",icon:e.jsx("svg",{className:"size-3",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"})})},scheduled:{label:"Scheduled",className:"status-scheduled",icon:e.jsxs("svg",{className:"size-3",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[e.jsx("circle",{cx:"12",cy:"12",r:"10"}),e.jsx("path",{strokeLinecap:"round",d:"M12 6v6l4 2"})]})},archived:{label:"Archived",className:"status-archived",icon:e.jsx("svg",{className:"size-3",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 8h14M5 8a2 2 0 110-4h14a2 2 0 110 4M5 8v10a2 2 0 002 2h10a2 2 0 002-2V8m-9 4h4"})})}},n={gray:"bg-muted text-muted-foreground",yellow:"bg-diff-modified-bg text-diff-modified-foreground",blue:"bg-info-bg text-info-foreground",green:"bg-diff-added-bg text-diff-added-foreground",red:"bg-diff-removed-bg text-diff-removed-foreground",purple:"bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-400",orange:"bg-diff-modified-bg text-diff-modified-foreground"};function l(){return e.jsx("svg",{className:"size-3",fill:"currentColor",viewBox:"0 0 8 8",children:e.jsx("circle",{cx:"4",cy:"4",r:"3"})})}function x({status:d,customConfig:s,className:o,...i}){if(s)return e.jsxs(a,{variant:"secondary",className:t("gap-1.5 px-2 py-0.5 text-xs font-medium",n[s.color],o),...i,children:[l(),s.displayName]});const r=c[d];return r?e.jsxs(a,{variant:"secondary",className:t("gap-1.5 px-2 py-0.5 text-xs font-medium",r.className,o),...i,children:[r.icon,r.label]}):e.jsxs(a,{variant:"secondary",className:t("gap-1.5 px-2 py-0.5 text-xs font-medium",n.gray,o),...i,children:[l(),d]})}export{x as C};
@@ -1 +1 @@
1
- import{j as r,h as t}from"./main-BapBJgQD.js";const l={base:"surface-base",elevated:"surface-elevated",floating:"surface-floating"},m={none:"",sm:"p-3",md:"p-4",lg:"p-6"},u={none:"rounded-none",sm:"rounded-sm",md:"rounded-md",lg:"rounded-lg"};function f({elevation:e="base",padding:s="md",rounded:n="lg",className:a,children:d,...o}){return r.jsx("div",{className:t(l[e],m[s],u[n],a),...o,children:d})}export{f as C};
1
+ import{j as r,h as t}from"./main-BrFRroF1.js";const l={base:"surface-base",elevated:"surface-elevated",floating:"surface-floating"},m={none:"",sm:"p-3",md:"p-4",lg:"p-6"},u={none:"rounded-none",sm:"rounded-sm",md:"rounded-md",lg:"rounded-lg"};function f({elevation:e="base",padding:s="md",rounded:n="lg",className:a,children:d,...o}){return r.jsx("div",{className:t(l[e],m[s],u[n],a),...o,children:d})}export{f as C};
@@ -1 +1 @@
1
- import{j as e,I as i,h as o}from"./main-BapBJgQD.js";import{S as p}from"./search-CSyHHglh.js";function u({left:t,right:s,search:a,filters:r,actions:l,className:n,children:x,...m}){return e.jsxs("div",{className:o("flex flex-wrap items-center justify-between gap-3 pb-4",n),...m,children:[e.jsxs("div",{className:"flex flex-1 flex-wrap items-center gap-2",children:[a&&e.jsxs("div",{className:"relative w-full max-w-xs",children:[e.jsx(p,{className:"absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground"}),e.jsx(i,{type:"search",placeholder:a.placeholder??"Search...",value:a.value,onChange:c=>a.onChange(c.target.value),className:"pl-9"})]}),r,t,x]}),(s||l)&&e.jsx("div",{className:"flex items-center gap-2",children:s??l})]})}export{u as C};
1
+ import{j as e,I as i,h as o}from"./main-BrFRroF1.js";import{S as p}from"./search-BsuImjd-.js";function u({left:t,right:s,search:a,filters:r,actions:l,className:n,children:x,...m}){return e.jsxs("div",{className:o("flex flex-wrap items-center justify-between gap-3 pb-4",n),...m,children:[e.jsxs("div",{className:"flex flex-1 flex-wrap items-center gap-2",children:[a&&e.jsxs("div",{className:"relative w-full max-w-xs",children:[e.jsx(p,{className:"absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground"}),e.jsx(i,{type:"search",placeholder:a.placeholder??"Search...",value:a.value,onChange:c=>a.onChange(c.target.value),className:"pl-9"})]}),r,t,x]}),(s||l)&&e.jsx("div",{className:"flex items-center gap-2",children:s??l})]})}export{u as C};