canopycms 0.0.56 → 0.0.58

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 (272) hide show
  1. package/dist/ai/json-to-markdown.js +74 -3
  2. package/dist/ai/json-to-markdown.js.map +1 -1
  3. package/dist/api/__test__/mock-client.d.ts +9 -5
  4. package/dist/api/__test__/mock-client.d.ts.map +1 -1
  5. package/dist/api/__test__/mock-client.js +15 -7
  6. package/dist/api/__test__/mock-client.js.map +1 -1
  7. package/dist/api/assets.d.ts +100 -36
  8. package/dist/api/assets.d.ts.map +1 -1
  9. package/dist/api/assets.js +338 -51
  10. package/dist/api/assets.js.map +1 -1
  11. package/dist/api/branch.d.ts +6 -0
  12. package/dist/api/branch.d.ts.map +1 -1
  13. package/dist/api/branch.js +63 -19
  14. package/dist/api/branch.js.map +1 -1
  15. package/dist/api/client.d.ts +16 -5
  16. package/dist/api/client.d.ts.map +1 -1
  17. package/dist/api/client.js +24 -6
  18. package/dist/api/client.js.map +1 -1
  19. package/dist/api/content.d.ts +2 -2
  20. package/dist/api/entries.d.ts +4 -4
  21. package/dist/api/entries.d.ts.map +1 -1
  22. package/dist/api/entries.js +10 -2
  23. package/dist/api/entries.js.map +1 -1
  24. package/dist/api/index.d.ts +1 -1
  25. package/dist/api/index.d.ts.map +1 -1
  26. package/dist/api/index.js.map +1 -1
  27. package/dist/api/route-builder.d.ts +9 -0
  28. package/dist/api/route-builder.d.ts.map +1 -1
  29. package/dist/api/route-builder.js +1 -0
  30. package/dist/api/route-builder.js.map +1 -1
  31. package/dist/api/schema.d.ts +4 -4
  32. package/dist/api/types.d.ts +11 -1
  33. package/dist/api/types.d.ts.map +1 -1
  34. package/dist/assets/asset-prefixes.d.ts +31 -0
  35. package/dist/assets/asset-prefixes.d.ts.map +1 -0
  36. package/dist/assets/asset-prefixes.js +20 -0
  37. package/dist/assets/asset-prefixes.js.map +1 -0
  38. package/dist/assets/asset-src.d.ts +23 -0
  39. package/dist/assets/asset-src.d.ts.map +1 -0
  40. package/dist/assets/asset-src.js +28 -0
  41. package/dist/assets/asset-src.js.map +1 -0
  42. package/dist/assets/asset-url.d.ts +35 -0
  43. package/dist/assets/asset-url.d.ts.map +1 -0
  44. package/dist/assets/asset-url.js +77 -0
  45. package/dist/assets/asset-url.js.map +1 -0
  46. package/dist/assets/factory.d.ts +18 -0
  47. package/dist/assets/factory.d.ts.map +1 -0
  48. package/dist/assets/factory.js +42 -0
  49. package/dist/assets/factory.js.map +1 -0
  50. package/dist/assets/finalize.d.ts +36 -0
  51. package/dist/assets/finalize.d.ts.map +1 -0
  52. package/dist/assets/finalize.js +72 -0
  53. package/dist/assets/finalize.js.map +1 -0
  54. package/dist/assets/index.d.ts +20 -0
  55. package/dist/assets/index.d.ts.map +1 -0
  56. package/dist/assets/index.js +19 -0
  57. package/dist/assets/index.js.map +1 -0
  58. package/dist/assets/keys.d.ts +56 -0
  59. package/dist/assets/keys.d.ts.map +1 -0
  60. package/dist/assets/keys.js +88 -0
  61. package/dist/assets/keys.js.map +1 -0
  62. package/dist/assets/pipeline.d.ts +50 -0
  63. package/dist/assets/pipeline.d.ts.map +1 -0
  64. package/dist/assets/pipeline.js +202 -0
  65. package/dist/assets/pipeline.js.map +1 -0
  66. package/dist/assets/store-local.d.ts +84 -0
  67. package/dist/assets/store-local.d.ts.map +1 -0
  68. package/dist/assets/store-local.js +254 -0
  69. package/dist/assets/store-local.js.map +1 -0
  70. package/dist/assets/store-s3.d.ts +71 -0
  71. package/dist/assets/store-s3.d.ts.map +1 -0
  72. package/dist/assets/store-s3.js +183 -0
  73. package/dist/assets/store-s3.js.map +1 -0
  74. package/dist/assets/svg-sanitizer.d.ts +37 -0
  75. package/dist/assets/svg-sanitizer.d.ts.map +1 -0
  76. package/dist/assets/svg-sanitizer.js +222 -0
  77. package/dist/assets/svg-sanitizer.js.map +1 -0
  78. package/dist/assets/transform-directives.d.ts +97 -0
  79. package/dist/assets/transform-directives.d.ts.map +1 -0
  80. package/dist/assets/transform-directives.js +267 -0
  81. package/dist/assets/transform-directives.js.map +1 -0
  82. package/dist/assets/transform.d.ts +51 -0
  83. package/dist/assets/transform.d.ts.map +1 -0
  84. package/dist/assets/transform.js +190 -0
  85. package/dist/assets/transform.js.map +1 -0
  86. package/dist/assets/types.d.ts +82 -0
  87. package/dist/assets/types.d.ts.map +1 -0
  88. package/dist/assets/types.js +10 -0
  89. package/dist/assets/types.js.map +1 -0
  90. package/dist/authorization/groups/schema.d.ts +2 -2
  91. package/dist/authorization/permissions/schema.d.ts +2 -2
  92. package/dist/branch-metadata.d.ts +71 -6
  93. package/dist/branch-metadata.d.ts.map +1 -1
  94. package/dist/branch-metadata.js +132 -116
  95. package/dist/branch-metadata.js.map +1 -1
  96. package/dist/branch-registry.d.ts +78 -9
  97. package/dist/branch-registry.d.ts.map +1 -1
  98. package/dist/branch-registry.js +155 -29
  99. package/dist/branch-registry.js.map +1 -1
  100. package/dist/branch-schema-cache.d.ts +126 -11
  101. package/dist/branch-schema-cache.d.ts.map +1 -1
  102. package/dist/branch-schema-cache.js +208 -58
  103. package/dist/branch-schema-cache.js.map +1 -1
  104. package/dist/cli/generate-ai-content.js +1993 -1506
  105. package/dist/cli/init.js +16 -4
  106. package/dist/cli/migrate.d.ts.map +1 -1
  107. package/dist/cli/migrate.js +25 -0
  108. package/dist/cli/migrate.js.map +1 -1
  109. package/dist/cli/sync.js +5 -5
  110. package/dist/cli/sync.js.map +1 -1
  111. package/dist/comment-store.d.ts +45 -15
  112. package/dist/comment-store.d.ts.map +1 -1
  113. package/dist/comment-store.js +80 -101
  114. package/dist/comment-store.js.map +1 -1
  115. package/dist/config/helpers.d.ts.map +1 -1
  116. package/dist/config/helpers.js +2 -1
  117. package/dist/config/helpers.js.map +1 -1
  118. package/dist/config/index.d.ts +2 -2
  119. package/dist/config/index.d.ts.map +1 -1
  120. package/dist/config/index.js +1 -1
  121. package/dist/config/index.js.map +1 -1
  122. package/dist/config/schemas/config.d.ts +10 -0
  123. package/dist/config/schemas/config.d.ts.map +1 -1
  124. package/dist/config/schemas/field.d.ts +38 -3
  125. package/dist/config/schemas/field.d.ts.map +1 -1
  126. package/dist/config/schemas/field.js +18 -0
  127. package/dist/config/schemas/field.js.map +1 -1
  128. package/dist/config/schemas/media.d.ts +8 -0
  129. package/dist/config/schemas/media.d.ts.map +1 -1
  130. package/dist/config/schemas/media.js +9 -0
  131. package/dist/config/schemas/media.js.map +1 -1
  132. package/dist/config/types.d.ts +43 -3
  133. package/dist/config/types.d.ts.map +1 -1
  134. package/dist/config/types.js +4 -1
  135. package/dist/config/types.js.map +1 -1
  136. package/dist/content-index-generation.d.ts +40 -4
  137. package/dist/content-index-generation.d.ts.map +1 -1
  138. package/dist/content-index-generation.js +70 -73
  139. package/dist/content-index-generation.js.map +1 -1
  140. package/dist/content-store.d.ts +63 -0
  141. package/dist/content-store.d.ts.map +1 -1
  142. package/dist/content-store.js +421 -194
  143. package/dist/content-store.js.map +1 -1
  144. package/dist/editor/CanopyEditor.d.ts.map +1 -1
  145. package/dist/editor/CanopyEditor.js +1 -1
  146. package/dist/editor/CanopyEditor.js.map +1 -1
  147. package/dist/editor/Editor.d.ts +2 -0
  148. package/dist/editor/Editor.d.ts.map +1 -1
  149. package/dist/editor/Editor.js +82 -80
  150. package/dist/editor/Editor.js.map +1 -1
  151. package/dist/editor/FormRenderer.d.ts.map +1 -1
  152. package/dist/editor/FormRenderer.js +9 -0
  153. package/dist/editor/FormRenderer.js.map +1 -1
  154. package/dist/editor/components/EditorSidebar.d.ts +6 -1
  155. package/dist/editor/components/EditorSidebar.d.ts.map +1 -1
  156. package/dist/editor/components/EditorSidebar.js +4 -3
  157. package/dist/editor/components/EditorSidebar.js.map +1 -1
  158. package/dist/editor/context/AssetContext.d.ts +25 -0
  159. package/dist/editor/context/AssetContext.d.ts.map +1 -0
  160. package/dist/editor/context/AssetContext.js +26 -0
  161. package/dist/editor/context/AssetContext.js.map +1 -0
  162. package/dist/editor/context/index.d.ts +1 -0
  163. package/dist/editor/context/index.d.ts.map +1 -1
  164. package/dist/editor/context/index.js +1 -0
  165. package/dist/editor/context/index.js.map +1 -1
  166. package/dist/editor/fields/ImageField.d.ts +22 -0
  167. package/dist/editor/fields/ImageField.d.ts.map +1 -0
  168. package/dist/editor/fields/ImageField.js +100 -0
  169. package/dist/editor/fields/ImageField.js.map +1 -0
  170. package/dist/editor/fields/MarkdownField.d.ts.map +1 -1
  171. package/dist/editor/fields/MarkdownField.js +30 -4
  172. package/dist/editor/fields/MarkdownField.js.map +1 -1
  173. package/dist/editor/fields/MdxImageDialog.d.ts +16 -0
  174. package/dist/editor/fields/MdxImageDialog.d.ts.map +1 -0
  175. package/dist/editor/fields/MdxImageDialog.js +73 -0
  176. package/dist/editor/fields/MdxImageDialog.js.map +1 -0
  177. package/dist/editor/media/AssetCard.d.ts +21 -0
  178. package/dist/editor/media/AssetCard.d.ts.map +1 -0
  179. package/dist/editor/media/AssetCard.js +41 -0
  180. package/dist/editor/media/AssetCard.js.map +1 -0
  181. package/dist/editor/media/CropStep.d.ts +26 -0
  182. package/dist/editor/media/CropStep.d.ts.map +1 -0
  183. package/dist/editor/media/CropStep.js +38 -0
  184. package/dist/editor/media/CropStep.js.map +1 -0
  185. package/dist/editor/media/MediaLibrary.d.ts +22 -0
  186. package/dist/editor/media/MediaLibrary.d.ts.map +1 -0
  187. package/dist/editor/media/MediaLibrary.js +17 -0
  188. package/dist/editor/media/MediaLibrary.js.map +1 -0
  189. package/dist/editor/media/MediaLibraryBody.d.ts +17 -0
  190. package/dist/editor/media/MediaLibraryBody.d.ts.map +1 -0
  191. package/dist/editor/media/MediaLibraryBody.js +133 -0
  192. package/dist/editor/media/MediaLibraryBody.js.map +1 -0
  193. package/dist/editor/media/crop-math.d.ts +37 -0
  194. package/dist/editor/media/crop-math.d.ts.map +1 -0
  195. package/dist/editor/media/crop-math.js +62 -0
  196. package/dist/editor/media/crop-math.js.map +1 -0
  197. package/dist/editor/media/upload-asset.d.ts +31 -0
  198. package/dist/editor/media/upload-asset.d.ts.map +1 -0
  199. package/dist/editor/media/upload-asset.js +56 -0
  200. package/dist/editor/media/upload-asset.js.map +1 -0
  201. package/dist/editor/media/upload-constants.d.ts +27 -0
  202. package/dist/editor/media/upload-constants.d.ts.map +1 -0
  203. package/dist/editor/media/upload-constants.js +40 -0
  204. package/dist/editor/media/upload-constants.js.map +1 -0
  205. package/dist/editor/media/useAssetUpload.d.ts +19 -0
  206. package/dist/editor/media/useAssetUpload.d.ts.map +1 -0
  207. package/dist/editor/media/useAssetUpload.js +53 -0
  208. package/dist/editor/media/useAssetUpload.js.map +1 -0
  209. package/dist/editor/media/xhr-upload.d.ts +20 -0
  210. package/dist/editor/media/xhr-upload.d.ts.map +1 -0
  211. package/dist/editor/media/xhr-upload.js +42 -0
  212. package/dist/editor/media/xhr-upload.js.map +1 -0
  213. package/dist/editor/theme.d.ts +2 -1
  214. package/dist/editor/theme.d.ts.map +1 -1
  215. package/dist/editor/theme.js +1 -0
  216. package/dist/editor/theme.js.map +1 -1
  217. package/dist/entry-schema.d.ts +19 -0
  218. package/dist/entry-schema.d.ts.map +1 -1
  219. package/dist/entry-schema.js.map +1 -1
  220. package/dist/git-manager.d.ts +15 -10
  221. package/dist/git-manager.d.ts.map +1 -1
  222. package/dist/git-manager.js +16 -11
  223. package/dist/git-manager.js.map +1 -1
  224. package/dist/http/handler.d.ts +5 -2
  225. package/dist/http/handler.d.ts.map +1 -1
  226. package/dist/http/handler.js +13 -4
  227. package/dist/http/handler.js.map +1 -1
  228. package/dist/http/index.d.ts +2 -2
  229. package/dist/http/index.d.ts.map +1 -1
  230. package/dist/http/index.js +1 -1
  231. package/dist/http/index.js.map +1 -1
  232. package/dist/http/router.d.ts +14 -1
  233. package/dist/http/router.d.ts.map +1 -1
  234. package/dist/http/router.js +4 -1
  235. package/dist/http/router.js.map +1 -1
  236. package/dist/http/types.d.ts +40 -0
  237. package/dist/http/types.d.ts.map +1 -1
  238. package/dist/http/types.js +9 -0
  239. package/dist/http/types.js.map +1 -1
  240. package/dist/index.d.ts +3 -0
  241. package/dist/index.d.ts.map +1 -1
  242. package/dist/index.js +4 -0
  243. package/dist/index.js.map +1 -1
  244. package/dist/resource-generation.d.ts +54 -0
  245. package/dist/resource-generation.d.ts.map +1 -0
  246. package/dist/resource-generation.js +156 -0
  247. package/dist/resource-generation.js.map +1 -0
  248. package/dist/schema/schema-store.d.ts +31 -4
  249. package/dist/schema/schema-store.d.ts.map +1 -1
  250. package/dist/schema/schema-store.js +47 -8
  251. package/dist/schema/schema-store.js.map +1 -1
  252. package/dist/server.d.ts +45 -0
  253. package/dist/server.d.ts.map +1 -1
  254. package/dist/server.js +41 -0
  255. package/dist/server.js.map +1 -1
  256. package/dist/sync-core.js +2 -2
  257. package/dist/sync-core.js.map +1 -1
  258. package/dist/utils/occ-json-write.d.ts +100 -0
  259. package/dist/utils/occ-json-write.d.ts.map +1 -0
  260. package/dist/utils/occ-json-write.js +234 -0
  261. package/dist/utils/occ-json-write.js.map +1 -0
  262. package/dist/validation/entry-validator.d.ts.map +1 -1
  263. package/dist/validation/entry-validator.js +56 -1
  264. package/dist/validation/entry-validator.js.map +1 -1
  265. package/dist/worker/cms-worker.d.ts.map +1 -1
  266. package/dist/worker/cms-worker.js +21 -3
  267. package/dist/worker/cms-worker.js.map +1 -1
  268. package/package.json +13 -1
  269. package/dist/asset-store.d.ts +0 -32
  270. package/dist/asset-store.d.ts.map +0 -1
  271. package/dist/asset-store.js +0 -85
  272. package/dist/asset-store.js.map +0 -1
@@ -9,6 +9,7 @@ import { BlockField } from './fields/BlockField.js';
9
9
  import { SelectField } from './fields/SelectField.js';
10
10
  import { ReferenceField } from './fields/ReferenceField.js';
11
11
  import { CodeField } from './fields/CodeField.js';
12
+ import { ImageField } from './fields/ImageField.js';
12
13
  import { ObjectField } from './fields/ObjectField.js';
13
14
  import { InlineGroupField } from './fields/InlineGroupField.js';
14
15
  import { formatCanopyPath, normalizeCanopyPath } from './canopy-path.js';
@@ -104,6 +105,14 @@ export const FormRenderer = ({ fields, value, onChange, customRenderers, branch
104
105
  : []
105
106
  : (currentValue ?? ''), multiple: isMulti, onChange: (next) => update(next), dataCanopyField: normalizeCanopyPath(path) }, fieldKey(path)));
106
107
  }
108
+ case 'image': {
109
+ const imageField = field;
110
+ return wrapWithComments(_jsx(ImageField, { id: fieldId, label: label, value: currentValue, onChange: (next) => update(next), aspect: imageField.aspect, altOptional: imageField.altOptional, dataCanopyField: canopyPath, errors: {
111
+ src: fieldErrors?.[`${canopyPath}.src`],
112
+ alt: fieldErrors?.[`${canopyPath}.alt`],
113
+ crop: fieldErrors?.[`${canopyPath}.crop`],
114
+ } }, fieldKey(path)));
115
+ }
107
116
  case 'block': {
108
117
  const blockField = field;
109
118
  return wrapWithComments(_jsx(BlockField, { label: label, templates: blockField.templates, value: (Array.isArray(currentValue) ? currentValue : []), onChange: (next) => update(next), renderField: renderField, path: path, dataCanopyField: normalizeCanopyPath(path) }, fieldKey(path)));
@@ -1 +1 @@
1
- {"version":3,"file":"FormRenderer.js","sourceRoot":"","sources":["../../src/editor/FormRenderer.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAIZ,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACxE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAWrE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAsB,MAAM,qBAAqB,CAAA;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAExD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AAiBvE,MAAM,gBAAgB,GAAG,CACvB,OAAqE,EAC5B,EAAE;IAC3C,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAA;IACvB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;AAC3F,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,CAAC,IAA4B,EAAU,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;AAqCjF,MAAM,CAAC,MAAM,YAAY,GAAgC,CAAC,EACxD,MAAM,EACN,KAAK,EACL,QAAQ,EACR,eAAe,EACf,MAAM,GAAG,MAAM,EACf,QAAQ,GAAG,EAAE,EACb,gBAAgB,EAChB,aAAa,EACb,UAAU,GAAG,KAAK,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,GAAG,KAAK,EACtB,WAAW,GACZ,EAAE,EAAE;IACH,+DAA+D;IAC/D,sBAAsB,CAAC;QACrB,KAAK;QACL,MAAM;QACN,MAAM;QACN,qBAAqB;QACrB,oBAAoB;KACrB,CAAC,CAAA;IAEF,yEAAyE;IACzE,4EAA4E;IAC5E,4EAA4E;IAC5E,4CAA4C;IAC5C,MAAM,WAAW,GAAG,CAClB,KAAkB,EAClB,YAAqB,EACrB,MAA4B,EAC5B,IAA4B,EAC5B,EAAE;QACF,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;QACrE,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAA;QACtD,OAAO,CACL,MAAC,KAAK,IAAsB,GAAG,EAAE,CAAC,aAC/B,OAAO,EACP,KAAK,IAAI,CACR,KAAC,IAAI,IAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,KAAK,iBAAc,eAAe,QAAQ,CAAC,IAAI,CAAC,EAAE,YACjE,KAAK,GACD,CACR,KANS,QAAQ,CAAC,IAAI,CAAC,CAOlB,CACT,CAAA;IACH,CAAC,CAAA;IAED,MAAM,kBAAkB,GAAG,CACzB,KAAkB,EAClB,YAAqB,EACrB,MAA4B,EAC5B,IAA4B,EAC5B,EAAE;QACF,MAAM,OAAO,GAAG,SAAS,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,EAAE,CAAA;QACzE,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAA;QAE5C,0CAA0C;QAC1C,MAAM,YAAY,GAChB,gBAAgB,IAAI,YAAY;YAC9B,CAAC,CAAC,QAAQ,CAAC,MAAM,CACb,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,IAAI,KAAK,OAAO;gBACvB,MAAM,CAAC,SAAS,KAAK,gBAAgB;gBACrC,MAAM,CAAC,UAAU,KAAK,UAAU,CACnC;YACH,CAAC,CAAC,EAAE,CAAA;QAER,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC5C,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,aAAa,GAAG,CACpB,wBACG,MAAM,CAAC;oBACN,KAAK;oBACL,KAAK,EAAE,YAAY;oBACnB,QAAQ,EAAE,MAAM;oBAChB,IAAI;oBACJ,EAAE,EAAE,OAAO;iBACZ,CAAC,IAPM,QAAQ,CAAC,IAAI,CAAC,CAQlB,CACP,CAAA;YAED,2DAA2D;YAC3D,IAAI,gBAAgB,IAAI,aAAa,IAAI,YAAY,IAAI,eAAe,EAAE,CAAC;gBACzE,OAAO,CACL,KAAC,YAAY,IAEX,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,gBAAgB,EAC3B,OAAO,EAAE,YAAY,EACrB,SAAS,EAAE,gBAAgB,KAAK,UAAU,EAC1C,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,iBAAiB,EAAE,iBAAiB,YAEnC,aAAa,IAXT,QAAQ,CAAC,IAAI,CAAC,CAYN,CAChB,CAAA;YACH,CAAC;YAED,OAAO,aAAa,CAAA;QACtB,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAA;QAEvC,6DAA6D;QAC7D,MAAM,gBAAgB,GAAG,CAAC,aAA8B,EAAE,EAAE;YAC1D,IAAI,gBAAgB,IAAI,aAAa,IAAI,YAAY,IAAI,eAAe,EAAE,CAAC;gBACzE,OAAO,CACL,KAAC,YAAY,IACX,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,gBAAgB,EAC3B,OAAO,EAAE,YAAY,EACrB,SAAS,EAAE,gBAAgB,KAAK,UAAU,EAC1C,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,iBAAiB,EAAE,iBAAiB,YAEnC,aAAa,GACD,CAChB,CAAA;YACH,CAAC;YACD,OAAO,aAAa,CAAA;QACtB,CAAC,CAAA;QAED,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,QAAQ;gBACX,OAAO,gBAAgB,CACrB,KAAC,SAAS,IAER,EAAE,EAAE,OAAO,EACX,KAAK,EAAE,KAAK,EACZ,KAAK,EAAG,YAAuB,IAAI,EAAE,EACrC,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,mBAAmB,CAAC,IAAI,CAAC,IALrC,QAAQ,CAAC,IAAI,CAAC,CAMnB,CACH,CAAA;YACH,KAAK,SAAS;gBACZ,OAAO,gBAAgB,CACrB,KAAC,WAAW,IAEV,EAAE,EAAE,OAAO,EACX,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,EAC5B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EACnC,eAAe,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAC1C,MAAM,EAAE,gBAAgB,KAAK,CAAC,IAAI,EAAE,IAN/B,QAAQ,CAAC,IAAI,CAAC,CAOnB,CACH,CAAA;YACH,KAAK,UAAU,CAAC;YAChB,KAAK,KAAK;gBACR,OAAO,gBAAgB,CACrB,KAAC,aAAa,IAEZ,EAAE,EAAE,OAAO,EACX,KAAK,EAAE,KAAK,EACZ,KAAK,EAAG,YAAuB,IAAI,EAAE,EACrC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAC1B,eAAe,EAAE,mBAAmB,CAAC,IAAI,CAAC,IALrC,QAAQ,CAAC,IAAI,CAAC,CAMnB,CACH,CAAA;YACH,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,WAAW,GAAG,KAA0B,CAAA;gBAC9C,MAAM,OAAO,GAAG,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;gBACrD,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;gBACzC,OAAO,gBAAgB,CACrB,KAAC,WAAW,IAEV,EAAE,EAAE,OAAO,EACX,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,KAAK,EACH,OAAO;wBACL,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;4BAC3B,CAAC,CAAE,YAAyB;4BAC5B,CAAC,CAAC,EAAE;wBACN,CAAC,CAAC,CAAE,YAAuB,IAAI,EAAE,CAAC,EAEtC,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAChC,eAAe,EAAE,mBAAmB,CAAC,IAAI,CAAC,IAbrC,QAAQ,CAAC,IAAI,CAAC,CAcnB,CACH,CAAA;YACH,CAAC;YACD,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,cAAc,GAAG,KAA6B,CAAA;gBACpD,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO;oBAC1C,CAAC,CAAC,gBAAgB,CAAC,cAAc,CAAC,OAAO,CAAC;oBAC1C,CAAC,CAAC,SAAS,CAAA;gBACb,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;gBAC5C,OAAO,gBAAgB,CACrB,KAAC,cAAc,IAEb,EAAE,EAAE,OAAO,EACX,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;wBACpC,KAAK,EAAE,GAAG,CAAC,KAAK;wBAChB,KAAK,EAAE,GAAG,CAAC,KAAK;qBACjB,CAAC,CAAC,EACH,WAAW,EAAE,cAAc,CAAC,WAAW,EACvC,UAAU,EAAE,cAAc,CAAC,UAAU,EACrC,YAAY,EAAE,cAAc,CAAC,YAAY,EACzC,MAAM,EAAE,MAAM,EACd,KAAK,EACH,OAAO;wBACL,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;4BAC3B,CAAC,CAAE,YAAyB;4BAC5B,CAAC,CAAC,EAAE;wBACN,CAAC,CAAC,CAAE,YAAuB,IAAI,EAAE,CAAC,EAEtC,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAChC,eAAe,EAAE,mBAAmB,CAAC,IAAI,CAAC,IApBrC,QAAQ,CAAC,IAAI,CAAC,CAqBnB,CACH,CAAA;YACH,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,UAAU,GAAG,KAAyB,CAAA;gBAC5C,OAAO,gBAAgB,CACrB,KAAC,UAAU,IAET,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,UAAU,CAAC,SAAS,EAC/B,KAAK,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAoB,EAC3E,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAChC,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,mBAAmB,CAAC,IAAI,CAAC,IAPrC,QAAQ,CAAC,IAAI,CAAC,CAQnB,CACH,CAAA;YACH,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,WAAW,GAAG,KAA0B,CAAA;gBAC9C,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;oBACrB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;wBACvC,CAAC,CAAE,YAA0C;wBAC7C,CAAC,CAAC,EAAE,CAAA;oBACN,OAAO,CACL,KAAC,KAAK,IAAsB,UAAU,QAAC,MAAM,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,YACnE,MAAC,KAAK,IAAC,GAAG,EAAC,IAAI,aACb,MAAC,KAAK,IAAC,OAAO,EAAC,eAAe,aAC5B,KAAC,IAAI,IAAC,IAAI,EAAC,IAAI,EAAC,EAAE,EAAE,GAAG,YACpB,KAAK,GACD,EACP,KAAC,MAAM,IACL,IAAI,EAAC,IAAI,EACT,OAAO,EAAC,OAAO,EACf,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,EAAE,EAA6B,CAAC,CAAC,yBAGzD,IACH,EACR,MAAC,KAAK,IAAC,GAAG,EAAC,IAAI,aACZ,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CACxB,KAAC,KAAK,IAAgC,UAAU,QAAC,MAAM,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,YAC7E,MAAC,KAAK,IAAC,GAAG,EAAC,IAAI,aACb,MAAC,KAAK,IAAC,OAAO,EAAC,eAAe,aAC5B,MAAC,IAAI,IAAC,IAAI,EAAC,IAAI,EAAC,EAAE,EAAE,GAAG,aACpB,KAAK,QAAI,GAAG,GAAG,CAAC,IACZ,EACP,KAAC,MAAM,IACL,IAAI,EAAC,IAAI,EACT,OAAO,EAAC,QAAQ,EAChB,KAAK,EAAC,KAAK,EACX,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,uBAGjD,IACH,EACR,KAAC,WAAW,IACV,KAAK,EAAE,WAAW,CAAC,KAAK,EACxB,MAAM,EAAE,WAAW,CAAC,MAAM,EAC1B,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;4DACjB,MAAM,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC,CAAA;4DAC5B,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;4DACrB,MAAM,CAAC,SAAS,CAAC,CAAA;wDACnB,CAAC,EACD,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EACpB,eAAe,EAAE,mBAAmB,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,GACpD,IACI,IA5BE,QAAQ,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,CA6B5B,CACT,CAAC,EACD,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CACrB,KAAC,IAAI,IAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,QAAQ,sDAEnB,CACR,IACK,IACF,IArDE,QAAQ,CAAC,IAAI,CAAC,CAsDlB,CACT,CAAA;gBACH,CAAC;gBAED,OAAO,CACL,KAAC,WAAW,IAEV,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,WAAW,CAAC,MAAM,EAC1B,KAAK,EAAE,YAAmD,EAC1D,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAChC,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,mBAAmB,CAAC,IAAI,CAAC,IAPrC,QAAQ,CAAC,IAAI,CAAC,CAQnB,CACH,CAAA;YACH,CAAC;YACD,KAAK,MAAM;gBACT,OAAO,gBAAgB,CACrB,KAAC,SAAS,IAER,EAAE,EAAE,OAAO,EACX,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAC3D,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAC1B,eAAe,EAAE,mBAAmB,CAAC,IAAI,CAAC,IALrC,QAAQ,CAAC,IAAI,CAAC,CAMnB,CACH,CAAA;YACH;gBACE,OAAO,CACL,MAAC,IAAI,IAAsB,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,QAAQ,oCACzB,KAAK,CAAC,IAAI,KADrB,QAAQ,CAAC,IAAI,CAAC,CAElB,CACR,CAAA;QACL,CAAC;IACH,CAAC,CAAA;IAED,OAAO,CACL,MAAC,KAAK,IAAC,GAAG,EAAC,IAAI,yCAEZ,gBAAgB,IAAI,aAAa,IAAI,YAAY,IAAI,eAAe,IAAI,CACvE,KAAC,aAAa,IACZ,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,gBAAgB,EAC3B,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,iBAAiB,EAAE,iBAAiB,GACpC,CACH,EAEA,cAAc,IAAI,CACjB,KAAC,KAAK,IACJ,IAAI,EAAE,KAAC,cAAc,IAAC,IAAI,EAAE,EAAE,GAAI,EAClC,KAAK,EAAC,QAAQ,EACd,OAAO,EAAC,OAAO,EACf,KAAK,EAAC,uCAAuC,iBACjC,gBAAgB,iJAItB,CACT,EAEA,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CACrD,KAAC,KAAK,IACJ,IAAI,EAAE,KAAC,eAAe,IAAC,IAAI,EAAE,EAAE,GAAI,EACnC,KAAK,EAAC,KAAK,EACX,OAAO,EAAC,OAAO,EACf,KAAK,EAAC,gCAAgC,iBAC1B,kBAAkB,YAE9B,KAAC,KAAK,IAAC,GAAG,EAAE,CAAC,YACV,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CACpD,MAAC,IAAI,IAAC,IAAI,EAAC,IAAI,aACZ,IAAI,QAAI,OAAO,KADG,IAAI,CAElB,CACR,CAAC,GACI,GACF,CACT,EAEA,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACpB,+FAA+F;gBAC/F,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC3B,MAAM,UAAU,GAAG,KAA+B,CAAA;oBAClD,OAAO,CACL,wBACE,KAAC,gBAAgB,IACf,KAAK,EAAE,UAAU,CAAC,KAAK,EACvB,WAAW,EAAE,UAAU,CAAC,WAAW,EACnC,MAAM,EAAE,UAAU,CAAC,MAAM,EACzB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,EAAE,GACR,IATM,SAAS,UAAU,CAAC,IAAI,EAAE,CAU9B,CACP,CAAA;gBACH,CAAC;gBAED,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBAC7B,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBACzB,OAAO,CACL,wBACG,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,IAD5E,QAAQ,CAAC,IAAI,CAAC,CAElB,CACP,CAAA;YACH,CAAC,CAAC,IACI,CACT,CAAA;AACH,CAAC,CAAA;AAED,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"FormRenderer.js","sourceRoot":"","sources":["../../src/editor/FormRenderer.tsx"],"names":[],"mappings":"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"}
@@ -39,6 +39,10 @@ export interface EditorSidebarProps {
39
39
  * Callback when group manager should be opened.
40
40
  */
41
41
  onGroupManagerOpen: () => void;
42
+ /**
43
+ * Callback when the media library should be opened.
44
+ */
45
+ onMediaLibraryOpen: () => void;
42
46
  /**
43
47
  * Custom account component to render (e.g., Clerk's UserButton).
44
48
  * If provided, replaces the default account button.
@@ -69,8 +73,9 @@ export interface EditorSidebarProps {
69
73
  * onHighlightToggle={() => setHighlightEnabled(!highlightEnabled)}
70
74
  * onPermissionManagerOpen={() => setPermissionManagerOpen(true)}
71
75
  * onGroupManagerOpen={() => setGroupManagerOpen(true)}
76
+ * onMediaLibraryOpen={() => setMediaLibraryOpen(true)}
72
77
  * />
73
78
  * ```
74
79
  */
75
- export declare function EditorSidebar({ layout, highlightEnabled, sidebarWidth, headerHeight, footerHeight, onLayoutChange, onHighlightToggle, onPermissionManagerOpen, onGroupManagerOpen, AccountComponent, onAccountClick, onLogoutClick, }: EditorSidebarProps): import("react/jsx-runtime").JSX.Element;
80
+ export declare function EditorSidebar({ layout, highlightEnabled, sidebarWidth, headerHeight, footerHeight, onLayoutChange, onHighlightToggle, onPermissionManagerOpen, onGroupManagerOpen, onMediaLibraryOpen, AccountComponent, onAccountClick, onLogoutClick, }: EditorSidebarProps): import("react/jsx-runtime").JSX.Element;
76
81
  //# sourceMappingURL=EditorSidebar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditorSidebar.d.ts","sourceRoot":"","sources":["../../../src/editor/components/EditorSidebar.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEhD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,MAAM,EAAE,UAAU,CAAA;IAElB;;OAEG;IACH,gBAAgB,EAAE,OAAO,CAAA;IAEzB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,cAAc,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;IAE5C;;OAEG;IACH,iBAAiB,EAAE,MAAM,IAAI,CAAA;IAE7B;;OAEG;IACH,uBAAuB,EAAE,MAAM,IAAI,CAAA;IAEnC;;OAEG;IACH,kBAAkB,EAAE,MAAM,IAAI,CAAA;IAE9B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAEtC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;IAE3B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,aAAa,GACd,EAAE,kBAAkB,2CAwFpB"}
1
+ {"version":3,"file":"EditorSidebar.d.ts","sourceRoot":"","sources":["../../../src/editor/components/EditorSidebar.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEhD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,MAAM,EAAE,UAAU,CAAA;IAElB;;OAEG;IACH,gBAAgB,EAAE,OAAO,CAAA;IAEzB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,cAAc,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;IAE5C;;OAEG;IACH,iBAAiB,EAAE,MAAM,IAAI,CAAA;IAE7B;;OAEG;IACH,uBAAuB,EAAE,MAAM,IAAI,CAAA;IAEnC;;OAEG;IACH,kBAAkB,EAAE,MAAM,IAAI,CAAA;IAE9B;;OAEG;IACH,kBAAkB,EAAE,MAAM,IAAI,CAAA;IAE9B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAEtC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;IAE3B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,aAAa,GACd,EAAE,kBAAkB,2CA2FpB"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { ActionIcon, Menu, Paper, Stack } from '@mantine/core';
3
- import { IconUserCircle, IconLogout, IconSettings, IconLayoutColumns, IconLayoutRows, IconSquareDashed, } from '@tabler/icons-react';
3
+ import { IconUserCircle, IconLogout, IconPhoto, IconSettings, IconLayoutColumns, IconLayoutRows, IconSquareDashed, } from '@tabler/icons-react';
4
4
  /**
5
5
  * Sidebar component for the Editor.
6
6
  * Contains layout toggle, highlight toggle, settings menu, account button, and logout button.
@@ -17,10 +17,11 @@ import { IconUserCircle, IconLogout, IconSettings, IconLayoutColumns, IconLayout
17
17
  * onHighlightToggle={() => setHighlightEnabled(!highlightEnabled)}
18
18
  * onPermissionManagerOpen={() => setPermissionManagerOpen(true)}
19
19
  * onGroupManagerOpen={() => setGroupManagerOpen(true)}
20
+ * onMediaLibraryOpen={() => setMediaLibraryOpen(true)}
20
21
  * />
21
22
  * ```
22
23
  */
23
- export function EditorSidebar({ layout, highlightEnabled, sidebarWidth, headerHeight, footerHeight, onLayoutChange, onHighlightToggle, onPermissionManagerOpen, onGroupManagerOpen, AccountComponent, onAccountClick, onLogoutClick, }) {
24
+ export function EditorSidebar({ layout, highlightEnabled, sidebarWidth, headerHeight, footerHeight, onLayoutChange, onHighlightToggle, onPermissionManagerOpen, onGroupManagerOpen, onMediaLibraryOpen, AccountComponent, onAccountClick, onLogoutClick, }) {
24
25
  return (_jsxs(Paper, { withBorder: true, shadow: "sm", radius: 0, style: {
25
26
  position: 'fixed',
26
27
  top: headerHeight,
@@ -33,6 +34,6 @@ export function EditorSidebar({ layout, highlightEnabled, sidebarWidth, headerHe
33
34
  alignItems: 'center',
34
35
  padding: '10px 6px',
35
36
  gap: 8,
36
- }, children: [_jsxs(Stack, { gap: "sm", align: "center", style: { width: '100%', paddingTop: 6 }, children: [_jsx(ActionIcon, { variant: "subtle", size: "lg", radius: "md", "aria-label": "Toggle layout", onClick: () => onLayoutChange(layout === 'side' ? 'stacked' : 'side'), children: layout === 'side' ? _jsx(IconLayoutRows, { size: 18 }) : _jsx(IconLayoutColumns, { size: 18 }) }), _jsx(ActionIcon, { variant: highlightEnabled ? 'filled' : 'subtle', color: highlightEnabled ? 'brand' : 'gray', size: "lg", radius: "md", "aria-pressed": highlightEnabled, "aria-label": "Toggle highlights", onClick: onHighlightToggle, children: _jsx(IconSquareDashed, { size: 18 }) })] }), _jsxs(Stack, { gap: "xs", align: "center", children: [_jsxs(Menu, { shadow: "md", width: 200, position: "left", children: [_jsx(Menu.Target, { children: _jsx(ActionIcon, { variant: "subtle", size: "lg", radius: "md", "aria-label": "Settings", children: _jsx(IconSettings, { size: 18 }) }) }), _jsxs(Menu.Dropdown, { children: [_jsx(Menu.Label, { children: "Settings" }), _jsx(Menu.Item, { onClick: onPermissionManagerOpen, children: "Manage Permissions" }), _jsx(Menu.Item, { onClick: onGroupManagerOpen, children: "Manage Groups" })] })] }), AccountComponent ? (_jsx(AccountComponent, {})) : (_jsxs(_Fragment, { children: [onAccountClick && (_jsx(ActionIcon, { variant: "subtle", size: "lg", radius: "md", "aria-label": "Account", onClick: onAccountClick, children: _jsx(IconUserCircle, { size: 18 }) })), onLogoutClick && (_jsx(ActionIcon, { variant: "subtle", size: "lg", radius: "md", "aria-label": "Sign out", onClick: onLogoutClick, children: _jsx(IconLogout, { size: 18 }) }))] }))] })] }));
37
+ }, children: [_jsxs(Stack, { gap: "sm", align: "center", style: { width: '100%', paddingTop: 6 }, children: [_jsx(ActionIcon, { variant: "subtle", size: "lg", radius: "md", "aria-label": "Toggle layout", onClick: () => onLayoutChange(layout === 'side' ? 'stacked' : 'side'), children: layout === 'side' ? _jsx(IconLayoutRows, { size: 18 }) : _jsx(IconLayoutColumns, { size: 18 }) }), _jsx(ActionIcon, { variant: highlightEnabled ? 'filled' : 'subtle', color: highlightEnabled ? 'brand' : 'gray', size: "lg", radius: "md", "aria-pressed": highlightEnabled, "aria-label": "Toggle highlights", onClick: onHighlightToggle, children: _jsx(IconSquareDashed, { size: 18 }) })] }), _jsxs(Stack, { gap: "xs", align: "center", children: [_jsxs(Menu, { shadow: "md", width: 200, position: "left", children: [_jsx(Menu.Target, { children: _jsx(ActionIcon, { variant: "subtle", size: "lg", radius: "md", "aria-label": "Settings", children: _jsx(IconSettings, { size: 18 }) }) }), _jsxs(Menu.Dropdown, { children: [_jsx(Menu.Label, { children: "Settings" }), _jsx(Menu.Item, { onClick: onPermissionManagerOpen, children: "Manage Permissions" }), _jsx(Menu.Item, { onClick: onGroupManagerOpen, children: "Manage Groups" }), _jsx(Menu.Item, { leftSection: _jsx(IconPhoto, { size: 14 }), onClick: onMediaLibraryOpen, children: "Media library" })] })] }), AccountComponent ? (_jsx(AccountComponent, {})) : (_jsxs(_Fragment, { children: [onAccountClick && (_jsx(ActionIcon, { variant: "subtle", size: "lg", radius: "md", "aria-label": "Account", onClick: onAccountClick, children: _jsx(IconUserCircle, { size: 18 }) })), onLogoutClick && (_jsx(ActionIcon, { variant: "subtle", size: "lg", radius: "md", "aria-label": "Sign out", onClick: onLogoutClick, children: _jsx(IconLogout, { size: 18 }) }))] }))] })] }));
37
38
  }
38
39
  //# sourceMappingURL=EditorSidebar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditorSidebar.js","sourceRoot":"","sources":["../../../src/editor/components/EditorSidebar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EditorSidebar.js","sourceRoot":"","sources":["../../../src/editor/components/EditorSidebar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAC9D,OAAO,EACL,cAAc,EACd,UAAU,EACV,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,gBAAgB,GACjB,MAAM,qBAAqB,CAAA;AA0E5B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,MAAM,EACN,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,aAAa,GACM;IACnB,OAAO,CACL,MAAC,KAAK,IACJ,UAAU,QACV,MAAM,EAAC,IAAI,EACX,MAAM,EAAE,CAAC,EACT,KAAK,EAAE;YACL,QAAQ,EAAE,OAAO;YACjB,GAAG,EAAE,YAAY;YACjB,MAAM,EAAE,YAAY;YACpB,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,YAAY;YACnB,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,QAAQ;YACvB,cAAc,EAAE,eAAe;YAC/B,UAAU,EAAE,QAAQ;YACpB,OAAO,EAAE,UAAU;YACnB,GAAG,EAAE,CAAC;SACP,aAED,MAAC,KAAK,IAAC,GAAG,EAAC,IAAI,EAAC,KAAK,EAAC,QAAQ,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,aACpE,KAAC,UAAU,IACT,OAAO,EAAC,QAAQ,EAChB,IAAI,EAAC,IAAI,EACT,MAAM,EAAC,IAAI,gBACA,eAAe,EAC1B,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,YAEpE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,KAAC,cAAc,IAAC,IAAI,EAAE,EAAE,GAAI,CAAC,CAAC,CAAC,KAAC,iBAAiB,IAAC,IAAI,EAAE,EAAE,GAAI,GACxE,EAEb,KAAC,UAAU,IACT,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAC/C,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAC1C,IAAI,EAAC,IAAI,EACT,MAAM,EAAC,IAAI,kBACG,gBAAgB,gBACnB,mBAAmB,EAC9B,OAAO,EAAE,iBAAiB,YAE1B,KAAC,gBAAgB,IAAC,IAAI,EAAE,EAAE,GAAI,GACnB,IACP,EACR,MAAC,KAAK,IAAC,GAAG,EAAC,IAAI,EAAC,KAAK,EAAC,QAAQ,aAC5B,MAAC,IAAI,IAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAC,MAAM,aAC3C,KAAC,IAAI,CAAC,MAAM,cACV,KAAC,UAAU,IAAC,OAAO,EAAC,QAAQ,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,gBAAY,UAAU,YACtE,KAAC,YAAY,IAAC,IAAI,EAAE,EAAE,GAAI,GACf,GACD,EACd,MAAC,IAAI,CAAC,QAAQ,eACZ,KAAC,IAAI,CAAC,KAAK,2BAAsB,EACjC,KAAC,IAAI,CAAC,IAAI,IAAC,OAAO,EAAE,uBAAuB,mCAAgC,EAC3E,KAAC,IAAI,CAAC,IAAI,IAAC,OAAO,EAAE,kBAAkB,8BAA2B,EACjE,KAAC,IAAI,CAAC,IAAI,IAAC,WAAW,EAAE,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,GAAI,EAAE,OAAO,EAAE,kBAAkB,8BAEhE,IACE,IACX,EAEN,gBAAgB,CAAC,CAAC,CAAC,CAClB,KAAC,gBAAgB,KAAG,CACrB,CAAC,CAAC,CAAC,CACF,8BACG,cAAc,IAAI,CACjB,KAAC,UAAU,IACT,OAAO,EAAC,QAAQ,EAChB,IAAI,EAAC,IAAI,EACT,MAAM,EAAC,IAAI,gBACA,SAAS,EACpB,OAAO,EAAE,cAAc,YAEvB,KAAC,cAAc,IAAC,IAAI,EAAE,EAAE,GAAI,GACjB,CACd,EACA,aAAa,IAAI,CAChB,KAAC,UAAU,IACT,OAAO,EAAC,QAAQ,EAChB,IAAI,EAAC,IAAI,EACT,MAAM,EAAC,IAAI,gBACA,UAAU,EACrB,OAAO,EAAE,aAAa,YAEtB,KAAC,UAAU,IAAC,IAAI,EAAE,EAAE,GAAI,GACb,CACd,IACA,CACJ,IACK,IACF,CACT,CAAA;AACH,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Asset Context
3
+ *
4
+ * Carries `media.publicBaseUrl` (see CanopyClientConfig.assetBaseUrl) down to
5
+ * every asset-URL-building component - MediaLibrary, ImageField, and the MDX
6
+ * image dialog. A context (rather than a prop) because the MDX dialog is
7
+ * rendered deep inside MDXEditor's lazy-loaded internals via `imagePlugin`'s
8
+ * `ImageDialog` param, with no prop channel of its own (the same reason
9
+ * `EntryLinkContext` exists for the entry-link toolbar button). Unlike
10
+ * `ApiClientContext`, reading this without a provider is safe and intentional:
11
+ * no provider means root-relative URLs, which is the correct default for the
12
+ * common case (editor and site share an origin).
13
+ */
14
+ import React from 'react';
15
+ export interface AssetContextValue {
16
+ /** Prefixed onto every asset URL the editor builds. `undefined` (no provider, or no `media.publicBaseUrl` configured) means root-relative - same-origin dev/prod-today behavior. */
17
+ baseUrl?: string;
18
+ }
19
+ export interface AssetContextProviderProps extends AssetContextValue {
20
+ children: React.ReactNode;
21
+ }
22
+ export declare function AssetContextProvider({ baseUrl, children }: AssetContextProviderProps): import("react/jsx-runtime").JSX.Element;
23
+ /** Safe to call outside a provider - returns `{ baseUrl: undefined }` (root-relative URLs). */
24
+ export declare function useAssetContext(): AssetContextValue;
25
+ //# sourceMappingURL=AssetContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssetContext.d.ts","sourceRoot":"","sources":["../../../src/editor/context/AssetContext.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAA6C,MAAM,OAAO,CAAA;AAEjE,MAAM,WAAW,iBAAiB;IAChC,oLAAoL;IACpL,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAID,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AAED,wBAAgB,oBAAoB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,yBAAyB,2CAGpF;AAED,+FAA+F;AAC/F,wBAAgB,eAAe,IAAI,iBAAiB,CAEnD"}
@@ -0,0 +1,26 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ /**
4
+ * Asset Context
5
+ *
6
+ * Carries `media.publicBaseUrl` (see CanopyClientConfig.assetBaseUrl) down to
7
+ * every asset-URL-building component - MediaLibrary, ImageField, and the MDX
8
+ * image dialog. A context (rather than a prop) because the MDX dialog is
9
+ * rendered deep inside MDXEditor's lazy-loaded internals via `imagePlugin`'s
10
+ * `ImageDialog` param, with no prop channel of its own (the same reason
11
+ * `EntryLinkContext` exists for the entry-link toolbar button). Unlike
12
+ * `ApiClientContext`, reading this without a provider is safe and intentional:
13
+ * no provider means root-relative URLs, which is the correct default for the
14
+ * common case (editor and site share an origin).
15
+ */
16
+ import { createContext, useContext, useMemo } from 'react';
17
+ const AssetContext = createContext({});
18
+ export function AssetContextProvider({ baseUrl, children }) {
19
+ const value = useMemo(() => ({ baseUrl }), [baseUrl]);
20
+ return _jsx(AssetContext.Provider, { value: value, children: children });
21
+ }
22
+ /** Safe to call outside a provider - returns `{ baseUrl: undefined }` (root-relative URLs). */
23
+ export function useAssetContext() {
24
+ return useContext(AssetContext);
25
+ }
26
+ //# sourceMappingURL=AssetContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssetContext.js","sourceRoot":"","sources":["../../../src/editor/context/AssetContext.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;;;;;GAYG;AAEH,OAAc,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAOjE,MAAM,YAAY,GAAG,aAAa,CAAoB,EAAE,CAAC,CAAA;AAMzD,MAAM,UAAU,oBAAoB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAA6B;IACnF,MAAM,KAAK,GAAG,OAAO,CAAoB,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IACxE,OAAO,KAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAyB,CAAA;AAChF,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,eAAe;IAC7B,OAAO,UAAU,CAAC,YAAY,CAAC,CAAA;AACjC,CAAC"}
@@ -16,5 +16,6 @@
16
16
  * ```
17
17
  */
18
18
  export { ApiClientProvider, useApiClient, useOptionalApiClient, type ApiClient, type ApiClientProviderProps, } from './ApiClientContext';
19
+ export { AssetContextProvider, useAssetContext, type AssetContextValue, type AssetContextProviderProps, } from './AssetContext';
19
20
  export { EditorStateProvider, useEditorState, useEditorLoading, useEditorModals, useEditorPreview, type EditorState, type EditorStateActions, type EditorStateContextValue, type EditorStateProviderProps, type LoadingState, type ModalState, type PreviewState, } from './EditorStateContext';
20
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/editor/context/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,KAAK,SAAS,EACd,KAAK,sBAAsB,GAC5B,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,YAAY,GAClB,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/editor/context/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,KAAK,SAAS,EACd,KAAK,sBAAsB,GAC5B,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,GAC/B,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,YAAY,GAClB,MAAM,sBAAsB,CAAA"}
@@ -16,5 +16,6 @@
16
16
  * ```
17
17
  */
18
18
  export { ApiClientProvider, useApiClient, useOptionalApiClient, } from './ApiClientContext.js';
19
+ export { AssetContextProvider, useAssetContext, } from './AssetContext.js';
19
20
  export { EditorStateProvider, useEditorState, useEditorLoading, useEditorModals, useEditorPreview, } from './EditorStateContext.js';
20
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/editor/context/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,GAGrB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GAQjB,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/editor/context/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,GAGrB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EACL,oBAAoB,EACpB,eAAe,GAGhB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GAQjB,MAAM,sBAAsB,CAAA"}
@@ -0,0 +1,22 @@
1
+ import React from 'react';
2
+ import type { ImageFieldValue } from '../../config';
3
+ export interface ImageFieldErrors {
4
+ src?: string;
5
+ alt?: string;
6
+ crop?: string;
7
+ }
8
+ export interface ImageFieldProps {
9
+ id?: string;
10
+ label?: string;
11
+ value: ImageFieldValue | undefined;
12
+ onChange: (value: ImageFieldValue | undefined) => void;
13
+ /** "W:H" aspect ratio - when set, picking/uploading a new image opens the crop step before the value commits, and a "Crop" button appears on the filled state. */
14
+ aspect?: string;
15
+ /** Allow empty alt text. Default: required (accessibility). */
16
+ altOptional?: boolean;
17
+ dataCanopyField?: string;
18
+ errors?: ImageFieldErrors;
19
+ }
20
+ export declare const ImageField: React.FC<ImageFieldProps>;
21
+ export default ImageField;
22
+ //# sourceMappingURL=ImageField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageField.d.ts","sourceRoot":"","sources":["../../../src/editor/fields/ImageField.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA6C,MAAM,OAAO,CAAA;AASjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAQnD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,eAAe,GAAG,SAAS,CAAA;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,KAAK,IAAI,CAAA;IACtD,kKAAkK;IAClK,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,+DAA+D;IAC/D,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,MAAM,CAAC,EAAE,gBAAgB,CAAA;CAC1B;AAOD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAsOhD,CAAA;AAED,eAAe,UAAU,CAAA"}
@@ -0,0 +1,100 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useEffect, useId, useRef, useState } from 'react';
4
+ import { Alert, Button, Group, Stack, Text, TextInput } from '@mantine/core';
5
+ import { Dropzone } from '@mantine/dropzone';
6
+ import { IconAlertCircle, IconPhoto, IconUpload } from '@tabler/icons-react';
7
+ import { assetUrl } from '../../assets/asset-url.js';
8
+ import { useAssetContext } from '../context/index.js';
9
+ import { CropStep } from '../media/CropStep.js';
10
+ import { parseAspectRatio } from '../media/crop-math.js';
11
+ import { MediaLibrary } from '../media/MediaLibrary.js';
12
+ import { useAssetUpload } from '../media/useAssetUpload.js';
13
+ import { ACCEPTED_IMAGE_MIME_TYPES, MAX_UPLOAD_BYTES } from '../media/upload-constants.js';
14
+ const PREVIEW_WIDTH = 320;
15
+ export const ImageField = ({ id, label, value, onChange, aspect, altOptional, dataCanopyField, errors, }) => {
16
+ const generatedId = useId();
17
+ const inputId = id ?? generatedId;
18
+ const { baseUrl } = useAssetContext();
19
+ const upload = useAssetUpload();
20
+ const [pickerOpen, setPickerOpen] = useState(false);
21
+ const [cropRequest, setCropRequest] = useState(null);
22
+ // Dropzone-level rejections (wrong type/too large) never reach useAssetUpload
23
+ // (Dropzone filters them out before onDrop fires), so they need their own
24
+ // error slot rather than piggybacking on upload.error.
25
+ const [dropError, setDropError] = useState(null);
26
+ const altInputRef = useRef(null);
27
+ const justCommittedRef = useRef(false);
28
+ const aspectRatio = parseAspectRatio(aspect);
29
+ const hasValue = !!value?.src;
30
+ // Focus the alt input right after a new image commits (pick or upload),
31
+ // so the editor's next keystroke goes straight into the field most likely
32
+ // to need attention.
33
+ useEffect(() => {
34
+ if (justCommittedRef.current) {
35
+ justCommittedRef.current = false;
36
+ altInputRef.current?.focus();
37
+ }
38
+ }, [value?.src]);
39
+ const commitAsset = (asset, crop) => {
40
+ justCommittedRef.current = true;
41
+ onChange({
42
+ src: asset.src,
43
+ alt: '',
44
+ ...(asset.width !== undefined ? { width: asset.width } : {}),
45
+ ...(asset.height !== undefined ? { height: asset.height } : {}),
46
+ ...(crop ? { crop } : {}),
47
+ });
48
+ };
49
+ const handleAssetReady = (asset) => {
50
+ setPickerOpen(false);
51
+ if (aspectRatio !== undefined) {
52
+ setCropRequest({ kind: 'new', asset });
53
+ }
54
+ else {
55
+ commitAsset(asset);
56
+ }
57
+ };
58
+ const handleDrop = async (files) => {
59
+ const file = files[0];
60
+ if (!file)
61
+ return;
62
+ const asset = await upload.upload(file);
63
+ if (asset)
64
+ handleAssetReady(asset);
65
+ };
66
+ const handleReject = (rejections) => {
67
+ setDropError(rejections[0]?.errors[0]?.message ?? 'File rejected');
68
+ };
69
+ const handleAltChange = (nextAlt) => {
70
+ if (!value)
71
+ return;
72
+ onChange({ ...value, alt: nextAlt });
73
+ };
74
+ const handleRemove = () => {
75
+ onChange(undefined);
76
+ };
77
+ const handleCropConfirm = (rect) => {
78
+ if (cropRequest?.kind === 'new') {
79
+ commitAsset(cropRequest.asset, rect);
80
+ }
81
+ else if (cropRequest?.kind === 'existing' && value) {
82
+ onChange({ ...value, crop: rect });
83
+ }
84
+ setCropRequest(null);
85
+ };
86
+ const cropImageSrc = cropRequest?.kind === 'new'
87
+ ? assetUrl({ src: cropRequest.asset.src }, { baseUrl })
88
+ : cropRequest?.kind === 'existing' && value
89
+ ? assetUrl({ src: value.src }, { baseUrl })
90
+ : '';
91
+ const cropInitial = cropRequest?.kind === 'existing' ? value?.crop : undefined;
92
+ return (_jsxs(Stack, { gap: 4, "data-canopy-field": dataCanopyField, "data-testid": `image-field-${dataCanopyField}`, children: [label && (_jsx(Text, { size: "sm", fw: 500, children: label })), !hasValue ? (_jsxs(Stack, { gap: "xs", children: [_jsx(Dropzone, { onDrop: (files) => void handleDrop(files), onReject: handleReject, maxSize: MAX_UPLOAD_BYTES, accept: ACCEPTED_IMAGE_MIME_TYPES, loading: upload.uploading, multiple: false, "data-testid": `image-field-dropzone-${dataCanopyField}`, children: _jsxs(Group, { justify: "center", gap: "xs", py: "xs", style: { pointerEvents: 'none' }, children: [_jsx(IconUpload, { size: 18 }), _jsx(Text, { size: "xs", children: "Drop an image here, or click to browse" })] }) }), _jsx(Group, { justify: "center", children: _jsx(Button, { variant: "light", size: "xs", leftSection: _jsx(IconPhoto, { size: 14 }), onClick: () => setPickerOpen(true), "data-testid": `image-field-browse-library-${dataCanopyField}`, children: "Browse library" }) }), (upload.error || dropError) && (_jsx(Alert, { icon: _jsx(IconAlertCircle, { size: 16 }), color: "red", children: upload.error || dropError })), errors?.src && (_jsx(Text, { size: "xs", c: "red", children: errors.src }))] })) : (_jsxs(Stack, { gap: "xs", children: [_jsx("img", { src: assetUrl({ src: value.src }, { width: PREVIEW_WIDTH, crop: value.crop, baseUrl }), alt: value.alt, style: {
93
+ maxWidth: PREVIEW_WIDTH,
94
+ maxHeight: PREVIEW_WIDTH,
95
+ borderRadius: 'var(--mantine-radius-sm)',
96
+ display: 'block',
97
+ } }), errors?.src && (_jsx(Text, { size: "xs", c: "red", children: errors.src })), _jsx(TextInput, { id: inputId, ref: altInputRef, label: "Alt text", required: !altOptional, value: value.alt, onChange: (event) => handleAltChange(event.currentTarget.value), error: errors?.alt, size: "sm", "data-testid": `image-field-alt-${dataCanopyField}` }), _jsxs(Group, { gap: "xs", children: [_jsx(Button, { variant: "light", size: "xs", onClick: () => setPickerOpen(true), "data-testid": `image-field-replace-${dataCanopyField}`, children: "Replace" }), aspectRatio !== undefined && (_jsx(Button, { variant: "light", size: "xs", onClick: () => setCropRequest({ kind: 'existing' }), "data-testid": `image-field-crop-${dataCanopyField}`, children: "Crop" })), _jsx(Button, { variant: "subtle", color: "red", size: "xs", onClick: handleRemove, "data-testid": `image-field-remove-${dataCanopyField}`, children: "Remove" })] }), errors?.crop && (_jsx(Text, { size: "xs", c: "red", children: errors.crop }))] })), _jsx(MediaLibrary, { opened: pickerOpen, onClose: () => setPickerOpen(false), mode: "picker", onSelect: handleAssetReady }), aspectRatio !== undefined && (_jsx(CropStep, { opened: cropRequest !== null, onClose: () => setCropRequest(null), imageSrc: cropImageSrc, aspect: aspectRatio, initialCrop: cropInitial, onConfirm: handleCropConfirm }))] }));
98
+ };
99
+ export default ImageField;
100
+ //# sourceMappingURL=ImageField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageField.js","sourceRoot":"","sources":["../../../src/editor/fields/ImageField.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownField.d.ts","sourceRoot":"","sources":["../../../src/editor/fields/MarkdownField.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA0D,MAAM,OAAO,CAAA;AAO9E,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAiKD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA2CtD,CAAA;AAED,eAAe,aAAa,CAAA"}
1
+ {"version":3,"file":"MarkdownField.d.ts","sourceRoot":"","sources":["../../../src/editor/fields/MarkdownField.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA0D,MAAM,OAAO,CAAA;AAU9E,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAmLD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA+DtD,CAAA;AAED,eAAe,aAAa,CAAA"}
@@ -3,14 +3,29 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
3
3
  import React, { Suspense, useId, useRef, useCallback, useEffect } from 'react';
4
4
  import { Text, Textarea } from '@mantine/core';
5
5
  import { InsertEntryLink } from './entry-link/index.js';
6
+ import { MdxImageDialog } from './MdxImageDialog.js';
7
+ import { useApiClient } from '../context/index.js';
8
+ import { uploadAsset } from '../media/upload-asset.js';
6
9
  const MDXEditorLazy = React.lazy(async () => {
7
- const [{ MDXEditor }, { headingsPlugin, listsPlugin, quotePlugin, thematicBreakPlugin, markdownShortcutPlugin, linkPlugin, linkDialogPlugin, imagePlugin, tablePlugin, toolbarPlugin, codeBlockPlugin, codeMirrorPlugin, BoldItalicUnderlineToggles, BlockTypeSelect, ListsToggle, CreateLink, InsertImage, InsertTable, InsertThematicBreak, CodeToggle, InsertCodeBlock, UndoRedo, Separator, insertMarkdown$, usePublisher, },] = await Promise.all([import('@mdxeditor/editor'), import('@mdxeditor/editor')]);
10
+ const [{ MDXEditor }, { headingsPlugin, listsPlugin, quotePlugin, thematicBreakPlugin, markdownShortcutPlugin, linkPlugin, linkDialogPlugin, imagePlugin, tablePlugin, toolbarPlugin, codeBlockPlugin, codeMirrorPlugin, BoldItalicUnderlineToggles, BlockTypeSelect, ListsToggle, CreateLink, InsertImage, InsertTable, InsertThematicBreak, CodeToggle, InsertCodeBlock, UndoRedo, Separator, insertMarkdown$, usePublisher, useCellValues, saveImage$, closeImageDialog$, imageDialogState$, },] = await Promise.all([import('@mdxeditor/editor'), import('@mdxeditor/editor')]);
8
11
  /** Toolbar wrapper that provides insertMarkdown to InsertEntryLink */
9
12
  const EntryLinkToolbarButton = () => {
10
13
  const insertMarkdown = usePublisher(insertMarkdown$);
11
14
  return _jsx(InsertEntryLink, { onInsert: insertMarkdown });
12
15
  };
13
- const WrappedEditor = ({ markdown, onChange, editorRef }) => {
16
+ /**
17
+ * Bridges mdxeditor's realm cells (only reachable once this lazy chunk has
18
+ * loaded) into MdxImageDialog's plain-props interface, so that component
19
+ * itself never imports `@mdxeditor/editor` at runtime. Same pattern as
20
+ * `EntryLinkToolbarButton` above.
21
+ */
22
+ const MdxImageDialogBridge = () => {
23
+ const [state] = useCellValues(imageDialogState$);
24
+ const saveImage = usePublisher(saveImage$);
25
+ const closeImageDialog = usePublisher(closeImageDialog$);
26
+ return _jsx(MdxImageDialog, { state: state, onSave: saveImage, onClose: closeImageDialog });
27
+ };
28
+ const WrappedEditor = ({ markdown, onChange, editorRef, imageUploadHandler }) => {
14
29
  return (_jsx(MDXEditor, { ref: editorRef, markdown: markdown, onChange: onChange, plugins: [
15
30
  headingsPlugin(),
16
31
  listsPlugin(),
@@ -19,7 +34,7 @@ const MDXEditorLazy = React.lazy(async () => {
19
34
  markdownShortcutPlugin(),
20
35
  linkPlugin(),
21
36
  linkDialogPlugin(),
22
- imagePlugin(),
37
+ imagePlugin({ imageUploadHandler, ImageDialog: MdxImageDialogBridge }),
23
38
  tablePlugin(),
24
39
  codeBlockPlugin({ defaultCodeBlockLanguage: '' }),
25
40
  codeMirrorPlugin({
@@ -86,6 +101,17 @@ export const MarkdownField = ({ id, label, value, onChange, dataCanopyField, })
86
101
  const inputId = id ?? generatedId;
87
102
  const editorRef = useRef(null);
88
103
  const lastExternalValue = useRef(value);
104
+ const apiClient = useApiClient();
105
+ // Drives both MDXEditor's own drag/drop/paste upload flow and the Upload
106
+ // tab in our custom image dialog (MdxImageDialog) via the SAME presign/
107
+ // finalize-or-proxied pipeline used everywhere else in the editor (see
108
+ // media/upload-asset.ts). Stable across renders (memoized on the API
109
+ // client, which ApiClientProvider itself memoizes) so MDXEditor's plugin
110
+ // list doesn't churn on every keystroke.
111
+ const imageUploadHandler = useCallback(async (file) => {
112
+ const asset = await uploadAsset(apiClient, file);
113
+ return asset.src;
114
+ }, [apiClient]);
89
115
  // Sync external value changes into the editor (e.g., undo, reset, load)
90
116
  useEffect(() => {
91
117
  if (value !== lastExternalValue.current && editorRef.current) {
@@ -97,7 +123,7 @@ export const MarkdownField = ({ id, label, value, onChange, dataCanopyField, })
97
123
  lastExternalValue.current = newValue;
98
124
  onChange(newValue);
99
125
  }, [onChange]);
100
- return (_jsxs("div", { id: inputId, "data-canopy-field": dataCanopyField, className: "canopy-markdown-field", children: [label && (_jsx(Text, { size: "sm", fw: 500, mb: 4, children: label })), _jsx(EditorContentStyles, {}), _jsx("div", { style: editorWrapperStyle, children: _jsx(Suspense, { fallback: _jsx(FallbackTextarea, { value: value, onChange: onChange }), children: _jsx(MDXEditorLazy, { markdown: value, onChange: handleChange, editorRef: editorRef }) }) })] }));
126
+ return (_jsxs("div", { id: inputId, "data-canopy-field": dataCanopyField, className: "canopy-markdown-field", children: [label && (_jsx(Text, { size: "sm", fw: 500, mb: 4, children: label })), _jsx(EditorContentStyles, {}), _jsx("div", { style: editorWrapperStyle, children: _jsx(Suspense, { fallback: _jsx(FallbackTextarea, { value: value, onChange: onChange }), children: _jsx(MDXEditorLazy, { markdown: value, onChange: handleChange, editorRef: editorRef, imageUploadHandler: imageUploadHandler }) }) })] }));
101
127
  };
102
128
  export default MarkdownField;
103
129
  //# sourceMappingURL=MarkdownField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownField.js","sourceRoot":"","sources":["../../../src/editor/fields/MarkdownField.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MarkdownField.js","sourceRoot":"","sources":["../../../src/editor/fields/MarkdownField.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import type { EditingImageDialogState, InactiveImageDialogState, NewImageDialogState, SaveImageParameters } from '@mdxeditor/editor';
3
+ export type MdxImageDialogState = InactiveImageDialogState | NewImageDialogState | EditingImageDialogState;
4
+ export interface MdxImageDialogProps {
5
+ state: MdxImageDialogState;
6
+ onSave: (params: SaveImageParameters) => void;
7
+ onClose: () => void;
8
+ }
9
+ /**
10
+ * Custom MDXEditor image dialog (Upload / From library / By URL), replacing
11
+ * the stock upload-or-URL dialog. Wired in via `imagePlugin({ ImageDialog })`
12
+ * in MarkdownField.tsx.
13
+ */
14
+ export declare const MdxImageDialog: React.FC<MdxImageDialogProps>;
15
+ export default MdxImageDialog;
16
+ //# sourceMappingURL=MdxImageDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MdxImageDialog.d.ts","sourceRoot":"","sources":["../../../src/editor/fields/MdxImageDialog.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAalD,OAAO,KAAK,EACV,uBAAuB,EACvB,wBAAwB,EACxB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,mBAAmB,CAAA;AAO1B,MAAM,MAAM,mBAAmB,GAC3B,wBAAwB,GACxB,mBAAmB,GACnB,uBAAuB,CAAA;AAE3B,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,mBAAmB,CAAA;IAC1B,MAAM,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAA;IAC7C,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAMD;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA+JxD,CAAA;AAED,eAAe,cAAc,CAAA"}
@@ -0,0 +1,73 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useEffect, useState } from 'react';
4
+ import { Alert, Button, Group, Modal, Progress, Stack, Tabs, Text, TextInput } from '@mantine/core';
5
+ import { Dropzone } from '@mantine/dropzone';
6
+ import { IconAlertCircle, IconUpload } from '@tabler/icons-react';
7
+ import { MediaLibraryBody } from '../media/MediaLibraryBody.js';
8
+ import { useAssetUpload } from '../media/useAssetUpload.js';
9
+ import { ACCEPTED_IMAGE_MIME_TYPES, MAX_UPLOAD_BYTES } from '../media/upload-constants.js';
10
+ const LIBRARY_PANEL_HEIGHT = 360;
11
+ /**
12
+ * Custom MDXEditor image dialog (Upload / From library / By URL), replacing
13
+ * the stock upload-or-URL dialog. Wired in via `imagePlugin({ ImageDialog })`
14
+ * in MarkdownField.tsx.
15
+ */
16
+ export const MdxImageDialog = ({ state, onSave, onClose }) => {
17
+ const [tab, setTab] = useState('upload');
18
+ const [altText, setAltText] = useState('');
19
+ const [urlValue, setUrlValue] = useState('');
20
+ const [dropError, setDropError] = useState(null);
21
+ const upload = useAssetUpload();
22
+ const opened = state.type !== 'inactive';
23
+ useEffect(() => {
24
+ if (state.type === 'editing') {
25
+ setAltText(state.initialValues.altText ?? '');
26
+ setUrlValue(state.initialValues.src ?? '');
27
+ // Editing an existing image: show its current src/alt on the URL tab
28
+ // rather than defaulting to Upload, which would suggest replacing it.
29
+ setTab('url');
30
+ }
31
+ else {
32
+ setAltText('');
33
+ setUrlValue('');
34
+ setTab('upload');
35
+ }
36
+ setDropError(null);
37
+ upload.reset();
38
+ // Reset local state whenever the dialog's target state changes identity
39
+ // (opened for a new insert, opened to edit a different node, or closed).
40
+ // eslint-disable-next-line react-hooks/exhaustive-deps
41
+ }, [state]);
42
+ const handleSave = (src) => {
43
+ onSave({ src, altText });
44
+ onClose();
45
+ };
46
+ const handleDrop = async (files) => {
47
+ const file = files[0];
48
+ if (!file)
49
+ return;
50
+ const asset = await upload.upload(file);
51
+ if (asset)
52
+ handleSave(asset.src);
53
+ };
54
+ const handleReject = (rejections) => {
55
+ setDropError(rejections[0]?.errors[0]?.message ?? 'File rejected');
56
+ };
57
+ const handlePickFromLibrary = (asset) => {
58
+ handleSave(asset.src);
59
+ };
60
+ const handleUrlSubmit = () => {
61
+ const trimmed = urlValue.trim();
62
+ if (!trimmed)
63
+ return;
64
+ handleSave(trimmed);
65
+ };
66
+ return (_jsx(Modal, { opened: opened, onClose: onClose, title: "Insert image", size: "lg", overlayProps: { blur: 2 }, "data-testid": "mdx-image-dialog", children: _jsxs(Stack, { gap: "sm", children: [_jsx(TextInput, { label: "Alt text", value: altText, onChange: (event) => setAltText(event.currentTarget.value), "data-testid": "mdx-image-dialog-alt" }), _jsxs(Tabs, { value: tab, onChange: (next) => {
67
+ if (next)
68
+ setTab(next);
69
+ }, children: [_jsxs(Tabs.List, { children: [_jsx(Tabs.Tab, { value: "upload", "data-testid": "mdx-image-dialog-tab-upload", children: "Upload" }), _jsx(Tabs.Tab, { value: "library", "data-testid": "mdx-image-dialog-tab-library", children: "From library" }), _jsx(Tabs.Tab, { value: "url", "data-testid": "mdx-image-dialog-tab-url", children: "By URL" })] }), _jsx(Tabs.Panel, { value: "upload", pt: "sm", children: _jsxs(Stack, { gap: "xs", children: [_jsx(Dropzone, { onDrop: (files) => void handleDrop(files), onReject: handleReject, maxSize: MAX_UPLOAD_BYTES, accept: ACCEPTED_IMAGE_MIME_TYPES, loading: upload.uploading, multiple: false, "data-testid": "mdx-image-dialog-dropzone", children: _jsxs(Group, { justify: "center", gap: "xs", py: "sm", style: { pointerEvents: 'none' }, children: [_jsx(IconUpload, { size: 20 }), _jsx(Text, { size: "sm", children: "Drop an image here, or click to browse" })] }) }), upload.uploading &&
70
+ (upload.progress !== null ? (_jsx(Progress, { value: upload.progress * 100, size: "sm" })) : (_jsx(Progress, { value: 100, size: "sm", animated: true }))), (upload.error || dropError) && (_jsx(Alert, { icon: _jsx(IconAlertCircle, { size: 16 }), color: "red", children: upload.error || dropError }))] }) }), _jsx(Tabs.Panel, { value: "library", pt: "sm", children: _jsx("div", { style: { height: LIBRARY_PANEL_HEIGHT }, children: _jsx(MediaLibraryBody, { opened: tab === 'library', mode: "picker", onSelect: handlePickFromLibrary }) }) }), _jsx(Tabs.Panel, { value: "url", pt: "sm", children: _jsxs(Stack, { gap: "xs", children: [_jsx(TextInput, { label: "Image URL", placeholder: "https://example.com/image.png", value: urlValue, onChange: (event) => setUrlValue(event.currentTarget.value), "data-testid": "mdx-image-dialog-url" }), _jsx(Group, { justify: "flex-end", children: _jsx(Button, { onClick: handleUrlSubmit, disabled: !urlValue.trim(), "data-testid": "mdx-image-dialog-url-submit", children: "Insert" }) })] }) })] }), _jsx(Group, { justify: "flex-end", children: _jsx(Button, { variant: "default", onClick: onClose, children: "Cancel" }) })] }) }));
71
+ };
72
+ export default MdxImageDialog;
73
+ //# sourceMappingURL=MdxImageDialog.js.map