convex-cms 0.0.9-alpha.8 → 0.0.10

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 (136) hide show
  1. package/README.md +27 -0
  2. package/admin/src/components/Header.tsx +1 -1
  3. package/admin/src/components/RouteGuard.tsx +1 -1
  4. package/admin/src/components/UploadDropzone.tsx +1 -1
  5. package/admin/src/components/cmsds/CmsFilterBar.tsx +74 -0
  6. package/admin/src/components/cmsds/CmsInput.tsx +24 -0
  7. package/admin/src/components/cmsds/CmsPagination.tsx +79 -0
  8. package/admin/src/components/cmsds/CmsSelect.tsx +59 -0
  9. package/admin/src/components/cmsds/CmsStatCard.tsx +79 -0
  10. package/admin/src/components/cmsds/CmsStatusBadge.tsx +1 -1
  11. package/admin/src/components/cmsds/index.ts +5 -0
  12. package/admin/src/components/ui/sidebar.tsx +1 -1
  13. package/admin/src/contexts/AuthContext.tsx +1 -1
  14. package/admin/src/contexts/ThemeContext.tsx +85 -17
  15. package/admin/src/embed/components/EmbedHeader.tsx +11 -9
  16. package/admin/src/embed/components/EmbedLayout.tsx +2 -6
  17. package/admin/src/embed/components/EmbedSidebar.tsx +16 -13
  18. package/admin/src/embed/contexts/ApiContext.tsx +1 -1
  19. package/admin/src/embed/index.tsx +3 -2
  20. package/admin/src/embed/types.ts +6 -0
  21. package/admin/src/hooks/usePermissions.ts +1 -1
  22. package/admin/src/index.css +432 -0
  23. package/admin/src/lib/cmsExports.ts +6 -0
  24. package/admin/src/pages/ContentPage.tsx +116 -172
  25. package/admin/src/pages/ContentTypeEntriesPage.tsx +120 -194
  26. package/admin/src/pages/ContentTypesPage.tsx +136 -139
  27. package/admin/src/pages/DashboardPage.tsx +15 -55
  28. package/admin/src/pages/MediaPage.tsx +31 -57
  29. package/admin/src/pages/SettingsPage.tsx +5 -1
  30. package/admin/src/pages/TrashPage.tsx +115 -170
  31. package/admin/src/routes/__root.tsx +1 -1
  32. package/admin-dist/nitro.json +1 -1
  33. package/admin-dist/public/assets/{CmsEmptyState-DTlpzjOI.js → CmsEmptyState-BKeL4DBB.js} +1 -1
  34. package/admin-dist/public/assets/CmsFilterBar-CEpMHd_c.js +1 -0
  35. package/admin-dist/public/assets/{CmsPageHeader-0REGRH4X.js → CmsPageHeader-CIEkTbyH.js} +1 -1
  36. package/admin-dist/public/assets/{CmsStatusBadge-D_n8u8xa.js → CmsStatusBadge-BFMOsfMW.js} +1 -1
  37. package/admin-dist/public/assets/{CmsSurface-BHmvNai4.js → CmsSurface-kqqaFKUI.js} +1 -1
  38. package/admin-dist/public/assets/CmsTable-Db53Exq0.js +1 -0
  39. package/admin-dist/public/assets/ContentEntryEditor-Ct7cHayy.js +4 -0
  40. package/admin-dist/public/assets/TaxonomyFilter-Bm1DI1A7.js +1 -0
  41. package/admin-dist/public/assets/_contentTypeId-BekeCblX.js +1 -0
  42. package/admin-dist/public/assets/{_entryId-jPXz4z9T.js → _entryId-CoZDE0l0.js} +1 -1
  43. package/admin-dist/public/assets/{alert-CG97cMfC.js → alert-CpLdsTGU.js} +1 -1
  44. package/admin-dist/public/assets/{badge-C6qt24oj.js → badge-BQAotc5B.js} +1 -1
  45. package/admin-dist/public/assets/{circle-check-big-PltpxuB1.js → circle-check-big-BF3Y5nES.js} +1 -1
  46. package/admin-dist/public/assets/{command-CJ8i86fd.js → command-lEq6f_Ee.js} +1 -1
  47. package/admin-dist/public/assets/content-DH6k0dN6.js +1 -0
  48. package/admin-dist/public/assets/content-types-DHr9tc2V.js +1 -0
  49. package/admin-dist/public/assets/index-Cf0lbl0G.js +1 -0
  50. package/admin-dist/public/assets/index-D-4wFfgU.css +1 -0
  51. package/admin-dist/public/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
  52. package/admin-dist/public/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
  53. package/admin-dist/public/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
  54. package/admin-dist/public/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
  55. package/admin-dist/public/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
  56. package/admin-dist/public/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
  57. package/admin-dist/public/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
  58. package/admin-dist/public/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2 +0 -0
  59. package/admin-dist/public/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff +0 -0
  60. package/admin-dist/public/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff +0 -0
  61. package/admin-dist/public/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2 +0 -0
  62. package/admin-dist/public/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff +0 -0
  63. package/admin-dist/public/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
  64. package/admin-dist/public/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2 +0 -0
  65. package/admin-dist/public/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff +0 -0
  66. package/admin-dist/public/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff +0 -0
  67. package/admin-dist/public/assets/main-B-6700eG.js +137 -0
  68. package/admin-dist/public/assets/media-DY5zD52L.js +1 -0
  69. package/admin-dist/public/assets/{new._contentTypeId-qsvo01mH.js → new._contentTypeId-Dq_NqTQV.js} +1 -1
  70. package/admin-dist/public/assets/{pencil-gAL0R34f.js → pencil-CI_KfxSx.js} +1 -1
  71. package/admin-dist/public/assets/refresh-cw-BrXg9a2r.js +1 -0
  72. package/admin-dist/public/assets/rotate-ccw-PwzxdPxd.js +1 -0
  73. package/admin-dist/public/assets/{scroll-area-CJBhf9pf.js → scroll-area-DX_nZYp8.js} +1 -1
  74. package/admin-dist/public/assets/{search-WXp6KxDJ.js → search-DlwBH4C5.js} +1 -1
  75. package/admin-dist/public/assets/settings-2mx3_ORG.js +1 -0
  76. package/admin-dist/public/assets/{switch-Ck9ecqEX.js → switch-CjPi4DKH.js} +1 -1
  77. package/admin-dist/public/assets/{tabs-vQYu8rjC.js → tabs-B5X37GEM.js} +1 -1
  78. package/admin-dist/public/assets/tanstack-adapter-KSm-nO5L.js +1 -0
  79. package/admin-dist/public/assets/{taxonomies-DvILUNvr.js → taxonomies-CHjJKNlR.js} +1 -1
  80. package/admin-dist/public/assets/trash-Cle-tcqq.js +1 -0
  81. package/admin-dist/public/assets/{useBreadcrumbLabel-tlSh7dtO.js → useBreadcrumbLabel-yZQG_N_3.js} +1 -1
  82. package/admin-dist/public/assets/{usePermissions-BTGdTOJS.js → usePermissions-D6vsoaJf.js} +1 -1
  83. package/admin-dist/server/_libs/convex-helpers.mjs +1077 -2
  84. package/admin-dist/server/_libs/convex.mjs +222 -13
  85. package/admin-dist/server/_libs/lucide-react.mjs +57 -51
  86. package/admin-dist/server/_ssr/{CmsEmptyState-CB6e53i5.mjs → CmsEmptyState-DzzuQG0S.mjs} +1 -1
  87. package/admin-dist/server/_ssr/CmsFilterBar-C5XADS12.mjs +81 -0
  88. package/admin-dist/server/_ssr/{CmsPageHeader-COUHuECp.mjs → CmsPageHeader-DZ6h7smh.mjs} +1 -1
  89. package/admin-dist/server/_ssr/{CmsStatusBadge-kMTL6koE.mjs → CmsStatusBadge-D-YFSAa1.mjs} +3 -3
  90. package/admin-dist/server/_ssr/{CmsSurface-D1HDYjRg.mjs → CmsSurface-Cv51NBLZ.mjs} +1 -1
  91. package/admin-dist/server/_ssr/CmsTable-DG88C5nO.mjs +189 -0
  92. package/admin-dist/server/_ssr/{ContentEntryEditor-Bq8FR_uK.mjs → ContentEntryEditor-CRjwXB17.mjs} +10 -10
  93. package/admin-dist/server/_ssr/{TaxonomyFilter-bm_p4ADg.mjs → TaxonomyFilter-xGwcgtjr.mjs} +3 -3
  94. package/admin-dist/server/_ssr/{_contentTypeId-B7obLmi_.mjs → _contentTypeId-DRCfeKkm.mjs} +53 -12
  95. package/admin-dist/server/_ssr/{_entryId-B4zhQqFg.mjs → _entryId-DULm2TDy.mjs} +11 -11
  96. package/admin-dist/server/_ssr/_tanstack-start-manifest_v-iX3K33p1.mjs +4 -0
  97. package/admin-dist/server/_ssr/{badge-NOEC9bkk.mjs → badge-CbjIvhb6.mjs} +1 -1
  98. package/admin-dist/server/_ssr/{command-h4-OYNBo.mjs → command-xB2uiYps.mjs} +2 -2
  99. package/admin-dist/server/_ssr/{content-CShtLuhK.mjs → content-BfLBaJCZ.mjs} +108 -138
  100. package/admin-dist/server/_ssr/{content-types-PeyRyfbc.mjs → content-types-DZbF6O2q.mjs} +130 -119
  101. package/admin-dist/server/_ssr/{index-CplFXpGg.mjs → index-Cfe8sZv5.mjs} +65 -39
  102. package/admin-dist/server/_ssr/index.mjs +2 -2
  103. package/admin-dist/server/_ssr/{media-QAkNdX54.mjs → media-Bds2AnPC.mjs} +36 -56
  104. package/admin-dist/server/_ssr/{new._contentTypeId-DEJyMphJ.mjs → new._contentTypeId-DGvz_tlW.mjs} +10 -10
  105. package/admin-dist/server/_ssr/{router-CQXMuGMF.mjs → router-DxF7GBcO.mjs} +8804 -4995
  106. package/admin-dist/server/_ssr/{scroll-area-B7zoNyWB.mjs → scroll-area-DLDlXI07.mjs} +1 -1
  107. package/admin-dist/server/_ssr/{settings-CNaqVa4D.mjs → settings-BbaiS6z9.mjs} +13 -10
  108. package/admin-dist/server/_ssr/{switch-BKZhvryc.mjs → switch-Bl89Pfxu.mjs} +1 -1
  109. package/admin-dist/server/_ssr/{tabs-DtIIQxiD.mjs → tabs-QkbR0iir.mjs} +3 -3
  110. package/admin-dist/server/_ssr/{tanstack-adapter-CLavdbUY.mjs → tanstack-adapter-CKknPtcU.mjs} +19 -1
  111. package/admin-dist/server/_ssr/{taxonomies-vIZYICzr.mjs → taxonomies-S_Ontd0z.mjs} +9 -9
  112. package/admin-dist/server/_ssr/{trash-7yGR4-dF.mjs → trash-BzAIsbbN.mjs} +109 -132
  113. package/admin-dist/server/_ssr/{useBreadcrumbLabel-DR5FaAMf.mjs → useBreadcrumbLabel-BjiR1fM_.mjs} +1 -1
  114. package/admin-dist/server/_ssr/{usePermissions-DKkpETj_.mjs → usePermissions-CDHN95Nz.mjs} +1 -1
  115. package/admin-dist/server/index.mjs +284 -165
  116. package/package.json +3 -2
  117. package/admin/src/styles/globals.css +0 -104
  118. package/admin/src/styles/tailwind-config.css +0 -99
  119. package/admin/src/styles/theme.css +0 -261
  120. package/admin-dist/public/assets/CmsToolbar-CY6GV2L8.js +0 -1
  121. package/admin-dist/public/assets/ContentEntryEditor-CRgcRkk5.js +0 -4
  122. package/admin-dist/public/assets/TaxonomyFilter-Ohv5Jg9c.js +0 -1
  123. package/admin-dist/public/assets/_contentTypeId-C_vJq22X.js +0 -1
  124. package/admin-dist/public/assets/content-pKaIL2ru.js +0 -1
  125. package/admin-dist/public/assets/content-types-Bl_8I1Re.js +0 -1
  126. package/admin-dist/public/assets/globals-CoCRjt0K.css +0 -1
  127. package/admin-dist/public/assets/index-CtHq_P5q.js +0 -1
  128. package/admin-dist/public/assets/main-CA-4LyFT.js +0 -107
  129. package/admin-dist/public/assets/media-Bl1tBbJQ.js +0 -1
  130. package/admin-dist/public/assets/refresh-cw-sdVUGJNs.js +0 -1
  131. package/admin-dist/public/assets/rotate-ccw-6OcXCcxb.js +0 -1
  132. package/admin-dist/public/assets/settings-D8crrFCn.js +0 -1
  133. package/admin-dist/public/assets/tanstack-adapter-BRt2CUCw.js +0 -1
  134. package/admin-dist/public/assets/trash-YyYaC3L9.js +0 -1
  135. package/admin-dist/server/_ssr/CmsToolbar-NB014hsd.mjs +0 -48
  136. package/admin-dist/server/_ssr/_tanstack-start-manifest_v-DndoqCo7.mjs +0 -4
@@ -27,26 +27,26 @@ function toByteArray(b64) {
27
27
  var lens = getLens(b64);
28
28
  var validLen = lens[0];
29
29
  var placeHoldersLen = lens[1];
30
- var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));
30
+ var arr2 = new Arr(_byteLength(b64, validLen, placeHoldersLen));
31
31
  var curByte = 0;
32
32
  var len = placeHoldersLen > 0 ? validLen - 4 : validLen;
33
33
  var i;
34
34
  for (i = 0; i < len; i += 4) {
35
35
  tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)];
36
- arr[curByte++] = tmp >> 16 & 255;
37
- arr[curByte++] = tmp >> 8 & 255;
38
- arr[curByte++] = tmp & 255;
36
+ arr2[curByte++] = tmp >> 16 & 255;
37
+ arr2[curByte++] = tmp >> 8 & 255;
38
+ arr2[curByte++] = tmp & 255;
39
39
  }
40
40
  if (placeHoldersLen === 2) {
41
41
  tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;
42
- arr[curByte++] = tmp & 255;
42
+ arr2[curByte++] = tmp & 255;
43
43
  }
44
44
  if (placeHoldersLen === 1) {
45
45
  tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;
46
- arr[curByte++] = tmp >> 8 & 255;
47
- arr[curByte++] = tmp & 255;
46
+ arr2[curByte++] = tmp >> 8 & 255;
47
+ arr2[curByte++] = tmp & 255;
48
48
  }
49
- return arr;
49
+ return arr2;
50
50
  }
51
51
  function tripletToBase64(num) {
52
52
  return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];
@@ -971,6 +971,199 @@ class ConvexError extends (_b = Error, _a = IDENTIFYING_FIELD, _b) {
971
971
  this.data = data;
972
972
  }
973
973
  }
974
+ function compareUTF8(a, b) {
975
+ const aLength = a.length;
976
+ const bLength = b.length;
977
+ const length = Math.min(aLength, bLength);
978
+ for (let i = 0; i < length; ) {
979
+ const aCodePoint = a.codePointAt(i);
980
+ const bCodePoint = b.codePointAt(i);
981
+ if (aCodePoint !== bCodePoint) {
982
+ if (aCodePoint < 128 && bCodePoint < 128) {
983
+ return aCodePoint - bCodePoint;
984
+ }
985
+ const aLength2 = utf8Bytes(aCodePoint, aBytes);
986
+ const bLength2 = utf8Bytes(bCodePoint, bBytes);
987
+ return compareArrays(aBytes, aLength2, bBytes, bLength2);
988
+ }
989
+ i += utf16LengthForCodePoint(aCodePoint);
990
+ }
991
+ return aLength - bLength;
992
+ }
993
+ function compareArrays(a, aLength, b, bLength) {
994
+ const length = Math.min(aLength, bLength);
995
+ for (let i = 0; i < length; i++) {
996
+ const aValue = a[i];
997
+ const bValue = b[i];
998
+ if (aValue !== bValue) {
999
+ return aValue - bValue;
1000
+ }
1001
+ }
1002
+ return aLength - bLength;
1003
+ }
1004
+ function utf16LengthForCodePoint(aCodePoint) {
1005
+ return aCodePoint > 65535 ? 2 : 1;
1006
+ }
1007
+ const arr = () => Array.from({ length: 4 }, () => 0);
1008
+ const aBytes = arr();
1009
+ const bBytes = arr();
1010
+ function utf8Bytes(codePoint, bytes) {
1011
+ if (codePoint < 128) {
1012
+ bytes[0] = codePoint;
1013
+ return 1;
1014
+ }
1015
+ let count;
1016
+ let offset;
1017
+ if (codePoint <= 2047) {
1018
+ count = 1;
1019
+ offset = 192;
1020
+ } else if (codePoint <= 65535) {
1021
+ count = 2;
1022
+ offset = 224;
1023
+ } else if (codePoint <= 1114111) {
1024
+ count = 3;
1025
+ offset = 240;
1026
+ } else {
1027
+ throw new Error("Invalid code point");
1028
+ }
1029
+ bytes[0] = (codePoint >> 6 * count) + offset;
1030
+ let i = 1;
1031
+ for (; count > 0; count--) {
1032
+ const temp = codePoint >> 6 * (count - 1);
1033
+ bytes[i++] = 128 | temp & 63;
1034
+ }
1035
+ return i;
1036
+ }
1037
+ function compareValues(k1, k2) {
1038
+ return compareAsTuples(makeComparable(k1), makeComparable(k2));
1039
+ }
1040
+ function compareAsTuples(a, b) {
1041
+ if (a[0] === b[0]) {
1042
+ return compareSameTypeValues(a[1], b[1]);
1043
+ } else if (a[0] < b[0]) {
1044
+ return -1;
1045
+ }
1046
+ return 1;
1047
+ }
1048
+ function compareSameTypeValues(v1, v2) {
1049
+ if (v1 === void 0 || v1 === null) {
1050
+ return 0;
1051
+ }
1052
+ if (typeof v1 === "number") {
1053
+ if (typeof v2 !== "number") {
1054
+ throw new Error(`Unexpected type ${v2}`);
1055
+ }
1056
+ return compareNumbers(v1, v2);
1057
+ }
1058
+ if (typeof v1 === "string") {
1059
+ if (typeof v2 !== "string") {
1060
+ throw new Error(`Unexpected type ${v2}`);
1061
+ }
1062
+ return compareUTF8(v1, v2);
1063
+ }
1064
+ if (typeof v1 === "bigint" || typeof v1 === "boolean" || typeof v1 === "string") {
1065
+ return v1 < v2 ? -1 : v1 === v2 ? 0 : 1;
1066
+ }
1067
+ if (!Array.isArray(v1) || !Array.isArray(v2)) {
1068
+ throw new Error(`Unexpected type ${v1}`);
1069
+ }
1070
+ for (let i = 0; i < v1.length && i < v2.length; i++) {
1071
+ const cmp = compareAsTuples(v1[i], v2[i]);
1072
+ if (cmp !== 0) {
1073
+ return cmp;
1074
+ }
1075
+ }
1076
+ if (v1.length < v2.length) {
1077
+ return -1;
1078
+ }
1079
+ if (v1.length > v2.length) {
1080
+ return 1;
1081
+ }
1082
+ return 0;
1083
+ }
1084
+ function compareNumbers(v1, v2) {
1085
+ if (isNaN(v1) || isNaN(v2)) {
1086
+ const buffer1 = new ArrayBuffer(8);
1087
+ const buffer2 = new ArrayBuffer(8);
1088
+ new DataView(buffer1).setFloat64(
1089
+ 0,
1090
+ v1,
1091
+ /* little-endian */
1092
+ true
1093
+ );
1094
+ new DataView(buffer2).setFloat64(
1095
+ 0,
1096
+ v2,
1097
+ /* little-endian */
1098
+ true
1099
+ );
1100
+ const v1Bits = BigInt(
1101
+ new DataView(buffer1).getBigInt64(
1102
+ 0,
1103
+ /* little-endian */
1104
+ true
1105
+ )
1106
+ );
1107
+ const v2Bits = BigInt(
1108
+ new DataView(buffer2).getBigInt64(
1109
+ 0,
1110
+ /* little-endian */
1111
+ true
1112
+ )
1113
+ );
1114
+ const v1Sign = (v1Bits & 0x8000000000000000n) !== 0n;
1115
+ const v2Sign = (v2Bits & 0x8000000000000000n) !== 0n;
1116
+ if (isNaN(v1) !== isNaN(v2)) {
1117
+ if (isNaN(v1)) {
1118
+ return v1Sign ? -1 : 1;
1119
+ }
1120
+ return v2Sign ? 1 : -1;
1121
+ }
1122
+ if (v1Sign !== v2Sign) {
1123
+ return v1Sign ? -1 : 1;
1124
+ }
1125
+ return v1Bits < v2Bits ? -1 : v1Bits === v2Bits ? 0 : 1;
1126
+ }
1127
+ if (Object.is(v1, v2)) {
1128
+ return 0;
1129
+ }
1130
+ if (Object.is(v1, -0)) {
1131
+ return Object.is(v2, 0) ? -1 : -Math.sign(v2);
1132
+ }
1133
+ if (Object.is(v2, -0)) {
1134
+ return Object.is(v1, 0) ? 1 : Math.sign(v1);
1135
+ }
1136
+ return v1 < v2 ? -1 : 1;
1137
+ }
1138
+ function makeComparable(v2) {
1139
+ if (v2 === void 0) {
1140
+ return [0, void 0];
1141
+ }
1142
+ if (v2 === null) {
1143
+ return [1, null];
1144
+ }
1145
+ if (typeof v2 === "bigint") {
1146
+ return [2, v2];
1147
+ }
1148
+ if (typeof v2 === "number") {
1149
+ return [3, v2];
1150
+ }
1151
+ if (typeof v2 === "boolean") {
1152
+ return [4, v2];
1153
+ }
1154
+ if (typeof v2 === "string") {
1155
+ return [5, v2];
1156
+ }
1157
+ if (v2 instanceof ArrayBuffer) {
1158
+ return [6, Array.from(new Uint8Array(v2)).map(makeComparable)];
1159
+ }
1160
+ if (Array.isArray(v2)) {
1161
+ return [7, v2.map(makeComparable)];
1162
+ }
1163
+ const keys = Object.keys(v2).sort();
1164
+ const pojo = keys.map((k) => [k, v2[k]]);
1165
+ return [8, pojo.map(makeComparable)];
1166
+ }
974
1167
  const version = "1.31.6";
975
1168
  var __defProp$j = Object.defineProperty;
976
1169
  var __defNormalProp$j = (obj, key, value) => key in obj ? __defProp$j(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
@@ -5782,6 +5975,18 @@ const queryGeneric = ((functionDefinition) => {
5782
5975
  func._handler = handler;
5783
5976
  return func;
5784
5977
  });
5978
+ const internalQueryGeneric = ((functionDefinition) => {
5979
+ const handler = typeof functionDefinition === "function" ? functionDefinition : functionDefinition.handler;
5980
+ const func = dontCallDirectly("internalQuery", handler);
5981
+ assertNotBrowser();
5982
+ func.isQuery = true;
5983
+ func.isInternal = true;
5984
+ func.invokeQuery = (argsStr) => invokeQuery(handler, argsStr);
5985
+ func.exportArgs = exportArgs(functionDefinition);
5986
+ func.exportReturns = exportReturns(functionDefinition);
5987
+ func._handler = handler;
5988
+ return func;
5989
+ });
5785
5990
  async function runUdf(udfType, f, args) {
5786
5991
  const queryArgs = parseArgs(args);
5787
5992
  const syscallArgs = {
@@ -6015,13 +6220,17 @@ defineSchema({
6015
6220
  });
6016
6221
  export {
6017
6222
  ConvexReactClient as C,
6018
- defineTable as a,
6019
- ConvexProvider as b,
6020
- componentsGeneric as c,
6223
+ compareValues as a,
6224
+ defineTable as b,
6225
+ convexToJson as c,
6021
6226
  defineSchema as d,
6022
- anyApi as e,
6023
- useMutation as f,
6227
+ componentsGeneric as e,
6228
+ ConvexProvider as f,
6229
+ anyApi as g,
6230
+ internalQueryGeneric as h,
6024
6231
  internalMutationGeneric as i,
6232
+ jsonToConvex as j,
6233
+ useMutation as k,
6025
6234
  mutationGeneric as m,
6026
6235
  paginationOptsValidator as p,
6027
6236
  queryGeneric as q,
@@ -75,25 +75,25 @@ const createLucideIcon = (iconName, iconNode) => {
75
75
  Component.displayName = toPascalCase(iconName);
76
76
  return Component;
77
77
  };
78
- const __iconNode$1n = [
78
+ const __iconNode$1o = [
79
79
  ["rect", { width: "20", height: "5", x: "2", y: "3", rx: "1", key: "1wp1u1" }],
80
80
  ["path", { d: "M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8", key: "1s80jp" }],
81
81
  ["path", { d: "M10 12h4", key: "a56b0p" }]
82
82
  ];
83
- const Archive = createLucideIcon("archive", __iconNode$1n);
84
- const __iconNode$1m = [
83
+ const Archive = createLucideIcon("archive", __iconNode$1o);
84
+ const __iconNode$1n = [
85
85
  ["path", { d: "M5 12h14", key: "1ays0h" }],
86
86
  ["path", { d: "m12 5 7 7-7 7", key: "xquz4c" }]
87
87
  ];
88
- const ArrowRight = createLucideIcon("arrow-right", __iconNode$1m);
89
- const __iconNode$1l = [
88
+ const ArrowRight = createLucideIcon("arrow-right", __iconNode$1n);
89
+ const __iconNode$1m = [
90
90
  ["path", { d: "m21 16-4 4-4-4", key: "f6ql7i" }],
91
91
  ["path", { d: "M17 20V4", key: "1ejh1v" }],
92
92
  ["path", { d: "m3 8 4-4 4 4", key: "11wl7u" }],
93
93
  ["path", { d: "M7 4v16", key: "1glfcx" }]
94
94
  ];
95
- const ArrowUpDown = createLucideIcon("arrow-up-down", __iconNode$1l);
96
- const __iconNode$1k = [
95
+ const ArrowUpDown = createLucideIcon("arrow-up-down", __iconNode$1m);
96
+ const __iconNode$1l = [
97
97
  ["path", { d: "M10.268 21a2 2 0 0 0 3.464 0", key: "vwvbt9" }],
98
98
  [
99
99
  "path",
@@ -103,15 +103,15 @@ const __iconNode$1k = [
103
103
  }
104
104
  ]
105
105
  ];
106
- const Bell = createLucideIcon("bell", __iconNode$1k);
107
- const __iconNode$1j = [
106
+ const Bell = createLucideIcon("bell", __iconNode$1l);
107
+ const __iconNode$1k = [
108
108
  [
109
109
  "path",
110
110
  { d: "M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8", key: "mg9rjx" }
111
111
  ]
112
112
  ];
113
- const Bold = createLucideIcon("bold", __iconNode$1j);
114
- const __iconNode$1i = [
113
+ const Bold = createLucideIcon("bold", __iconNode$1k);
114
+ const __iconNode$1j = [
115
115
  [
116
116
  "path",
117
117
  {
@@ -120,8 +120,8 @@ const __iconNode$1i = [
120
120
  }
121
121
  ]
122
122
  ];
123
- const Book = createLucideIcon("book", __iconNode$1i);
124
- const __iconNode$1h = [
123
+ const Book = createLucideIcon("book", __iconNode$1j);
124
+ const __iconNode$1i = [
125
125
  [
126
126
  "path",
127
127
  {
@@ -130,8 +130,8 @@ const __iconNode$1h = [
130
130
  }
131
131
  ]
132
132
  ];
133
- const Bookmark = createLucideIcon("bookmark", __iconNode$1h);
134
- const __iconNode$1g = [
133
+ const Bookmark = createLucideIcon("bookmark", __iconNode$1i);
134
+ const __iconNode$1h = [
135
135
  [
136
136
  "path",
137
137
  { d: "M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1", key: "ezmyqa" }
@@ -144,24 +144,29 @@ const __iconNode$1g = [
144
144
  }
145
145
  ]
146
146
  ];
147
- const Braces = createLucideIcon("braces", __iconNode$1g);
148
- const __iconNode$1f = [
147
+ const Braces = createLucideIcon("braces", __iconNode$1h);
148
+ const __iconNode$1g = [
149
149
  ["path", { d: "M8 2v4", key: "1cmpym" }],
150
150
  ["path", { d: "M16 2v4", key: "4m81vk" }],
151
151
  ["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
152
152
  ["path", { d: "M3 10h18", key: "8toen8" }]
153
153
  ];
154
- const Calendar = createLucideIcon("calendar", __iconNode$1f);
155
- const __iconNode$1e = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
156
- const Check = createLucideIcon("check", __iconNode$1e);
157
- const __iconNode$1d = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
158
- const ChevronDown = createLucideIcon("chevron-down", __iconNode$1d);
159
- const __iconNode$1c = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
160
- const ChevronLeft = createLucideIcon("chevron-left", __iconNode$1c);
161
- const __iconNode$1b = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
162
- const ChevronRight = createLucideIcon("chevron-right", __iconNode$1b);
163
- const __iconNode$1a = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
164
- const ChevronUp = createLucideIcon("chevron-up", __iconNode$1a);
154
+ const Calendar = createLucideIcon("calendar", __iconNode$1g);
155
+ const __iconNode$1f = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
156
+ const Check = createLucideIcon("check", __iconNode$1f);
157
+ const __iconNode$1e = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
158
+ const ChevronDown = createLucideIcon("chevron-down", __iconNode$1e);
159
+ const __iconNode$1d = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
160
+ const ChevronLeft = createLucideIcon("chevron-left", __iconNode$1d);
161
+ const __iconNode$1c = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
162
+ const ChevronRight = createLucideIcon("chevron-right", __iconNode$1c);
163
+ const __iconNode$1b = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
164
+ const ChevronUp = createLucideIcon("chevron-up", __iconNode$1b);
165
+ const __iconNode$1a = [
166
+ ["path", { d: "m7 15 5 5 5-5", key: "1hf1tw" }],
167
+ ["path", { d: "m7 9 5-5 5 5", key: "sgt6xg" }]
168
+ ];
169
+ const ChevronsUpDown = createLucideIcon("chevrons-up-down", __iconNode$1a);
165
170
  const __iconNode$19 = [
166
171
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
167
172
  ["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
@@ -810,17 +815,17 @@ export {
810
815
  FileType as _,
811
816
  Layers as a,
812
817
  TriangleAlert as a0,
813
- Search as a1,
814
- RotateCcw as a2,
815
- Pencil as a3,
816
- FolderTree as a4,
817
- Info as a5,
818
- Sun as a6,
819
- Moon as a7,
820
- Monitor as a8,
821
- ChevronLeft as a9,
822
- FolderPlus as aa,
823
- Upload as ab,
818
+ RotateCcw as a1,
819
+ Pencil as a2,
820
+ FolderTree as a3,
821
+ Info as a4,
822
+ Sun as a5,
823
+ Moon as a6,
824
+ Monitor as a7,
825
+ ChevronLeft as a8,
826
+ FolderPlus as a9,
827
+ Upload as aa,
828
+ Search as ab,
824
829
  Ellipsis as ac,
825
830
  FolderInput as ad,
826
831
  EllipsisVertical as ae,
@@ -831,18 +836,19 @@ export {
831
836
  Copy as aj,
832
837
  Grid3x3 as ak,
833
838
  CircleCheckBig as al,
834
- TrendingUp as am,
835
- CircleX as an,
836
- RefreshCw as ao,
837
- ArrowUpDown as ap,
838
- History as aq,
839
- GitCompare as ar,
840
- ArrowRight as as,
841
- Bold as at,
842
- Italic as au,
843
- Heading2 as av,
844
- Quote as aw,
845
- Minus as ax,
839
+ ChevronsUpDown as am,
840
+ TrendingUp as an,
841
+ CircleX as ao,
842
+ RefreshCw as ap,
843
+ ArrowUpDown as aq,
844
+ History as ar,
845
+ GitCompare as as,
846
+ ArrowRight as at,
847
+ Bold as au,
848
+ Italic as av,
849
+ Heading2 as aw,
850
+ Quote as ax,
851
+ Minus as ay,
846
852
  Book as b,
847
853
  Code as c,
848
854
  ChevronDown as d,
@@ -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-CQXMuGMF.mjs";
2
+ import { C as CmsButton, e as cn } from "./router-DxF7GBcO.mjs";
3
3
  function CmsEmptyState({
4
4
  icon,
5
5
  title,
@@ -0,0 +1,81 @@
1
+ import { j as jsxRuntimeExports } from "../_chunks/_libs/react.mjs";
2
+ import { C as CmsInput } from "./tanstack-adapter-CKknPtcU.mjs";
3
+ import { e as cn, C as CmsButton, S as Select, g as SelectTrigger, h as SelectValue, i as SelectContent, j as SelectItem } from "./router-DxF7GBcO.mjs";
4
+ import { ab as Search, X } from "../_libs/lucide-react.mjs";
5
+ function CmsSelect({
6
+ value,
7
+ onValueChange,
8
+ options,
9
+ placeholder = "Select...",
10
+ disabled,
11
+ error,
12
+ className
13
+ }) {
14
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(Select, { value, onValueChange, disabled, children: [
15
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
16
+ SelectTrigger,
17
+ {
18
+ className: cn(
19
+ error && "border-destructive focus:ring-destructive",
20
+ className
21
+ ),
22
+ "aria-invalid": error,
23
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, { placeholder })
24
+ }
25
+ ),
26
+ /* @__PURE__ */ jsxRuntimeExports.jsx(SelectContent, { children: options.map((option) => /* @__PURE__ */ jsxRuntimeExports.jsx(
27
+ SelectItem,
28
+ {
29
+ value: option.value,
30
+ disabled: option.disabled,
31
+ children: option.label
32
+ },
33
+ option.value
34
+ )) })
35
+ ] });
36
+ }
37
+ function CmsFilterBar({
38
+ search,
39
+ filters,
40
+ actions,
41
+ onClearFilters,
42
+ hasActiveFilters,
43
+ className
44
+ }) {
45
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: cn("flex flex-wrap items-center gap-3 pb-4", className), children: [
46
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-1 flex-wrap items-center gap-2", children: [
47
+ search && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative w-full max-w-xs", children: [
48
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Search, { className: "absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground" }),
49
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
50
+ CmsInput,
51
+ {
52
+ type: "search",
53
+ placeholder: search.placeholder ?? "Search...",
54
+ value: search.value,
55
+ onChange: (e) => search.onChange(e.target.value),
56
+ className: cn("pl-9", search.className)
57
+ }
58
+ )
59
+ ] }),
60
+ filters?.map((filter) => /* @__PURE__ */ jsxRuntimeExports.jsx(
61
+ CmsSelect,
62
+ {
63
+ value: filter.value,
64
+ onValueChange: filter.onChange,
65
+ options: filter.options,
66
+ placeholder: filter.placeholder,
67
+ className: cn("w-[150px]", filter.className)
68
+ },
69
+ filter.key
70
+ )),
71
+ hasActiveFilters && onClearFilters && /* @__PURE__ */ jsxRuntimeExports.jsxs(CmsButton, { variant: "ghost", size: "sm", onClick: onClearFilters, children: [
72
+ /* @__PURE__ */ jsxRuntimeExports.jsx(X, { className: "mr-1 size-4" }),
73
+ "Clear"
74
+ ] })
75
+ ] }),
76
+ actions && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex items-center gap-2", children: actions })
77
+ ] });
78
+ }
79
+ export {
80
+ CmsFilterBar as C
81
+ };
@@ -1,5 +1,5 @@
1
1
  import { j as jsxRuntimeExports } from "../_chunks/_libs/react.mjs";
2
- import { f as cn } from "./router-CQXMuGMF.mjs";
2
+ import { e as cn } from "./router-DxF7GBcO.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-NOEC9bkk.mjs";
3
- import { f as cn } from "./router-CQXMuGMF.mjs";
2
+ import { B as Badge } from "./badge-CbjIvhb6.mjs";
3
+ import { e as cn } from "./router-DxF7GBcO.mjs";
4
4
  const statusConfig = {
5
5
  draft: {
6
6
  label: "Draft",
@@ -69,7 +69,7 @@ const colorToClassName = {
69
69
  blue: "bg-info-bg text-info-foreground",
70
70
  green: "bg-diff-added-bg text-diff-added-foreground",
71
71
  red: "bg-diff-removed-bg text-diff-removed-foreground",
72
- purple: "bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-400",
72
+ purple: "bg-purple-bg text-purple-foreground",
73
73
  orange: "bg-diff-modified-bg text-diff-modified-foreground"
74
74
  };
75
75
  function getDefaultIcon() {
@@ -1,5 +1,5 @@
1
1
  import { j as jsxRuntimeExports } from "../_chunks/_libs/react.mjs";
2
- import { f as cn } from "./router-CQXMuGMF.mjs";
2
+ import { e as cn } from "./router-DxF7GBcO.mjs";
3
3
  const elevationClasses = {
4
4
  base: "surface-base",
5
5
  elevated: "surface-elevated",