@riverbankcms/sdk 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/README.md +298 -2
  2. package/dist/cli/index.js +2409 -595
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/cli/init-docs/content/agents-section.md +11 -0
  5. package/dist/cli/init-docs/content/cli-reference.md +15 -1
  6. package/dist/cli/init-docs/content/workflow-add-block.md +7 -0
  7. package/dist/cli/init-docs/content/workflow-block-extensions.md +361 -0
  8. package/dist/cli/init-docs/content/workflow-cmsify-page.md +357 -0
  9. package/dist/cli/init-docs/content/workflow-content-types.md +328 -0
  10. package/dist/cli/init-docs/content/workflow-create-page.md +9 -0
  11. package/dist/cli/init-docs/content/workflow-custom-block.md +446 -0
  12. package/dist/client/client.d.mts +2 -2
  13. package/dist/client/client.d.ts +2 -2
  14. package/dist/client/client.js +386 -45
  15. package/dist/client/client.js.map +1 -1
  16. package/dist/client/client.mjs +386 -45
  17. package/dist/client/client.mjs.map +1 -1
  18. package/dist/client/hooks.d.mts +2 -2
  19. package/dist/client/hooks.d.ts +2 -2
  20. package/dist/client/hooks.js +40 -26
  21. package/dist/client/hooks.js.map +1 -1
  22. package/dist/client/hooks.mjs +40 -26
  23. package/dist/client/hooks.mjs.map +1 -1
  24. package/dist/client/rendering/client.js +210 -128
  25. package/dist/client/rendering/client.js.map +1 -1
  26. package/dist/client/rendering/client.mjs +202 -114
  27. package/dist/client/rendering/client.mjs.map +1 -1
  28. package/dist/client/usePage--LiGLbVz.d.mts +7195 -0
  29. package/dist/client/usePage-BwQJlxpe.d.mts +7218 -0
  30. package/dist/client/usePage-Ds-ow1-d.d.ts +7195 -0
  31. package/dist/client/usePage-Dsi39Exp.d.ts +6915 -0
  32. package/dist/client/usePage-Duc2GC-H.d.ts +7218 -0
  33. package/dist/client/usePage-DyzrgxqR.d.mts +7215 -0
  34. package/dist/client/usePage-Im82JRRe.d.mts +6915 -0
  35. package/dist/client/usePage-lTWkuVMZ.d.ts +7215 -0
  36. package/dist/server/{Layout-l2v4Qa6E.d.ts → Layout-BHGokJmV.d.ts} +1 -1
  37. package/dist/server/{Layout-D4J009eS.d.mts → Layout-CXkMcTR4.d.mts} +1 -1
  38. package/dist/server/chunk-274Y2CUE.js +341 -0
  39. package/dist/server/chunk-274Y2CUE.js.map +1 -0
  40. package/dist/server/{chunk-RVDS7VSP.js → chunk-2WL52ZOE.js} +8 -8
  41. package/dist/server/{chunk-RVDS7VSP.js.map → chunk-2WL52ZOE.js.map} +1 -1
  42. package/dist/server/{chunk-TT5JWA4X.js → chunk-5HGVBSWA.js} +9 -9
  43. package/dist/server/{chunk-TT5JWA4X.js.map → chunk-5HGVBSWA.js.map} +1 -1
  44. package/dist/server/{chunk-YXA4GAAQ.mjs → chunk-6VTKALLN.mjs} +2 -6
  45. package/dist/server/{chunk-YXA4GAAQ.mjs.map → chunk-6VTKALLN.mjs.map} +1 -1
  46. package/dist/server/chunk-7WJGJY3B.js +7 -0
  47. package/dist/server/chunk-7WJGJY3B.js.map +1 -0
  48. package/dist/server/chunk-AGAOKSPY.mjs +22 -0
  49. package/dist/server/chunk-AGAOKSPY.mjs.map +1 -0
  50. package/dist/server/{chunk-BYBJA6SP.mjs → chunk-BOYBN4KN.mjs} +37 -23
  51. package/dist/server/chunk-BOYBN4KN.mjs.map +1 -0
  52. package/dist/server/{chunk-LNOUXALA.mjs → chunk-CKZDJBMC.mjs} +126 -17
  53. package/dist/server/chunk-CKZDJBMC.mjs.map +1 -0
  54. package/dist/server/{chunk-RBJFXNDM.mjs → chunk-E4R5ILRE.mjs} +4 -4
  55. package/dist/server/{chunk-WM646WI3.js → chunk-EC2AA2IP.js} +275 -297
  56. package/dist/server/chunk-EC2AA2IP.js.map +1 -0
  57. package/dist/server/{chunk-2KCF2DNK.js → chunk-F4U4LC5D.js} +8 -8
  58. package/dist/server/{chunk-2KCF2DNK.js.map → chunk-F4U4LC5D.js.map} +1 -1
  59. package/dist/server/{chunk-ARNCLSQT.mjs → chunk-H44G72AB.mjs} +2 -2
  60. package/dist/server/{chunk-7BVRA5MY.js → chunk-JVLQDZTZ.js} +9 -9
  61. package/dist/server/{chunk-7BVRA5MY.js.map → chunk-JVLQDZTZ.js.map} +1 -1
  62. package/dist/server/{chunk-OSF34JTQ.mjs → chunk-KKUR3PDT.mjs} +4 -4
  63. package/dist/server/chunk-NTG7XP3E.js +264 -0
  64. package/dist/server/chunk-NTG7XP3E.js.map +1 -0
  65. package/dist/server/{chunk-P4K63SBZ.mjs → chunk-OSTUHBFE.mjs} +3 -3
  66. package/dist/server/{chunk-EIVISR62.js → chunk-P4O3WSAR.js} +2 -6
  67. package/dist/server/chunk-P4O3WSAR.js.map +1 -0
  68. package/dist/server/chunk-PAHSKNY5.mjs +264 -0
  69. package/dist/server/chunk-PAHSKNY5.mjs.map +1 -0
  70. package/dist/server/chunk-PSN6HXUD.js +22 -0
  71. package/dist/server/chunk-PSN6HXUD.js.map +1 -0
  72. package/dist/server/{chunk-65A5HAUZ.mjs → chunk-QS6ZTLLB.mjs} +243 -265
  73. package/dist/server/chunk-QS6ZTLLB.mjs.map +1 -0
  74. package/dist/server/{chunk-P3NNN73G.js → chunk-R6T3Z4W5.js} +3 -3
  75. package/dist/server/{chunk-P3NNN73G.js.map → chunk-R6T3Z4W5.js.map} +1 -1
  76. package/dist/server/{chunk-EIJ27EZQ.js → chunk-RIROJYPX.js} +10 -6
  77. package/dist/server/chunk-RIROJYPX.js.map +1 -0
  78. package/dist/server/chunk-SVEQVEA5.mjs +341 -0
  79. package/dist/server/chunk-SVEQVEA5.mjs.map +1 -0
  80. package/dist/server/{chunk-AEFWG657.mjs → chunk-TBN35TGI.mjs} +6 -6
  81. package/dist/server/{chunk-AEFWG657.mjs.map → chunk-TBN35TGI.mjs.map} +1 -1
  82. package/dist/server/{chunk-4YQJUL5W.mjs → chunk-TBX6CXBM.mjs} +8 -4
  83. package/dist/server/chunk-TBX6CXBM.mjs.map +1 -0
  84. package/dist/server/{chunk-YYO3RIFO.js → chunk-U2F4BWKW.js} +37 -23
  85. package/dist/server/chunk-U2F4BWKW.js.map +1 -0
  86. package/dist/server/{chunk-NFEGQTCC.mjs → chunk-WMJKH4XE.mjs} +8 -1
  87. package/dist/server/chunk-WWGVFOLS.mjs +7 -0
  88. package/dist/server/chunk-WWGVFOLS.mjs.map +1 -0
  89. package/dist/server/{chunk-T26N3P26.js → chunk-X4REO3S7.js} +4 -4
  90. package/dist/server/{chunk-T26N3P26.js.map → chunk-X4REO3S7.js.map} +1 -1
  91. package/dist/server/{chunk-C6FIJC7T.mjs → chunk-YUD7ONZG.mjs} +2 -2
  92. package/dist/server/{chunk-4CV4JOE5.js → chunk-Z6ZWNWWR.js} +9 -2
  93. package/dist/server/chunk-Z6ZWNWWR.js.map +1 -0
  94. package/dist/server/{chunk-7UPVCT3K.js → chunk-ZJXFRSTC.js} +270 -161
  95. package/dist/server/chunk-ZJXFRSTC.js.map +1 -0
  96. package/dist/server/{components-vtYEmmPF.d.mts → components-Bqn4xmR6.d.mts} +75 -6
  97. package/dist/server/{components-D2uCKCj7.d.ts → components-C7j9yzAt.d.ts} +75 -6
  98. package/dist/server/components.d.mts +6 -6
  99. package/dist/server/components.d.ts +6 -6
  100. package/dist/server/components.js +9 -7
  101. package/dist/server/components.js.map +1 -1
  102. package/dist/server/components.mjs +8 -6
  103. package/dist/server/config-validation.d.mts +3 -3
  104. package/dist/server/config-validation.d.ts +3 -3
  105. package/dist/server/config-validation.js +6 -6
  106. package/dist/server/config-validation.mjs +5 -5
  107. package/dist/server/config.d.mts +5 -5
  108. package/dist/server/config.d.ts +5 -5
  109. package/dist/server/config.js +6 -6
  110. package/dist/server/config.mjs +5 -5
  111. package/dist/server/data.d.mts +3 -3
  112. package/dist/server/data.d.ts +3 -3
  113. package/dist/server/data.js +4 -4
  114. package/dist/server/data.mjs +3 -3
  115. package/dist/server/env.js +1 -1
  116. package/dist/server/env.mjs +1 -1
  117. package/dist/server/{index-BxrAuL9K.d.ts → index-Bns_1a4N.d.ts} +2 -2
  118. package/dist/server/{index-CH_dvF6n.d.ts → index-CHp2kyp0.d.ts} +2 -2
  119. package/dist/server/{index-2qnY7VH_.d.mts → index-CPDT8kn9.d.mts} +2 -2
  120. package/dist/server/{index-DfWg1Qle.d.mts → index-Cm9nMPkf.d.mts} +2 -2
  121. package/dist/server/index.d.mts +195 -217
  122. package/dist/server/index.d.ts +195 -217
  123. package/dist/server/index.js +10 -289
  124. package/dist/server/index.js.map +1 -1
  125. package/dist/server/index.mjs +11 -290
  126. package/dist/server/index.mjs.map +1 -1
  127. package/dist/server/{loadContent-DECnsp4k.d.ts → loadContent-DD7J5_WO.d.ts} +26 -4
  128. package/dist/server/{loadContent-Du5kS8UM.d.mts → loadContent-DTEgYI-l.d.mts} +26 -4
  129. package/dist/server/{loadPage-VBorKlWv.d.mts → loadPage-B578Xg2W.d.mts} +3 -3
  130. package/dist/server/{loadPage-BZohBxxf.d.ts → loadPage-Dkiimbsg.d.ts} +3 -3
  131. package/dist/server/loadPage-IBX7FXGH.mjs +11 -0
  132. package/dist/server/loadPage-KG74OG4V.js +11 -0
  133. package/dist/server/{loadPage-AXNAERDS.js.map → loadPage-KG74OG4V.js.map} +1 -1
  134. package/dist/server/metadata.d.mts +5 -5
  135. package/dist/server/metadata.d.ts +5 -5
  136. package/dist/server/metadata.js +1 -1
  137. package/dist/server/metadata.mjs +1 -1
  138. package/dist/server/navigation.d.mts +4 -8
  139. package/dist/server/navigation.d.ts +4 -8
  140. package/dist/server/navigation.js +3 -7
  141. package/dist/server/navigation.js.map +1 -1
  142. package/dist/server/navigation.mjs +2 -6
  143. package/dist/server/next/revalidate.js +1 -1
  144. package/dist/server/next/revalidate.mjs +1 -1
  145. package/dist/server/next/tags.js +1 -1
  146. package/dist/server/next/tags.mjs +1 -1
  147. package/dist/server/next.d.mts +7 -7
  148. package/dist/server/next.d.ts +7 -7
  149. package/dist/server/next.js +23 -16
  150. package/dist/server/next.js.map +1 -1
  151. package/dist/server/next.mjs +15 -8
  152. package/dist/server/next.mjs.map +1 -1
  153. package/dist/server/prebuild-loader.d.mts +87 -0
  154. package/dist/server/prebuild-loader.d.ts +87 -0
  155. package/dist/server/prebuild-loader.js +15 -0
  156. package/dist/server/prebuild-loader.js.map +1 -0
  157. package/dist/server/prebuild-loader.mjs +15 -0
  158. package/dist/server/prebuild-loader.mjs.map +1 -0
  159. package/dist/server/prebuild-types.d.mts +201 -0
  160. package/dist/server/prebuild-types.d.ts +201 -0
  161. package/dist/server/prebuild-types.js +1 -0
  162. package/dist/server/prebuild-types.js.map +1 -0
  163. package/dist/server/prebuild-types.mjs +1 -0
  164. package/dist/server/prebuild-types.mjs.map +1 -0
  165. package/dist/server/prebuild.d.mts +46 -0
  166. package/dist/server/prebuild.d.ts +46 -0
  167. package/dist/server/prebuild.js +10 -0
  168. package/dist/server/prebuild.js.map +1 -0
  169. package/dist/server/prebuild.mjs +10 -0
  170. package/dist/server/prebuild.mjs.map +1 -0
  171. package/dist/server/rendering/server.d.mts +5 -5
  172. package/dist/server/rendering/server.d.ts +5 -5
  173. package/dist/server/rendering/server.js +9 -9
  174. package/dist/server/rendering/server.mjs +8 -8
  175. package/dist/server/rendering.d.mts +9 -9
  176. package/dist/server/rendering.d.ts +9 -9
  177. package/dist/server/rendering.js +13 -11
  178. package/dist/server/rendering.js.map +1 -1
  179. package/dist/server/rendering.mjs +12 -10
  180. package/dist/server/routing.d.mts +5 -5
  181. package/dist/server/routing.d.ts +5 -5
  182. package/dist/server/routing.js +2 -2
  183. package/dist/server/routing.mjs +2 -2
  184. package/dist/server/{schema-Z6-afHJG.d.mts → schema-DYtW0zEu.d.mts} +40 -0
  185. package/dist/server/{schema-Z6-afHJG.d.ts → schema-DYtW0zEu.d.ts} +40 -0
  186. package/dist/server/server.d.mts +6 -6
  187. package/dist/server/server.d.ts +6 -6
  188. package/dist/server/server.js +10 -7
  189. package/dist/server/server.js.map +1 -1
  190. package/dist/server/server.mjs +9 -6
  191. package/dist/server/theme-bridge.js +9 -9
  192. package/dist/server/theme-bridge.mjs +3 -3
  193. package/dist/server/theme.js +1 -1
  194. package/dist/server/theme.mjs +1 -1
  195. package/dist/server/{types-DT30Qy7x.d.mts → types-B6P_iaDz.d.mts} +296 -2
  196. package/dist/server/{types-CgSO0yxg.d.ts → types-C4jfCjaP.d.ts} +296 -2
  197. package/dist/server/{types-D0rPF8l5.d.ts → types-CSvCkmYi.d.mts} +13 -4
  198. package/dist/server/{types-D8XqwoVd.d.ts → types-DVesWaB7.d.ts} +1 -1
  199. package/dist/server/{types-CJfJwcuL.d.mts → types-M0CviVW2.d.mts} +1 -1
  200. package/dist/server/{types-BRQ_6yOc.d.mts → types-gKcrQV09.d.ts} +13 -4
  201. package/dist/server/{validation-Pv3Zs6dP.d.mts → validation-BA1TKthZ.d.mts} +2 -2
  202. package/dist/server/{validation-D1LaY1kQ.d.ts → validation-js7BCPN8.d.ts} +2 -2
  203. package/dist/server/webhooks.js +1 -1
  204. package/dist/server/webhooks.mjs +1 -1
  205. package/dist/styles/index.css +419 -0
  206. package/package.json +17 -3
  207. package/dist/server/chunk-4CV4JOE5.js.map +0 -1
  208. package/dist/server/chunk-4YQJUL5W.mjs.map +0 -1
  209. package/dist/server/chunk-65A5HAUZ.mjs.map +0 -1
  210. package/dist/server/chunk-7UPVCT3K.js.map +0 -1
  211. package/dist/server/chunk-BYBJA6SP.mjs.map +0 -1
  212. package/dist/server/chunk-EIJ27EZQ.js.map +0 -1
  213. package/dist/server/chunk-EIVISR62.js.map +0 -1
  214. package/dist/server/chunk-LNOUXALA.mjs.map +0 -1
  215. package/dist/server/chunk-WM646WI3.js.map +0 -1
  216. package/dist/server/chunk-YYO3RIFO.js.map +0 -1
  217. package/dist/server/loadPage-AXNAERDS.js +0 -11
  218. package/dist/server/loadPage-XR7ORQ2E.mjs +0 -11
  219. package/src/styles/index.css +0 -10
  220. /package/dist/server/{chunk-RBJFXNDM.mjs.map → chunk-E4R5ILRE.mjs.map} +0 -0
  221. /package/dist/server/{chunk-ARNCLSQT.mjs.map → chunk-H44G72AB.mjs.map} +0 -0
  222. /package/dist/server/{chunk-OSF34JTQ.mjs.map → chunk-KKUR3PDT.mjs.map} +0 -0
  223. /package/dist/server/{chunk-P4K63SBZ.mjs.map → chunk-OSTUHBFE.mjs.map} +0 -0
  224. /package/dist/server/{chunk-NFEGQTCC.mjs.map → chunk-WMJKH4XE.mjs.map} +0 -0
  225. /package/dist/server/{chunk-C6FIJC7T.mjs.map → chunk-YUD7ONZG.mjs.map} +0 -0
  226. /package/dist/server/{loadPage-XR7ORQ2E.mjs.map → loadPage-IBX7FXGH.mjs.map} +0 -0
@@ -1,6 +1,12 @@
1
1
  "use client";
2
2
  var __defProp = Object.defineProperty;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __require = /* @__PURE__ */ ((x2) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x2, {
5
+ get: (a2, b3) => (typeof require !== "undefined" ? require : a2)[b3]
6
+ }) : x2)(function(x2) {
7
+ if (typeof require !== "undefined") return require.apply(this, arguments);
8
+ throw Error('Dynamic require of "' + x2 + '" is not supported');
9
+ });
4
10
  var __esm = (fn2, res) => function __init() {
5
11
  return fn2 && (res = (0, fn2[__getOwnPropNames(fn2)[0]])(fn2 = 0)), res;
6
12
  };
@@ -3093,10 +3099,23 @@ var LinkNode = ({
3093
3099
  return /* @__PURE__ */ jsx8("a", { href, ...rest, children });
3094
3100
  };
3095
3101
 
3096
- // ../media-core/dist/chunk-ZBK775TB.mjs
3097
- function getDirectImageUrl(supabaseUrl, storagePath, storageBucket = "media", options) {
3102
+ // ../media-core/dist/chunk-6DJ7FQFK.mjs
3103
+ function getDirectImageUrl(supabaseUrl, storagePath, storageBucket = "media", siteId, options) {
3098
3104
  const baseUrl = supabaseUrl.replace(/\/$/, "");
3099
- const encodedPath = storagePath.split("/").map((segment) => encodeURIComponent(segment)).join("/");
3105
+ let fullPath;
3106
+ if (storagePath.startsWith("sites/")) {
3107
+ fullPath = storagePath;
3108
+ if (siteId && process.env.NODE_ENV !== "production") {
3109
+ console.warn(
3110
+ `[media-core] storagePath "${storagePath}" already contains site prefix. Using path as-is for backward compatibility. After migration, paths should be relative (e.g., "originals/2024/12/img.jpg").`
3111
+ );
3112
+ }
3113
+ } else if (siteId) {
3114
+ fullPath = `sites/${siteId}/${storagePath}`;
3115
+ } else {
3116
+ fullPath = storagePath;
3117
+ }
3118
+ const encodedPath = fullPath.split("/").map((segment) => encodeURIComponent(segment)).join("/");
3100
3119
  const isSvg = storagePath.toLowerCase().endsWith(".svg");
3101
3120
  if (options && !isSvg && (options.width || options.height)) {
3102
3121
  const params = new URLSearchParams();
@@ -3111,10 +3130,49 @@ function getDirectImageUrl(supabaseUrl, storagePath, storageBucket = "media", op
3111
3130
 
3112
3131
  // ../blocks/src/system/runtime/nodes/media.tsx
3113
3132
  import { jsx as jsx9 } from "react/jsx-runtime";
3114
- var _contextSupabaseUrl;
3133
+ var ImagePresets = {
3134
+ /** Small thumbnails (200px) - for block previews, lists */
3135
+ thumbnail: { width: 200, quality: 80, resize: "contain" },
3136
+ /** Card-sized images (600px) - for cards, grids */
3137
+ card: { width: 600, quality: 80, resize: "contain" },
3138
+ /** Hero images (1200px) - for above-fold content */
3139
+ hero: { width: 1200, quality: 85, resize: "contain" },
3140
+ /** Full-width images (1920px) - for backgrounds, large displays */
3141
+ full: { width: 1920, quality: 85, resize: "contain" }
3142
+ };
3143
+ var _serverStorage = null;
3144
+ var _serverStorageChecked = false;
3145
+ function getServerStorage() {
3146
+ if (typeof window !== "undefined") return null;
3147
+ if (_serverStorageChecked) return _serverStorage;
3148
+ _serverStorageChecked = true;
3149
+ try {
3150
+ const asyncHooks = __require("async_hooks");
3151
+ const AsyncLocalStorage = asyncHooks.AsyncLocalStorage;
3152
+ if (AsyncLocalStorage) {
3153
+ _serverStorage = new AsyncLocalStorage();
3154
+ return _serverStorage;
3155
+ }
3156
+ return null;
3157
+ } catch {
3158
+ if (process.env.NODE_ENV !== "production") {
3159
+ console.warn("[blocks] AsyncLocalStorage not available - using module-level state");
3160
+ }
3161
+ return null;
3162
+ }
3163
+ }
3164
+ var _clientContext = {};
3165
+ function getMediaContext() {
3166
+ const storage = getServerStorage();
3167
+ if (storage) {
3168
+ return storage.getStore() ?? {};
3169
+ }
3170
+ return _clientContext;
3171
+ }
3115
3172
  function getSupabaseUrl() {
3116
- if (_contextSupabaseUrl) {
3117
- return _contextSupabaseUrl;
3173
+ const context = getMediaContext();
3174
+ if (context.supabaseUrl) {
3175
+ return context.supabaseUrl;
3118
3176
  }
3119
3177
  const url = process.env.NEXT_PUBLIC_SUPABASE_URL;
3120
3178
  if (!url) {
@@ -3124,19 +3182,22 @@ function getSupabaseUrl() {
3124
3182
  }
3125
3183
  return url.replace(/\/$/, "");
3126
3184
  }
3185
+ function getSiteId() {
3186
+ return getMediaContext().siteId;
3187
+ }
3127
3188
  var debugMediaNodeLog = (...args) => {
3128
3189
  if (typeof window !== "undefined" && window.__DEBUG_MEDIA_NODE__) {
3129
3190
  console.log("[MediaNode]", ...args);
3130
3191
  }
3131
3192
  };
3132
- var MediaNode = ({ value, className, style }) => {
3193
+ var MediaNode = ({ value, className, style, size: size4 = ImagePresets.full }) => {
3133
3194
  if (!value) return null;
3134
3195
  if (value.type === "video") {
3135
3196
  const src = value.src;
3136
3197
  if (!src) return null;
3137
3198
  return /* @__PURE__ */ jsx9("video", { className, style, src, autoPlay: true, muted: true, loop: true, playsInline: true, "aria-label": value.alt ?? "" });
3138
3199
  }
3139
- const imageUrl = resolveImageUrl(value);
3200
+ const imageUrl = resolveImageUrl(value, size4);
3140
3201
  if (!imageUrl) {
3141
3202
  return /* @__PURE__ */ jsx9(
3142
3203
  "div",
@@ -3147,7 +3208,10 @@ var MediaNode = ({ value, className, style }) => {
3147
3208
  }
3148
3209
  );
3149
3210
  }
3150
- const hotspotStyle = value.transform?.hotspot ? { objectPosition: `${value.transform.hotspot.x * 100}% ${value.transform.hotspot.y * 100}%` } : void 0;
3211
+ const effectiveObjectFit = style?.objectFit;
3212
+ const hotspot = value.transform?.hotspot;
3213
+ const shouldApplyHotspot = hotspot && (!effectiveObjectFit || effectiveObjectFit === "cover" || effectiveObjectFit === "contain");
3214
+ const hotspotStyle = shouldApplyHotspot && hotspot ? { objectPosition: `${hotspot.x * 100}% ${hotspot.y * 100}%` } : void 0;
3151
3215
  return /* @__PURE__ */ jsx9(
3152
3216
  "img",
3153
3217
  {
@@ -3159,22 +3223,45 @@ var MediaNode = ({ value, className, style }) => {
3159
3223
  }
3160
3224
  );
3161
3225
  };
3162
- function resolveImageUrl(value) {
3226
+ function isRelativePath(storagePath) {
3227
+ return storagePath.startsWith("originals/") || storagePath.startsWith("variants/") || storagePath.startsWith("imports/");
3228
+ }
3229
+ function resolveImageUrl(value, options) {
3163
3230
  if (value.type !== "image") return void 0;
3164
3231
  debugMediaNodeLog("resolveImageUrl input", {
3165
3232
  assetId: value.assetId,
3166
3233
  storagePath: value.storagePath,
3167
3234
  src: value.src,
3168
- type: value.type
3235
+ type: value.type,
3236
+ options
3169
3237
  });
3170
3238
  if (value.storagePath && value.storagePath.length > 0) {
3171
3239
  const supabaseUrl = getSupabaseUrl();
3240
+ const siteId = getSiteId();
3172
3241
  const bucket = value.storageBucket ?? "media";
3173
- const directUrl = getDirectImageUrl(supabaseUrl, value.storagePath, bucket);
3242
+ if (isRelativePath(value.storagePath) && !siteId) {
3243
+ console.warn(
3244
+ `[blocks] Relative storagePath "${value.storagePath}" requires siteId context. Image URL may be incorrect. Ensure siteId is set via runWithMediaContext or setContextSiteId.`
3245
+ );
3246
+ }
3247
+ let transformOptions;
3248
+ if ("original" in options && options.original) {
3249
+ transformOptions = void 0;
3250
+ } else {
3251
+ transformOptions = {
3252
+ width: "width" in options ? options.width : void 0,
3253
+ height: "height" in options ? options.height : void 0,
3254
+ quality: "quality" in options ? options.quality : void 0,
3255
+ resize: "resize" in options ? options.resize : void 0
3256
+ };
3257
+ }
3258
+ const directUrl = getDirectImageUrl(supabaseUrl, value.storagePath, bucket, siteId, transformOptions);
3174
3259
  debugMediaNodeLog("resolve:direct-supabase", {
3175
3260
  storagePath: value.storagePath,
3261
+ siteId,
3176
3262
  bucket,
3177
- directUrl
3263
+ directUrl,
3264
+ transformOptions
3178
3265
  });
3179
3266
  return directUrl;
3180
3267
  }
@@ -12419,6 +12506,7 @@ var X2 = createLucideIcon("x", __iconNode12);
12419
12506
 
12420
12507
  // ../ui/dist/index.mjs
12421
12508
  import { jsx as jsx410, jsxs as jsxs28 } from "react/jsx-runtime";
12509
+ import { jsx as jsx510, jsxs as jsxs29 } from "react/jsx-runtime";
12422
12510
  import * as React310 from "react";
12423
12511
 
12424
12512
  // ../../node_modules/.pnpm/@radix-ui+react-dropdown-menu@2.1.16_@types+react-dom@19.1.7_@types+react@19.1.11__@typ_73e1023eade5c24615c7e11c2c5c91a2/node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs
@@ -15997,11 +16085,11 @@ var SubTrigger2 = DropdownMenuSubTrigger;
15997
16085
  var SubContent2 = DropdownMenuSubContent;
15998
16086
 
15999
16087
  // ../ui/dist/index.mjs
16000
- import { jsx as jsx510, jsxs as jsxs29 } from "react/jsx-runtime";
16088
+ import { jsx as jsx62, jsxs as jsxs32 } from "react/jsx-runtime";
16001
16089
  import * as React410 from "react";
16002
- import { jsx as jsx62 } from "react/jsx-runtime";
16003
16090
  import { jsx as jsx72 } from "react/jsx-runtime";
16004
16091
  import { jsx as jsx82 } from "react/jsx-runtime";
16092
+ import { jsx as jsx92 } from "react/jsx-runtime";
16005
16093
  import * as React54 from "react";
16006
16094
 
16007
16095
  // ../../node_modules/.pnpm/@radix-ui+react-popover@1.1.15_@types+react-dom@19.1.7_@types+react@19.1.11__@types+rea_e0f1f19d687b38e5ae82e27a5862402e/node_modules/@radix-ui/react-popover/dist/index.mjs
@@ -16287,7 +16375,7 @@ var Portal4 = PopoverPortal;
16287
16375
  var Content24 = PopoverContent;
16288
16376
 
16289
16377
  // ../ui/dist/index.mjs
16290
- import { jsx as jsx92 } from "react/jsx-runtime";
16378
+ import { jsx as jsx102 } from "react/jsx-runtime";
16291
16379
  import { forwardRef as forwardRef52, useEffect as useEffect29, useMemo as useMemo13, useRef as useRef25, useState as useState33 } from "react";
16292
16380
 
16293
16381
  // ../../node_modules/.pnpm/react-colorful@5.6.1_react-dom@19.2.1_react@19.2.1__react@19.2.1/node_modules/react-colorful/dist/index.mjs
@@ -16485,7 +16573,7 @@ var Z2 = function(r3) {
16485
16573
  };
16486
16574
 
16487
16575
  // ../ui/dist/index.mjs
16488
- import { jsx as jsx102, jsxs as jsxs32 } from "react/jsx-runtime";
16576
+ import { jsx as jsx112, jsxs as jsxs42 } from "react/jsx-runtime";
16489
16577
  import * as React62 from "react";
16490
16578
 
16491
16579
  // ../../node_modules/.pnpm/embla-carousel-react@8.6.0_react@19.2.1/node_modules/embla-carousel-react/esm/embla-carousel-react.esm.js
@@ -18191,7 +18279,7 @@ function useEmblaCarousel(options = {}, plugins = []) {
18191
18279
  useEmblaCarousel.globalOptions = void 0;
18192
18280
 
18193
18281
  // ../ui/dist/index.mjs
18194
- import { jsx as jsx112, jsxs as jsxs42 } from "react/jsx-runtime";
18282
+ import { jsx as jsx122, jsxs as jsxs52 } from "react/jsx-runtime";
18195
18283
 
18196
18284
  // ../../node_modules/.pnpm/@radix-ui+react-use-previous@1.1.1_@types+react@19.1.11_react@19.2.1/node_modules/@radix-ui/react-use-previous/dist/index.mjs
18197
18285
  import * as React48 from "react";
@@ -18207,19 +18295,19 @@ function usePrevious(value) {
18207
18295
  }
18208
18296
 
18209
18297
  // ../ui/dist/index.mjs
18210
- import { jsx as jsx122, jsxs as jsxs52 } from "react/jsx-runtime";
18211
- import { jsx as jsx132 } from "react/jsx-runtime";
18298
+ import { jsx as jsx132, jsxs as jsxs62 } from "react/jsx-runtime";
18299
+ import { jsx as jsx142 } from "react/jsx-runtime";
18212
18300
  import * as React72 from "react";
18213
- import { jsx as jsx142, jsxs as jsxs62 } from "react/jsx-runtime";
18301
+ import { jsx as jsx152, jsxs as jsxs72 } from "react/jsx-runtime";
18214
18302
  import { forwardRef as forwardRef82 } from "react";
18215
- import { jsx as jsx152 } from "react/jsx-runtime";
18216
- import { jsx as jsx162, jsxs as jsxs72 } from "react/jsx-runtime";
18303
+ import { jsx as jsx162 } from "react/jsx-runtime";
18304
+ import { jsx as jsx172, jsxs as jsxs82 } from "react/jsx-runtime";
18217
18305
  import { useEffect as useEffect210, useState as useState210 } from "react";
18218
- import { jsx as jsx172 } from "react/jsx-runtime";
18306
+ import { jsx as jsx182 } from "react/jsx-runtime";
18219
18307
  import { forwardRef as forwardRef92 } from "react";
18220
- import { jsx as jsx182, jsxs as jsxs82 } from "react/jsx-runtime";
18221
- import { Suspense } from "react";
18222
18308
  import { jsx as jsx192, jsxs as jsxs92 } from "react/jsx-runtime";
18309
+ import { Suspense } from "react";
18310
+ import { jsx as jsx202, jsxs as jsxs102 } from "react/jsx-runtime";
18223
18311
  import * as React82 from "react";
18224
18312
 
18225
18313
  // ../../node_modules/.pnpm/@radix-ui+react-switch@1.2.6_@types+react-dom@19.1.7_@types+react@19.1.11__@types+react_3a18675aaef59a80183d47a46045f61d/node_modules/@radix-ui/react-switch/dist/index.mjs
@@ -18367,9 +18455,9 @@ var Root4 = Switch;
18367
18455
  var Thumb = SwitchThumb;
18368
18456
 
18369
18457
  // ../ui/dist/index.mjs
18370
- import { jsx as jsx202 } from "react/jsx-runtime";
18371
- import * as React92 from "react";
18372
18458
  import { jsx as jsx212 } from "react/jsx-runtime";
18459
+ import * as React92 from "react";
18460
+ import { jsx as jsx222 } from "react/jsx-runtime";
18373
18461
  import * as React102 from "react";
18374
18462
 
18375
18463
  // ../../node_modules/.pnpm/@radix-ui+react-toggle@1.1.10_@types+react-dom@19.1.7_@types+react@19.1.11__@types+reac_37fabc382cd9b9947e48ad57c4aa85bf/node_modules/@radix-ui/react-toggle/dist/index.mjs
@@ -18405,9 +18493,9 @@ Toggle.displayName = NAME2;
18405
18493
  var Root5 = Toggle;
18406
18494
 
18407
18495
  // ../ui/dist/index.mjs
18408
- import { jsx as jsx222 } from "react/jsx-runtime";
18409
- import { jsx as jsx232, jsxs as jsxs102 } from "react/jsx-runtime";
18410
- import { jsx as jsx242 } from "react/jsx-runtime";
18496
+ import { jsx as jsx232 } from "react/jsx-runtime";
18497
+ import { jsx as jsx242, jsxs as jsxs112 } from "react/jsx-runtime";
18498
+ import { jsx as jsx252 } from "react/jsx-runtime";
18411
18499
 
18412
18500
  // ../../node_modules/.pnpm/@radix-ui+react-accordion@1.2.12_@types+react-dom@19.1.7_@types+react@19.1.11__@types+r_0aefcdf227a32a60c7759673d969e63f/node_modules/@radix-ui/react-accordion/dist/index.mjs
18413
18501
  import React51 from "react";
@@ -18706,14 +18794,14 @@ var Content25 = AccordionContent;
18706
18794
 
18707
18795
  // ../ui/dist/index.mjs
18708
18796
  import * as React112 from "react";
18709
- import { jsx as jsx252 } from "react/jsx-runtime";
18797
+ import { jsx as jsx262 } from "react/jsx-runtime";
18710
18798
  import * as React122 from "react";
18711
- import { jsx as jsx262, jsxs as jsxs112 } from "react/jsx-runtime";
18799
+ import { jsx as jsx272, jsxs as jsxs122 } from "react/jsx-runtime";
18712
18800
  import * as React132 from "react";
18713
- import { jsx as jsx272 } from "react/jsx-runtime";
18714
- import { jsx as jsx282, jsxs as jsxs122 } from "react/jsx-runtime";
18801
+ import { jsx as jsx282 } from "react/jsx-runtime";
18802
+ import { jsx as jsx292, jsxs as jsxs132 } from "react/jsx-runtime";
18715
18803
  import { useEffect as useEffect32, useRef as useRef32 } from "react";
18716
- import { jsx as jsx292 } from "react/jsx-runtime";
18804
+ import { jsx as jsx302 } from "react/jsx-runtime";
18717
18805
  import {
18718
18806
  useCallback as useCallback20,
18719
18807
  useEffect as useEffect42,
@@ -18721,7 +18809,7 @@ import {
18721
18809
  useRef as useRef42,
18722
18810
  useState as useState34
18723
18811
  } from "react";
18724
- import { jsx as jsx302, jsxs as jsxs132 } from "react/jsx-runtime";
18812
+ import { jsx as jsx312, jsxs as jsxs142 } from "react/jsx-runtime";
18725
18813
  import { useState as useState42, useRef as useRef52, useCallback as useCallback22, useEffect as useEffect52 } from "react";
18726
18814
  import * as React152 from "react";
18727
18815
 
@@ -18903,12 +18991,12 @@ var Trigger3 = TabsTrigger;
18903
18991
  var Content4 = TabsContent;
18904
18992
 
18905
18993
  // ../ui/dist/index.mjs
18906
- import { jsx as jsx312 } from "react/jsx-runtime";
18907
- import { jsx as jsx322, jsxs as jsxs142 } from "react/jsx-runtime";
18908
- import { useState as useState52 } from "react";
18994
+ import { jsx as jsx322 } from "react/jsx-runtime";
18909
18995
  import { jsx as jsx332, jsxs as jsxs152 } from "react/jsx-runtime";
18996
+ import { useState as useState52 } from "react";
18997
+ import { jsx as jsx342, jsxs as jsxs162 } from "react/jsx-runtime";
18910
18998
  import { useEffect as useEffect62, useMemo as useMemo32, useState as useState62 } from "react";
18911
- import { Fragment as Fragment8, jsx as jsx342, jsxs as jsxs162 } from "react/jsx-runtime";
18999
+ import { Fragment as Fragment8, jsx as jsx352, jsxs as jsxs172 } from "react/jsx-runtime";
18912
19000
  function cn2(...inputs) {
18913
19001
  return twMerge(clsx(inputs));
18914
19002
  }
@@ -18979,7 +19067,7 @@ var CollapsibleContent2 = React211.forwardRef(({ className, ...props }, ref) =>
18979
19067
  }
18980
19068
  ));
18981
19069
  CollapsibleContent2.displayName = Content.displayName;
18982
- var DropdownMenuSubTrigger2 = React310.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs29(
19070
+ var DropdownMenuSubTrigger2 = React310.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs32(
18983
19071
  SubTrigger2,
18984
19072
  {
18985
19073
  ref,
@@ -18991,12 +19079,12 @@ var DropdownMenuSubTrigger2 = React310.forwardRef(({ className, inset, children,
18991
19079
  ...props,
18992
19080
  children: [
18993
19081
  children,
18994
- /* @__PURE__ */ jsx510(ChevronRight, { className: "ml-auto" })
19082
+ /* @__PURE__ */ jsx62(ChevronRight, { className: "ml-auto" })
18995
19083
  ]
18996
19084
  }
18997
19085
  ));
18998
19086
  DropdownMenuSubTrigger2.displayName = SubTrigger2.displayName;
18999
- var DropdownMenuSubContent2 = React310.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx510(
19087
+ var DropdownMenuSubContent2 = React310.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx62(
19000
19088
  SubContent2,
19001
19089
  {
19002
19090
  ref,
@@ -19008,7 +19096,7 @@ var DropdownMenuSubContent2 = React310.forwardRef(({ className, ...props }, ref)
19008
19096
  }
19009
19097
  ));
19010
19098
  DropdownMenuSubContent2.displayName = SubContent2.displayName;
19011
- var DropdownMenuContent2 = React310.forwardRef(({ className, sideOffset = 4, container, ...props }, ref) => /* @__PURE__ */ jsx510(Portal22, { ...container ? { container } : {}, children: /* @__PURE__ */ jsx510(
19099
+ var DropdownMenuContent2 = React310.forwardRef(({ className, sideOffset = 4, container, ...props }, ref) => /* @__PURE__ */ jsx62(Portal22, { ...container ? { container } : {}, children: /* @__PURE__ */ jsx62(
19012
19100
  Content23,
19013
19101
  {
19014
19102
  ref,
@@ -19022,7 +19110,7 @@ var DropdownMenuContent2 = React310.forwardRef(({ className, sideOffset = 4, con
19022
19110
  }
19023
19111
  ) }));
19024
19112
  DropdownMenuContent2.displayName = Content23.displayName;
19025
- var DropdownMenuItem2 = React310.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx510(
19113
+ var DropdownMenuItem2 = React310.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx62(
19026
19114
  Item22,
19027
19115
  {
19028
19116
  ref,
@@ -19035,7 +19123,7 @@ var DropdownMenuItem2 = React310.forwardRef(({ className, inset, ...props }, ref
19035
19123
  }
19036
19124
  ));
19037
19125
  DropdownMenuItem2.displayName = Item22.displayName;
19038
- var DropdownMenuCheckboxItem2 = React310.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs29(
19126
+ var DropdownMenuCheckboxItem2 = React310.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs32(
19039
19127
  CheckboxItem2,
19040
19128
  {
19041
19129
  ref,
@@ -19046,13 +19134,13 @@ var DropdownMenuCheckboxItem2 = React310.forwardRef(({ className, children, chec
19046
19134
  checked,
19047
19135
  ...props,
19048
19136
  children: [
19049
- /* @__PURE__ */ jsx510("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx510(ItemIndicator2, { children: /* @__PURE__ */ jsx510(Check, { className: "h-4 w-4" }) }) }),
19137
+ /* @__PURE__ */ jsx62("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx62(ItemIndicator2, { children: /* @__PURE__ */ jsx62(Check, { className: "h-4 w-4" }) }) }),
19050
19138
  children
19051
19139
  ]
19052
19140
  }
19053
19141
  ));
19054
19142
  DropdownMenuCheckboxItem2.displayName = CheckboxItem2.displayName;
19055
- var DropdownMenuRadioItem2 = React310.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs29(
19143
+ var DropdownMenuRadioItem2 = React310.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs32(
19056
19144
  RadioItem2,
19057
19145
  {
19058
19146
  ref,
@@ -19062,13 +19150,13 @@ var DropdownMenuRadioItem2 = React310.forwardRef(({ className, children, ...prop
19062
19150
  ),
19063
19151
  ...props,
19064
19152
  children: [
19065
- /* @__PURE__ */ jsx510("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx510(ItemIndicator2, { children: /* @__PURE__ */ jsx510(Circle, { className: "h-2 w-2 fill-current" }) }) }),
19153
+ /* @__PURE__ */ jsx62("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx62(ItemIndicator2, { children: /* @__PURE__ */ jsx62(Circle, { className: "h-2 w-2 fill-current" }) }) }),
19066
19154
  children
19067
19155
  ]
19068
19156
  }
19069
19157
  ));
19070
19158
  DropdownMenuRadioItem2.displayName = RadioItem2.displayName;
19071
- var DropdownMenuLabel2 = React310.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx510(
19159
+ var DropdownMenuLabel2 = React310.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx62(
19072
19160
  Label2,
19073
19161
  {
19074
19162
  ref,
@@ -19081,7 +19169,7 @@ var DropdownMenuLabel2 = React310.forwardRef(({ className, inset, ...props }, re
19081
19169
  }
19082
19170
  ));
19083
19171
  DropdownMenuLabel2.displayName = Label2.displayName;
19084
- var DropdownMenuSeparator2 = React310.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx510(
19172
+ var DropdownMenuSeparator2 = React310.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx62(
19085
19173
  Separator2,
19086
19174
  {
19087
19175
  ref,
@@ -19094,7 +19182,7 @@ var DropdownMenuShortcut = ({
19094
19182
  className,
19095
19183
  ...props
19096
19184
  }) => {
19097
- return /* @__PURE__ */ jsx510(
19185
+ return /* @__PURE__ */ jsx62(
19098
19186
  "span",
19099
19187
  {
19100
19188
  className: cn2("ml-auto text-xs tracking-widest opacity-60", className),
@@ -19110,7 +19198,7 @@ var FormItemContext = React410.createContext(
19110
19198
  {}
19111
19199
  );
19112
19200
  function Input({ className, type, ...props }) {
19113
- return /* @__PURE__ */ jsx82(
19201
+ return /* @__PURE__ */ jsx92(
19114
19202
  "input",
19115
19203
  {
19116
19204
  type,
@@ -19139,7 +19227,7 @@ function getSafePortalContainer(container) {
19139
19227
  }
19140
19228
  return target;
19141
19229
  }
19142
- var PopoverContent2 = React54.forwardRef(({ className, align = "center", sideOffset = 4, container, ...props }, ref) => /* @__PURE__ */ jsx92(Portal4, { ...container ? { container: getSafePortalContainer(container) } : {}, children: /* @__PURE__ */ jsx92(
19230
+ var PopoverContent2 = React54.forwardRef(({ className, align = "center", sideOffset = 4, container, ...props }, ref) => /* @__PURE__ */ jsx102(Portal4, { ...container ? { container: getSafePortalContainer(container) } : {}, children: /* @__PURE__ */ jsx102(
19143
19231
  Content24,
19144
19232
  {
19145
19233
  ref,
@@ -19172,9 +19260,9 @@ var ColorPicker = forwardRef52(
19172
19260
  const parsedValue = useMemo13(() => {
19173
19261
  return value || "#FFFFFF";
19174
19262
  }, [value]);
19175
- return /* @__PURE__ */ jsxs32("div", { className: cn2("inline-block", props.style ? "" : ""), children: [
19176
- /* @__PURE__ */ jsxs32(Popover2, { onOpenChange: setOpen, open, children: [
19177
- /* @__PURE__ */ jsx102(PopoverTrigger2, { asChild: true, disabled, onBlur, children: /* @__PURE__ */ jsx102(
19263
+ return /* @__PURE__ */ jsxs42("div", { className: cn2("inline-block", props.style ? "" : ""), children: [
19264
+ /* @__PURE__ */ jsxs42(Popover2, { onOpenChange: setOpen, open, children: [
19265
+ /* @__PURE__ */ jsx112(PopoverTrigger2, { asChild: true, disabled, onBlur, children: /* @__PURE__ */ jsx112(
19178
19266
  Button,
19179
19267
  {
19180
19268
  ...props,
@@ -19189,12 +19277,12 @@ var ColorPicker = forwardRef52(
19189
19277
  ...props.style
19190
19278
  },
19191
19279
  variant: "outline",
19192
- children: /* @__PURE__ */ jsx102("div", {})
19280
+ children: /* @__PURE__ */ jsx112("div", {})
19193
19281
  }
19194
19282
  ) }),
19195
- /* @__PURE__ */ jsxs32(PopoverContent2, { className: "w-full", children: [
19196
- /* @__PURE__ */ jsx102(Z2, { color: parsedValue, onChange }),
19197
- /* @__PURE__ */ jsx102(
19283
+ /* @__PURE__ */ jsxs42(PopoverContent2, { className: "w-full", children: [
19284
+ /* @__PURE__ */ jsx112(Z2, { color: parsedValue, onChange }),
19285
+ /* @__PURE__ */ jsx112(
19198
19286
  Input,
19199
19287
  {
19200
19288
  maxLength: 7,
@@ -19207,7 +19295,7 @@ var ColorPicker = forwardRef52(
19207
19295
  )
19208
19296
  ] })
19209
19297
  ] }),
19210
- label ? /* @__PURE__ */ jsx102("div", { className: "mt-1 text-xs text-gray-600", children: label }) : null
19298
+ label ? /* @__PURE__ */ jsx112("div", { className: "mt-1 text-xs text-gray-600", children: label }) : null
19211
19299
  ] });
19212
19300
  }
19213
19301
  );
@@ -19229,13 +19317,13 @@ var Carousel = React62.forwardRef(
19229
19317
  },
19230
19318
  plugins
19231
19319
  );
19232
- return /* @__PURE__ */ jsx112(CarouselContext.Provider, { value: { carouselRef, api, orientation }, children: /* @__PURE__ */ jsx112(
19320
+ return /* @__PURE__ */ jsx122(CarouselContext.Provider, { value: { carouselRef, api, orientation }, children: /* @__PURE__ */ jsx122(
19233
19321
  "div",
19234
19322
  {
19235
19323
  ref,
19236
19324
  className: cn2("relative", orientation === "vertical" && "flex flex-col", className),
19237
19325
  ...props,
19238
- children: /* @__PURE__ */ jsx112("div", { ref: carouselRef, className: "overflow-hidden", children: /* @__PURE__ */ jsx112("div", { className: "flex", children }) })
19326
+ children: /* @__PURE__ */ jsx122("div", { ref: carouselRef, className: "overflow-hidden", children: /* @__PURE__ */ jsx122("div", { className: "flex", children }) })
19239
19327
  }
19240
19328
  ) });
19241
19329
  }
@@ -19244,7 +19332,7 @@ Carousel.displayName = "Carousel";
19244
19332
  var CarouselContent = React62.forwardRef(
19245
19333
  ({ className, ...props }, ref) => {
19246
19334
  const { orientation } = useCarousel();
19247
- return /* @__PURE__ */ jsx112(
19335
+ return /* @__PURE__ */ jsx122(
19248
19336
  "div",
19249
19337
  {
19250
19338
  ref,
@@ -19262,7 +19350,7 @@ CarouselContent.displayName = "CarouselContent";
19262
19350
  var CarouselItem = React62.forwardRef(
19263
19351
  ({ className, ...props }, ref) => {
19264
19352
  const { orientation } = useCarousel();
19265
- return /* @__PURE__ */ jsx112(
19353
+ return /* @__PURE__ */ jsx122(
19266
19354
  "div",
19267
19355
  {
19268
19356
  ref,
@@ -19280,14 +19368,14 @@ var CarouselItem = React62.forwardRef(
19280
19368
  );
19281
19369
  CarouselItem.displayName = "CarouselItem";
19282
19370
  var Control = React62.forwardRef(
19283
- ({ className, variant = "outline", size: size4 = "icon", ...props }, ref) => /* @__PURE__ */ jsx112(Button, { ref, className: cn2("h-8 w-8", className), variant, size: size4, ...props })
19371
+ ({ className, variant = "outline", size: size4 = "icon", ...props }, ref) => /* @__PURE__ */ jsx122(Button, { ref, className: cn2("h-8 w-8", className), variant, size: size4, ...props })
19284
19372
  );
19285
19373
  Control.displayName = "CarouselControl";
19286
19374
  var CarouselPrevious = React62.forwardRef(
19287
19375
  ({ className, children, ...props }, ref) => {
19288
19376
  const { api, orientation } = useCarousel();
19289
19377
  const isHorizontal = orientation === "horizontal";
19290
- return /* @__PURE__ */ jsxs42(
19378
+ return /* @__PURE__ */ jsxs52(
19291
19379
  Control,
19292
19380
  {
19293
19381
  ref,
@@ -19299,8 +19387,8 @@ var CarouselPrevious = React62.forwardRef(
19299
19387
  onClick: () => api?.scrollPrev(),
19300
19388
  ...props,
19301
19389
  children: [
19302
- children ?? /* @__PURE__ */ jsx112(ChevronLeft, { className: "h-4 w-4", "aria-hidden": "true" }),
19303
- /* @__PURE__ */ jsx112("span", { className: "sr-only", children: "Previous slide" })
19390
+ children ?? /* @__PURE__ */ jsx122(ChevronLeft, { className: "h-4 w-4", "aria-hidden": "true" }),
19391
+ /* @__PURE__ */ jsx122("span", { className: "sr-only", children: "Previous slide" })
19304
19392
  ]
19305
19393
  }
19306
19394
  );
@@ -19311,7 +19399,7 @@ var CarouselNext = React62.forwardRef(
19311
19399
  ({ className, children, ...props }, ref) => {
19312
19400
  const { api, orientation } = useCarousel();
19313
19401
  const isHorizontal = orientation === "horizontal";
19314
- return /* @__PURE__ */ jsxs42(
19402
+ return /* @__PURE__ */ jsxs52(
19315
19403
  Control,
19316
19404
  {
19317
19405
  ref,
@@ -19323,8 +19411,8 @@ var CarouselNext = React62.forwardRef(
19323
19411
  onClick: () => api?.scrollNext(),
19324
19412
  ...props,
19325
19413
  children: [
19326
- children ?? /* @__PURE__ */ jsx112(ChevronRight, { className: "h-4 w-4", "aria-hidden": "true" }),
19327
- /* @__PURE__ */ jsx112("span", { className: "sr-only", children: "Next slide" })
19414
+ children ?? /* @__PURE__ */ jsx122(ChevronRight, { className: "h-4 w-4", "aria-hidden": "true" }),
19415
+ /* @__PURE__ */ jsx122("span", { className: "sr-only", children: "Next slide" })
19328
19416
  ]
19329
19417
  }
19330
19418
  );
@@ -19334,13 +19422,13 @@ CarouselNext.displayName = "CarouselNext";
19334
19422
  function SheetPortal({
19335
19423
  ...props
19336
19424
  }) {
19337
- return /* @__PURE__ */ jsx142(Portal2, { "data-slot": "sheet-portal", ...props });
19425
+ return /* @__PURE__ */ jsx152(Portal2, { "data-slot": "sheet-portal", ...props });
19338
19426
  }
19339
19427
  function SheetOverlay({
19340
19428
  className,
19341
19429
  ...props
19342
19430
  }) {
19343
- return /* @__PURE__ */ jsx142(
19431
+ return /* @__PURE__ */ jsx152(
19344
19432
  Overlay,
19345
19433
  {
19346
19434
  "data-slot": "sheet-overlay",
@@ -19367,9 +19455,9 @@ var SIDE_CLASSNAMES = {
19367
19455
  ].join(" ")
19368
19456
  };
19369
19457
  var SheetContent = React72.forwardRef(({ className, children, showCloseButton = true, side = "bottom", ...props }, ref) => {
19370
- return /* @__PURE__ */ jsxs62(SheetPortal, { children: [
19371
- /* @__PURE__ */ jsx142(SheetOverlay, {}),
19372
- /* @__PURE__ */ jsxs62(
19458
+ return /* @__PURE__ */ jsxs72(SheetPortal, { children: [
19459
+ /* @__PURE__ */ jsx152(SheetOverlay, {}),
19460
+ /* @__PURE__ */ jsxs72(
19373
19461
  Content2,
19374
19462
  {
19375
19463
  ref,
@@ -19383,14 +19471,14 @@ var SheetContent = React72.forwardRef(({ className, children, showCloseButton =
19383
19471
  ...props,
19384
19472
  children: [
19385
19473
  children,
19386
- showCloseButton && /* @__PURE__ */ jsxs62(
19474
+ showCloseButton && /* @__PURE__ */ jsxs72(
19387
19475
  Close,
19388
19476
  {
19389
19477
  "data-slot": "sheet-close",
19390
19478
  className: "ring-offset-background focus:ring-ring absolute right-4 top-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
19391
19479
  children: [
19392
- /* @__PURE__ */ jsx142(X2, {}),
19393
- /* @__PURE__ */ jsx142("span", { className: "sr-only", children: "Close" })
19480
+ /* @__PURE__ */ jsx152(X2, {}),
19481
+ /* @__PURE__ */ jsx152("span", { className: "sr-only", children: "Close" })
19394
19482
  ]
19395
19483
  }
19396
19484
  )
@@ -19409,7 +19497,7 @@ var mergeStyle = (base, additions) => ({
19409
19497
  ...additions
19410
19498
  });
19411
19499
  var SkeletonRoot = forwardRef82(function SkeletonRoot2({ className, style, ...props }, ref) {
19412
- return /* @__PURE__ */ jsx152(
19500
+ return /* @__PURE__ */ jsx162(
19413
19501
  "div",
19414
19502
  {
19415
19503
  ref,
@@ -19423,7 +19511,7 @@ var SkeletonRoot = forwardRef82(function SkeletonRoot2({ className, style, ...pr
19423
19511
  SkeletonRoot.displayName = "Skeleton";
19424
19512
  var SkeletonText = forwardRef82(function SkeletonText2({ width, style, className, ...props }, ref) {
19425
19513
  const computedStyle = width ? mergeStyle(style, { width: toCssSize(width) }) : style;
19426
- return /* @__PURE__ */ jsx152(
19514
+ return /* @__PURE__ */ jsx162(
19427
19515
  SkeletonRoot,
19428
19516
  {
19429
19517
  ref,
@@ -19439,7 +19527,7 @@ var SkeletonLine = forwardRef82(function SkeletonLine2({ width = "100%", height
19439
19527
  width: toCssSize(width),
19440
19528
  height: toCssSize(height)
19441
19529
  });
19442
- return /* @__PURE__ */ jsx152(
19530
+ return /* @__PURE__ */ jsx162(
19443
19531
  SkeletonRoot,
19444
19532
  {
19445
19533
  ref,
@@ -19458,7 +19546,7 @@ var SkeletonBlock = forwardRef82(function SkeletonBlock2({ width = "100%", heigh
19458
19546
  if (aspectRatio) {
19459
19547
  additions.aspectRatio = typeof aspectRatio === "number" ? `${aspectRatio}` : aspectRatio;
19460
19548
  }
19461
- return /* @__PURE__ */ jsx152(
19549
+ return /* @__PURE__ */ jsx162(
19462
19550
  SkeletonRoot,
19463
19551
  {
19464
19552
  ref,
@@ -19474,7 +19562,7 @@ var SkeletonAvatar = forwardRef82(function SkeletonAvatar2({ size: size4 = 40, s
19474
19562
  width: toCssSize(size4),
19475
19563
  height: toCssSize(size4)
19476
19564
  });
19477
- return /* @__PURE__ */ jsx152(
19565
+ return /* @__PURE__ */ jsx162(
19478
19566
  SkeletonRoot,
19479
19567
  {
19480
19568
  ref,
@@ -19487,7 +19575,7 @@ var SkeletonAvatar = forwardRef82(function SkeletonAvatar2({ size: size4 = 40, s
19487
19575
  SkeletonAvatar.displayName = "Skeleton.Avatar";
19488
19576
  var SkeletonBadge = forwardRef82(function SkeletonBadge2({ width = 72, style, className, ...props }, ref) {
19489
19577
  const computedStyle = width ? mergeStyle(style, { width: toCssSize(width) }) : style;
19490
- return /* @__PURE__ */ jsx152(
19578
+ return /* @__PURE__ */ jsx162(
19491
19579
  SkeletonRoot,
19492
19580
  {
19493
19581
  ref,
@@ -19517,21 +19605,21 @@ function Spinner({
19517
19605
  ...props
19518
19606
  }) {
19519
19607
  const accessibilityProps = srLabel ? { role: "status", "aria-live": "polite" } : { "aria-hidden": true };
19520
- return /* @__PURE__ */ jsxs72(
19608
+ return /* @__PURE__ */ jsxs82(
19521
19609
  "span",
19522
19610
  {
19523
19611
  ...accessibilityProps,
19524
19612
  className: cn2("inline-flex items-center justify-center text-current", className),
19525
19613
  ...props,
19526
19614
  children: [
19527
- /* @__PURE__ */ jsx162(
19615
+ /* @__PURE__ */ jsx172(
19528
19616
  LoaderCircle,
19529
19617
  {
19530
19618
  "aria-hidden": "true",
19531
19619
  className: cn2("animate-spin motion-reduce:animate-none", sizeClasses[size4])
19532
19620
  }
19533
19621
  ),
19534
- srLabel ? /* @__PURE__ */ jsx162("span", { className: "sr-only", children: srLabel }) : null
19622
+ srLabel ? /* @__PURE__ */ jsx172("span", { className: "sr-only", children: srLabel }) : null
19535
19623
  ]
19536
19624
  }
19537
19625
  );
@@ -19559,7 +19647,7 @@ function DelayedSpinner({
19559
19647
  if (!visible && !keepMounted) {
19560
19648
  return null;
19561
19649
  }
19562
- return /* @__PURE__ */ jsx172(
19650
+ return /* @__PURE__ */ jsx182(
19563
19651
  Spinner,
19564
19652
  {
19565
19653
  className: cn2(!visible ? "opacity-0" : null, className),
@@ -19588,7 +19676,7 @@ var PendingButton = forwardRef92(
19588
19676
  size: spinnerSize,
19589
19677
  ...rest
19590
19678
  } = spinnerProps ?? {};
19591
- return /* @__PURE__ */ jsx182(
19679
+ return /* @__PURE__ */ jsx192(
19592
19680
  DelayedSpinner,
19593
19681
  {
19594
19682
  active: isPending,
@@ -19599,7 +19687,7 @@ var PendingButton = forwardRef92(
19599
19687
  }
19600
19688
  );
19601
19689
  };
19602
- return /* @__PURE__ */ jsxs82(
19690
+ return /* @__PURE__ */ jsxs92(
19603
19691
  Button,
19604
19692
  {
19605
19693
  ref,
@@ -19610,14 +19698,14 @@ var PendingButton = forwardRef92(
19610
19698
  ...props,
19611
19699
  children: [
19612
19700
  spinnerPlacement === "start" ? renderSpinner() : null,
19613
- /* @__PURE__ */ jsx182("span", { "aria-live": "polite", className: "flex items-center justify-center", children: content }),
19701
+ /* @__PURE__ */ jsx192("span", { "aria-live": "polite", className: "flex items-center justify-center", children: content }),
19614
19702
  spinnerPlacement === "end" ? renderSpinner() : null
19615
19703
  ]
19616
19704
  }
19617
19705
  );
19618
19706
  }
19619
19707
  );
19620
- var Switch2 = React82.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx202(
19708
+ var Switch2 = React82.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx212(
19621
19709
  Root4,
19622
19710
  {
19623
19711
  ref,
@@ -19626,7 +19714,7 @@ var Switch2 = React82.forwardRef(({ className, ...props }, ref) => /* @__PURE__
19626
19714
  className
19627
19715
  ),
19628
19716
  ...props,
19629
- children: /* @__PURE__ */ jsx202(
19717
+ children: /* @__PURE__ */ jsx212(
19630
19718
  Thumb,
19631
19719
  {
19632
19720
  className: cn2(
@@ -19638,7 +19726,7 @@ var Switch2 = React82.forwardRef(({ className, ...props }, ref) => /* @__PURE__
19638
19726
  ));
19639
19727
  Switch2.displayName = Root4.displayName;
19640
19728
  var Textarea = React92.forwardRef(({ className, ...props }, ref) => {
19641
- return /* @__PURE__ */ jsx212(
19729
+ return /* @__PURE__ */ jsx222(
19642
19730
  "textarea",
19643
19731
  {
19644
19732
  className: cn2(
@@ -19671,7 +19759,7 @@ var toggleVariants = cva(
19671
19759
  }
19672
19760
  }
19673
19761
  );
19674
- var Toggle2 = React102.forwardRef(({ className, variant, size: size4, ...props }, ref) => /* @__PURE__ */ jsx222(
19762
+ var Toggle2 = React102.forwardRef(({ className, variant, size: size4, ...props }, ref) => /* @__PURE__ */ jsx232(
19675
19763
  Root5,
19676
19764
  {
19677
19765
  ref,
@@ -19698,7 +19786,7 @@ var badgeVariants = cva(
19698
19786
  }
19699
19787
  );
19700
19788
  var Accordion2 = Root24;
19701
- var AccordionItem2 = React112.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx252(
19789
+ var AccordionItem2 = React112.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx262(
19702
19790
  Item3,
19703
19791
  {
19704
19792
  ref,
@@ -19707,7 +19795,7 @@ var AccordionItem2 = React112.forwardRef(({ className, ...props }, ref) => /* @_
19707
19795
  }
19708
19796
  ));
19709
19797
  AccordionItem2.displayName = "AccordionItem";
19710
- var AccordionTrigger2 = React112.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx252(Header, { asChild: true, children: /* @__PURE__ */ jsx252("div", { className: "m-0 flex w-full", children: /* @__PURE__ */ jsx252(
19798
+ var AccordionTrigger2 = React112.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx262(Header, { asChild: true, children: /* @__PURE__ */ jsx262("div", { className: "m-0 flex w-full", children: /* @__PURE__ */ jsx262(
19711
19799
  Trigger22,
19712
19800
  {
19713
19801
  ref,
@@ -19717,7 +19805,7 @@ var AccordionTrigger2 = React112.forwardRef(({ className, children, ...props },
19717
19805
  }
19718
19806
  ) }) }));
19719
19807
  AccordionTrigger2.displayName = Trigger22.displayName;
19720
- var AccordionContent2 = React112.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx252(
19808
+ var AccordionContent2 = React112.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx262(
19721
19809
  Content25,
19722
19810
  {
19723
19811
  ref,
@@ -19728,7 +19816,7 @@ var AccordionContent2 = React112.forwardRef(({ className, children, ...props },
19728
19816
  }
19729
19817
  ));
19730
19818
  AccordionContent2.displayName = Content25.displayName;
19731
- var SectionAccordionItem = React122.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx262(
19819
+ var SectionAccordionItem = React122.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx272(
19732
19820
  Item3,
19733
19821
  {
19734
19822
  ref,
@@ -19737,7 +19825,7 @@ var SectionAccordionItem = React122.forwardRef(({ className, ...props }, ref) =>
19737
19825
  }
19738
19826
  ));
19739
19827
  SectionAccordionItem.displayName = "SectionAccordionItem";
19740
- var SectionAccordionTrigger = React122.forwardRef(({ className, title, description, invalid, ...props }, ref) => /* @__PURE__ */ jsx262(Header, { asChild: true, children: /* @__PURE__ */ jsx262("div", { className: "m-0 flex w-full", children: /* @__PURE__ */ jsxs112(
19828
+ var SectionAccordionTrigger = React122.forwardRef(({ className, title, description, invalid, ...props }, ref) => /* @__PURE__ */ jsx272(Header, { asChild: true, children: /* @__PURE__ */ jsx272("div", { className: "m-0 flex w-full", children: /* @__PURE__ */ jsxs122(
19741
19829
  Trigger22,
19742
19830
  {
19743
19831
  ref,
@@ -19749,19 +19837,19 @@ var SectionAccordionTrigger = React122.forwardRef(({ className, title, descripti
19749
19837
  ),
19750
19838
  ...props,
19751
19839
  children: [
19752
- /* @__PURE__ */ jsxs112("div", { className: "flex flex-col gap-0.5", children: [
19753
- /* @__PURE__ */ jsxs112("span", { className: "flex items-center gap-2", children: [
19840
+ /* @__PURE__ */ jsxs122("div", { className: "flex flex-col gap-0.5", children: [
19841
+ /* @__PURE__ */ jsxs122("span", { className: "flex items-center gap-2", children: [
19754
19842
  title,
19755
- invalid && /* @__PURE__ */ jsx262("span", { className: "rounded bg-destructive/10 px-1.5 py-0.5 text-[10px] font-medium text-destructive", children: "Fix errors" })
19843
+ invalid && /* @__PURE__ */ jsx272("span", { className: "rounded bg-destructive/10 px-1.5 py-0.5 text-[10px] font-medium text-destructive", children: "Fix errors" })
19756
19844
  ] }),
19757
- description && /* @__PURE__ */ jsx262("span", { className: "text-xs font-normal text-muted-foreground", children: description })
19845
+ description && /* @__PURE__ */ jsx272("span", { className: "text-xs font-normal text-muted-foreground", children: description })
19758
19846
  ] }),
19759
- /* @__PURE__ */ jsx262(ChevronDown, { className: "h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200" })
19847
+ /* @__PURE__ */ jsx272(ChevronDown, { className: "h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200" })
19760
19848
  ]
19761
19849
  }
19762
19850
  ) }) }));
19763
19851
  SectionAccordionTrigger.displayName = "SectionAccordionTrigger";
19764
- var SectionAccordionContent = React122.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx262(
19852
+ var SectionAccordionContent = React122.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx272(
19765
19853
  Content25,
19766
19854
  {
19767
19855
  ref,
@@ -19771,11 +19859,11 @@ var SectionAccordionContent = React122.forwardRef(({ className, children, ...pro
19771
19859
  className
19772
19860
  ),
19773
19861
  ...props,
19774
- children: /* @__PURE__ */ jsx262("div", { className: "px-4 pb-4 pt-0", children })
19862
+ children: /* @__PURE__ */ jsx272("div", { className: "px-4 pb-4 pt-0", children })
19775
19863
  }
19776
19864
  ));
19777
19865
  SectionAccordionContent.displayName = "SectionAccordionContent";
19778
- var TabsList2 = React152.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx312(
19866
+ var TabsList2 = React152.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx322(
19779
19867
  List,
19780
19868
  {
19781
19869
  ref,
@@ -19787,7 +19875,7 @@ var TabsList2 = React152.forwardRef(({ className, ...props }, ref) => /* @__PURE
19787
19875
  }
19788
19876
  ));
19789
19877
  TabsList2.displayName = List.displayName;
19790
- var TabsTrigger2 = React152.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx312(
19878
+ var TabsTrigger2 = React152.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx322(
19791
19879
  Trigger3,
19792
19880
  {
19793
19881
  ref,
@@ -19799,7 +19887,7 @@ var TabsTrigger2 = React152.forwardRef(({ className, ...props }, ref) => /* @__P
19799
19887
  }
19800
19888
  ));
19801
19889
  TabsTrigger2.displayName = Trigger3.displayName;
19802
- var TabsContent2 = React152.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx312(
19890
+ var TabsContent2 = React152.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx322(
19803
19891
  Content4,
19804
19892
  {
19805
19893
  ref,