@simple-builder/react 1.3.9 → 1.4.1

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 (112) hide show
  1. package/dist/{build-container-client-THZHNQ5S.mjs → build-container-client-6S55GQVT.mjs} +81 -41
  2. package/dist/{build-container-client-NXIMV3RF.js → build-container-client-EQBL556Y.js} +148 -115
  3. package/dist/{build-container-client-ZXO66OL5.js → build-container-client-JAITVVDD.js} +176 -136
  4. package/dist/{build-container-client-5QC5KVS3.mjs → build-container-client-LMZUWEUI.mjs} +53 -20
  5. package/dist/{builder-content-3HENFCB5.js → builder-content-7ZRYWXPN.js} +7 -7
  6. package/dist/{builder-content-2J424EME.mjs → builder-content-H75SR7I7.mjs} +2 -2
  7. package/dist/{builder-content-4ZNXUE7D.mjs → builder-content-OR2VTIUY.mjs} +2 -2
  8. package/dist/{builder-content-2MA6BKJ5.js → builder-content-XNIM2YVG.js} +7 -7
  9. package/dist/{chunk-BCPLNZMY.js → chunk-4SFXTFFU.js} +5 -5
  10. package/dist/{chunk-2CPAROZB.js → chunk-63LNKQZD.js} +1 -1
  11. package/dist/{chunk-3QWMKMTN.js → chunk-7FWFM2TR.js} +5 -5
  12. package/dist/{chunk-4TVSMCQU.js → chunk-7I4RGF45.js} +3 -3
  13. package/dist/{chunk-7X5S5JRE.js → chunk-JFWIO2AR.js} +3 -3
  14. package/dist/{chunk-5OV6KPTF.mjs → chunk-MXIMMIPT.mjs} +1 -1
  15. package/dist/{chunk-B5R6QY7N.mjs → chunk-QSAIF4GO.mjs} +1 -1
  16. package/dist/{chunk-5Q4KJW4A.mjs → chunk-UA2CNH3R.mjs} +2 -2
  17. package/dist/{chunk-6GCMYFBT.mjs → chunk-X5MZZBYC.mjs} +2 -2
  18. package/dist/{chunk-DZLUIOVD.js → chunk-YFRFNRKR.js} +1 -1
  19. package/dist/{chunk-CJGHP5Q7.mjs → chunk-ZJYB6LEV.mjs} +1 -1
  20. package/dist/{chunk-2GOYHVMW.mjs → chunk-ZQBKKI2S.mjs} +1 -1
  21. package/dist/index.css +0 -3
  22. package/dist/index.d.mts +6 -12
  23. package/dist/index.d.ts +6 -12
  24. package/dist/index.js +6 -6
  25. package/dist/index.mjs +2 -2
  26. package/package.json +2 -2
  27. package/dist/build-container-client-7Z6WZVBX.js +0 -2295
  28. package/dist/build-container-client-DWKVE65B.mjs +0 -2262
  29. package/dist/build-container-client-FN3PZMM7.mjs +0 -2257
  30. package/dist/build-container-client-FVDRMOZ7.mjs +0 -2255
  31. package/dist/build-container-client-GV52F5RP.js +0 -2298
  32. package/dist/build-container-client-J56NWFBF.mjs +0 -2261
  33. package/dist/build-container-client-L3WD4CG7.mjs +0 -2259
  34. package/dist/build-container-client-RSJ4H3SB.js +0 -2290
  35. package/dist/build-container-client-WGVIYK47.css +0 -1968
  36. package/dist/build-container-client-WHIUDBOZ.mjs +0 -2263
  37. package/dist/build-container-client-WIGFVNOW.css +0 -1971
  38. package/dist/build-container-client-WN35X6JD.js +0 -2291
  39. package/dist/build-container-client-WYIHRPSW.js +0 -2299
  40. package/dist/build-container-client-XAQDWWKB.mjs +0 -2254
  41. package/dist/build-container-client-XOHYMPBB.js +0 -2293
  42. package/dist/build-container-client-YDRPPWCU.js +0 -2297
  43. package/dist/build-container-client-YWNDWXO2.css +0 -1967
  44. package/dist/build-container-client-ZP3O6EGC.mjs +0 -2253
  45. package/dist/build-container-client-ZXAAYUTL.js +0 -2289
  46. package/dist/builder-content-2ZXIEMS3.js +0 -42
  47. package/dist/builder-content-3H7GF3KF.mjs +0 -20
  48. package/dist/builder-content-6PIBXDPE.mjs +0 -20
  49. package/dist/builder-content-73ZKCEIT.mjs +0 -20
  50. package/dist/builder-content-BIVYFWCC.js +0 -42
  51. package/dist/builder-content-BKE4JZ75.js +0 -42
  52. package/dist/builder-content-BU4BXER7.mjs +0 -20
  53. package/dist/builder-content-CP5VLMVD.mjs +0 -20
  54. package/dist/builder-content-CY43LFAA.js +0 -42
  55. package/dist/builder-content-FMTTH7R2.js +0 -42
  56. package/dist/builder-content-GBSIY2Z7.js +0 -42
  57. package/dist/builder-content-GJ4HYIOA.mjs +0 -20
  58. package/dist/builder-content-HQXSXBFZ.mjs +0 -20
  59. package/dist/builder-content-L7NHKCKD.js +0 -42
  60. package/dist/builder-content-MI55X5HA.css +0 -1971
  61. package/dist/builder-content-PWV6LNFT.mjs +0 -20
  62. package/dist/builder-content-RROSPBT4.css +0 -1968
  63. package/dist/builder-content-RV3DPWFH.js +0 -42
  64. package/dist/builder-content-V2MDRHJI.css +0 -1967
  65. package/dist/chunk-2OHBCAZQ.mjs +0 -244
  66. package/dist/chunk-2OYBZSJQ.mjs +0 -123
  67. package/dist/chunk-454D7NIH.js +0 -153
  68. package/dist/chunk-6GCUWI4L.mjs +0 -135
  69. package/dist/chunk-6KNCX5O5.mjs +0 -123
  70. package/dist/chunk-6VINC5E2.mjs +0 -244
  71. package/dist/chunk-C5GHD62W.mjs +0 -20
  72. package/dist/chunk-CARNMQP6.mjs +0 -20
  73. package/dist/chunk-CJNSRJNF.js +0 -42
  74. package/dist/chunk-EVMN5SX2.js +0 -269
  75. package/dist/chunk-EZFQOJHG.mjs +0 -244
  76. package/dist/chunk-F5JWY4CM.mjs +0 -20
  77. package/dist/chunk-H357GPTV.mjs +0 -244
  78. package/dist/chunk-H6OM2V2U.mjs +0 -20
  79. package/dist/chunk-HCM5NR6G.js +0 -269
  80. package/dist/chunk-IJJTQQQN.mjs +0 -135
  81. package/dist/chunk-IQX5LONG.js +0 -153
  82. package/dist/chunk-LEIASP7E.js +0 -153
  83. package/dist/chunk-MBISMJDL.js +0 -269
  84. package/dist/chunk-NDE4WSBA.js +0 -269
  85. package/dist/chunk-NUDE6YTK.js +0 -165
  86. package/dist/chunk-NZ4ZQMIS.js +0 -42
  87. package/dist/chunk-OWZPAOR6.mjs +0 -244
  88. package/dist/chunk-PADTJYXB.mjs +0 -20
  89. package/dist/chunk-QZQRUNAY.js +0 -153
  90. package/dist/chunk-RGBUK5SR.js +0 -269
  91. package/dist/chunk-RNGHWAPZ.js +0 -269
  92. package/dist/chunk-RYW5OXNX.mjs +0 -244
  93. package/dist/chunk-RZFAIM2Q.mjs +0 -123
  94. package/dist/chunk-SFYJAJOD.js +0 -42
  95. package/dist/chunk-SLWJHIVH.mjs +0 -123
  96. package/dist/chunk-TMDKQB2L.js +0 -153
  97. package/dist/chunk-TQQ4WVQU.mjs +0 -123
  98. package/dist/chunk-VCXFPTGD.js +0 -42
  99. package/dist/chunk-VNNNLYSW.js +0 -42
  100. package/dist/chunk-VO7KUMAO.js +0 -165
  101. package/dist/chunk-W4OP4EHX.mjs +0 -20
  102. package/dist/chunk-WA7TKN6M.js +0 -42
  103. package/dist/chunk-WI3YU7TV.js +0 -42
  104. package/dist/chunk-WPBR7BJZ.js +0 -269
  105. package/dist/chunk-X5A4S44V.mjs +0 -244
  106. package/dist/chunk-X5GVLHI2.mjs +0 -20
  107. package/dist/chunk-XLE7GSYM.mjs +0 -244
  108. package/dist/chunk-XSG7W73Z.mjs +0 -20
  109. package/dist/chunk-XZNO7DXS.js +0 -153
  110. package/dist/chunk-YKPZPQ5D.js +0 -269
  111. package/dist/chunk-ZGHPPTOO.js +0 -42
  112. package/dist/chunk-ZZT7HGAM.mjs +0 -123
@@ -1,20 +1,9 @@
1
1
  'use client';
2
- 'use client';
3
- 'use client';
4
- 'use client';
5
- 'use client';
6
- 'use client';
7
- 'use client';
8
- 'use client';
9
- 'use client';
10
- 'use client';
11
- 'use client';
12
- 'use client';
13
2
  'use strict';
14
3
 
15
- require('./chunk-4TVSMCQU.js');
16
- var chunkMBISMJDL_js = require('./chunk-MBISMJDL.js');
17
- var chunkIQX5LONG_js = require('./chunk-IQX5LONG.js');
4
+ require('./chunk-JFWIO2AR.js');
5
+ var chunk7FWFM2TR_js = require('./chunk-7FWFM2TR.js');
6
+ var chunk63LNKQZD_js = require('./chunk-63LNKQZD.js');
18
7
  var React25 = require('react');
19
8
  var lucideReact = require('lucide-react');
20
9
  var AlertDialogPrimitive = require('@radix-ui/react-alert-dialog');
@@ -86,7 +75,7 @@ var AlertDialogPortal = AlertDialogPrimitive__namespace.Portal;
86
75
  var AlertDialogOverlay = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React25__namespace.createElement(
87
76
  AlertDialogPrimitive__namespace.Overlay,
88
77
  {
89
- className: chunkIQX5LONG_js.cn(
78
+ className: chunk63LNKQZD_js.cn(
90
79
  "sb:fixed sb:inset-0 sb:z-50 sb:bg-background/80 sb:backdrop-blur-sm data-[state=open]:sb-animate-in data-[state=closed]:sb-animate-out data-[state=closed]:sb-fade-out-0 data-[state=open]:sb-fade-in-0",
91
80
  className
92
81
  ),
@@ -99,7 +88,7 @@ var AlertDialogContent = React25__namespace.forwardRef(({ className, ...props },
99
88
  AlertDialogPrimitive__namespace.Content,
100
89
  {
101
90
  ref,
102
- className: chunkIQX5LONG_js.cn(
91
+ className: chunk63LNKQZD_js.cn(
103
92
  "sb:fixed sb:font-roboto sb:left-[50%] sb:top-[50%] sb:z-50 sb:grid sb:w-full sb:max-w-lg sb:translate-x-[-50%] sb:translate-y-[-50%] sb:gap-4 sb:border sb:bg-background sb:p-6 sb:shadow-lg sb:duration-200 data-[state=open]:sb-animate-in data-[state=closed]:sb-animate-out data-[state=closed]:sb-fade-out-0 data-[state=open]:sb-fade-in-0 data-[state=closed]:sb-zoom-out-95 data-[state=open]:sb-zoom-in-95 data-[state=closed]:sb-slide-out-to-left-1/2 data-[state=closed]:sb-slide-out-to-top-[48%] data-[state=open]:sb-slide-in-from-left-1/2 data-[state=open]:sb-slide-in-from-top-[48%] sb:sm:rounded-lg",
104
93
  className
105
94
  ),
@@ -113,7 +102,7 @@ var AlertDialogFooter = ({
113
102
  }) => /* @__PURE__ */ React25__namespace.createElement(
114
103
  "div",
115
104
  {
116
- className: chunkIQX5LONG_js.cn(
105
+ className: chunk63LNKQZD_js.cn(
117
106
  "sb:flex sb:flex-col-reverse sb:sm:flex-row sb:sm:justify-end sb:sm:gap-2",
118
107
  className
119
108
  ),
@@ -125,7 +114,7 @@ var AlertDialogTitle = React25__namespace.forwardRef(({ className, ...props }, r
125
114
  AlertDialogPrimitive__namespace.Title,
126
115
  {
127
116
  ref,
128
- className: chunkIQX5LONG_js.cn("sb:text-lg sb:font-semibold", className),
117
+ className: chunk63LNKQZD_js.cn("sb:text-lg sb:font-semibold", className),
129
118
  ...props
130
119
  }
131
120
  ));
@@ -134,7 +123,7 @@ var AlertDialogDescription = React25__namespace.forwardRef(({ className, ...prop
134
123
  AlertDialogPrimitive__namespace.Description,
135
124
  {
136
125
  ref,
137
- className: chunkIQX5LONG_js.cn("sb:text-sm sb:text-muted-foreground", className),
126
+ className: chunk63LNKQZD_js.cn("sb:text-sm sb:text-muted-foreground", className),
138
127
  ...props
139
128
  }
140
129
  ));
@@ -143,7 +132,7 @@ var AlertDialogAction = React25__namespace.forwardRef(({ className, ...props },
143
132
  AlertDialogPrimitive__namespace.Action,
144
133
  {
145
134
  ref,
146
- className: chunkIQX5LONG_js.cn(chunkMBISMJDL_js.buttonVariants(), className),
135
+ className: chunk63LNKQZD_js.cn(chunk7FWFM2TR_js.buttonVariants(), className),
147
136
  ...props
148
137
  }
149
138
  ));
@@ -152,8 +141,8 @@ var AlertDialogCancel = React25__namespace.forwardRef(({ className, ...props },
152
141
  AlertDialogPrimitive__namespace.Cancel,
153
142
  {
154
143
  ref,
155
- className: chunkIQX5LONG_js.cn(
156
- chunkMBISMJDL_js.buttonVariants({ variant: "outline" }),
144
+ className: chunk63LNKQZD_js.cn(
145
+ chunk7FWFM2TR_js.buttonVariants({ variant: "outline" }),
157
146
  "sb:mt-2 sb:sm:mt-0",
158
147
  className
159
148
  ),
@@ -170,7 +159,7 @@ var PopoverContent = React25__namespace.forwardRef(({ className, align = "center
170
159
  ref,
171
160
  align,
172
161
  sideOffset,
173
- className: chunkIQX5LONG_js.cn(
162
+ className: chunk63LNKQZD_js.cn(
174
163
  "sb:z-50 sb:w-72 sb:rounded-md sb:border sb:bg-popover sb:text-popover-foreground sb:shadow-md sb:outline-hidden data-[state=open]:sb-animate-in data-[state=closed]:sb-animate-out data-[state=closed]:sb-fade-out-0 data-[state=open]:sb-fade-in-0 data-[state=closed]:sb-zoom-out-95 data-[state=open]:sb-zoom-in-95 data-[side=bottom]:sb-slide-in-from-top-2 data-[side=left]:sb-slide-in-from-right-2 data-[side=right]:sb-slide-in-from-left-2 data-[side=top]:sb-slide-in-from-bottom-2 sb:origin-(--radix-popover-content-transform-origin)",
175
164
  className
176
165
  ),
@@ -220,13 +209,16 @@ var Link = TiptapLink__default.default.extend({
220
209
  }
221
210
  });
222
211
 
212
+ // src/features/rich-text-editor/utils/normalize-rich-text-colors.ts
213
+ var normalizeRichTextColors = (html) => html.replaceAll(/hsl\(var\((--[A-Za-z0-9-]+)\)\)/g, "var($1)");
214
+
223
215
  // src/features/rich-text-editor/utils/get-output.ts
224
216
  var getOutput = (editor, format2) => {
225
217
  switch (format2) {
226
218
  case "json":
227
219
  return editor.getJSON();
228
220
  case "html":
229
- return editor.isEmpty ? "" : editor.getHTML();
221
+ return editor.isEmpty ? "" : normalizeRichTextColors(editor.getHTML());
230
222
  default:
231
223
  return editor.getText();
232
224
  }
@@ -245,7 +237,9 @@ var useRichTextEditor = ({
245
237
  (editor2) => {
246
238
  console.count("useRichTextEditor:handleCreate");
247
239
  if (value && editor2.isEmpty) {
248
- editor2.commands.setContent(value);
240
+ editor2.commands.setContent(
241
+ typeof value === "string" ? normalizeRichTextColors(value) : value
242
+ );
249
243
  }
250
244
  },
251
245
  [value]
@@ -271,7 +265,7 @@ var useRichTextEditor = ({
271
265
  autocomplete: "off",
272
266
  autocorrect: "off",
273
267
  autocapitalize: "off",
274
- class: chunkIQX5LONG_js.cn("sb-focus:outline-none", editorClassName)
268
+ class: chunk63LNKQZD_js.cn("sb-focus:outline-none", editorClassName)
275
269
  }
276
270
  },
277
271
  onCreate: ({ editor: editor2 }) => handleCreate(editor2),
@@ -288,7 +282,7 @@ var DropdownMenuSubTrigger = React25__namespace.forwardRef(({ className, inset,
288
282
  DropdownMenuPrimitive__namespace.SubTrigger,
289
283
  {
290
284
  ref,
291
- className: chunkIQX5LONG_js.cn(
285
+ className: chunk63LNKQZD_js.cn(
292
286
  "sb:flex sb:cursor-default sb:select-none sb:items-center sb:gap-2 sb:rounded-sm sb:px-2 sb:py-1.5 sb:text-sm sb:outline-hidden sb:focus:bg-accent sb:data-[state=open]:bg-accent sb:[&_svg]:pointer-events-none sb:[&_svg]:size-4 sb:[&_svg]:shrink-0",
293
287
  inset && "sb:pl-8",
294
288
  className
@@ -303,7 +297,7 @@ var DropdownMenuSubContent = React25__namespace.forwardRef(({ className, ...prop
303
297
  DropdownMenuPrimitive__namespace.SubContent,
304
298
  {
305
299
  ref,
306
- className: chunkIQX5LONG_js.cn(
300
+ className: chunk63LNKQZD_js.cn(
307
301
  "sb:z-50 sb:min-w-32 sb:overflow-hidden sb:rounded-md sb:border sb:bg-popover sb:p-1 sb:text-popover-foreground sb:shadow-lg data-[state=open]:sb-animate-in data-[state=closed]:sb-animate-out data-[state=closed]:sb-fade-out-0 data-[state=open]:sb-fade-in-0 data-[state=closed]:sb-zoom-out-95 data-[state=open]:sb-zoom-in-95 data-[side=bottom]:sb-slide-in-from-top-2 data-[side=left]:sb-slide-in-from-right-2 data-[side=right]:sb-slide-in-from-left-2 data-[side=top]:sb-slide-in-from-bottom-2 sb:origin-(--radix-dropdown-menu-content-transform-origin)",
308
302
  className
309
303
  ),
@@ -316,7 +310,7 @@ var DropdownMenuContent = React25__namespace.forwardRef(({ className, sideOffset
316
310
  {
317
311
  ref,
318
312
  sideOffset,
319
- className: chunkIQX5LONG_js.cn(
313
+ className: chunk63LNKQZD_js.cn(
320
314
  "sb:z-50 sb:max-h-(--radix-dropdown-menu-content-available-height) sb:min-w-32 sb:overflow-y-auto sb:overflow-x-hidden sb:rounded-md sb:border sb:bg-popover sb:p-1 sb:text-popover-foreground sb:shadow-md",
321
315
  "data-[state=open]:sb-animate-in data-[state=closed]:sb-animate-out data-[state=closed]:sb-fade-out-0 data-[state=open]:sb-fade-in-0 data-[state=closed]:sb-zoom-out-95 data-[state=open]:sb-zoom-in-95 data-[side=bottom]:sb-slide-in-from-top-2 data-[side=left]:sb-slide-in-from-right-2 data-[side=right]:sb-slide-in-from-left-2 data-[side=top]:sb-slide-in-from-bottom-2 sb:origin-(--radix-dropdown-menu-content-transform-origin)",
322
316
  className
@@ -329,7 +323,7 @@ var DropdownMenuItem = React25__namespace.forwardRef(({ className, inset, ...pro
329
323
  DropdownMenuPrimitive__namespace.Item,
330
324
  {
331
325
  ref,
332
- className: chunkIQX5LONG_js.cn(
326
+ className: chunk63LNKQZD_js.cn(
333
327
  "sb:relative sb:flex sb:cursor-default sb:select-none sb:items-center sb:gap-2 sb:rounded-sm sb:px-2 sb:py-1.5 sb:text-sm sb:outline-hidden sb:transition-colors sb:focus:bg-accent sb:focus:text-accent-foreground sb:data-disabled:pointer-events-none sb:data-disabled:opacity-50 sb:[&>svg]:size-4 sb:[&>svg]:shrink-0",
334
328
  inset && "sb:pl-8",
335
329
  className
@@ -342,7 +336,7 @@ var DropdownMenuCheckboxItem = React25__namespace.forwardRef(({ className, child
342
336
  DropdownMenuPrimitive__namespace.CheckboxItem,
343
337
  {
344
338
  ref,
345
- className: chunkIQX5LONG_js.cn(
339
+ className: chunk63LNKQZD_js.cn(
346
340
  "sb:relative sb:flex sb:cursor-default sb:select-none sb:items-center sb:rounded-sm sb:py-1.5 sb:pl-8 sb:pr-2 sb:text-sm sb:outline-hidden sb:transition-colors sb:focus:bg-accent sb:focus:text-accent-foreground sb:data-disabled:pointer-events-none sb:data-disabled:opacity-50",
347
341
  className
348
342
  ),
@@ -357,7 +351,7 @@ var DropdownMenuRadioItem = React25__namespace.forwardRef(({ className, children
357
351
  DropdownMenuPrimitive__namespace.RadioItem,
358
352
  {
359
353
  ref,
360
- className: chunkIQX5LONG_js.cn(
354
+ className: chunk63LNKQZD_js.cn(
361
355
  "sb:relative sb:flex sb:cursor-default sb:select-none sb:items-center sb:rounded-sm sb:py-1.5 sb:pl-8 sb:pr-2 sb:text-sm sb:outline-hidden sb:transition-colors sb:focus:bg-accent sb:focus:text-accent-foreground sb:data-disabled:pointer-events-none sb:data-disabled:opacity-50",
362
356
  className
363
357
  ),
@@ -371,7 +365,7 @@ var DropdownMenuLabel = React25__namespace.forwardRef(({ className, inset, ...pr
371
365
  DropdownMenuPrimitive__namespace.Label,
372
366
  {
373
367
  ref,
374
- className: chunkIQX5LONG_js.cn(
368
+ className: chunk63LNKQZD_js.cn(
375
369
  "sb:px-2 sb:py-1.5 sb:text-sm sb:font-semibold",
376
370
  inset && "sb:pl-8",
377
371
  className
@@ -384,7 +378,7 @@ var DropdownMenuSeparator = React25__namespace.forwardRef(({ className, ...props
384
378
  DropdownMenuPrimitive__namespace.Separator,
385
379
  {
386
380
  ref,
387
- className: chunkIQX5LONG_js.cn("sb:-mx-1 sb:my-1 sb:h-px sb:bg-muted", className),
381
+ className: chunk63LNKQZD_js.cn("sb:-mx-1 sb:my-1 sb:h-px sb:bg-muted", className),
388
382
  ...props
389
383
  }
390
384
  ));
@@ -396,7 +390,7 @@ var Separator2 = React25__namespace.forwardRef(
396
390
  ref,
397
391
  decorative,
398
392
  orientation,
399
- className: chunkIQX5LONG_js.cn(
393
+ className: chunk63LNKQZD_js.cn(
400
394
  "sb:shrink-0 sb:bg-border",
401
395
  orientation === "horizontal" ? "sb:h-px sb:w-full" : "sb:h-full sb:w-px",
402
396
  className
@@ -430,7 +424,7 @@ var Toggle = React25__namespace.forwardRef(({ className, variant, size, ...props
430
424
  TogglePrimitive__namespace.Root,
431
425
  {
432
426
  ref,
433
- className: chunkIQX5LONG_js.cn(toggleVariants({ variant, size, className })),
427
+ className: chunk63LNKQZD_js.cn(toggleVariants({ variant, size, className })),
434
428
  ...props
435
429
  }
436
430
  ));
@@ -443,7 +437,7 @@ var ToggleGroup = React25__namespace.forwardRef(({ className, variant, size, chi
443
437
  ToggleGroupPrimitive__namespace.Root,
444
438
  {
445
439
  ref,
446
- className: chunkIQX5LONG_js.cn("sb:flex sb:items-center sb:justify-center sb:gap-1", className),
440
+ className: chunk63LNKQZD_js.cn("sb:flex sb:items-center sb:justify-center sb:gap-1", className),
447
441
  ...props
448
442
  },
449
443
  /* @__PURE__ */ React25__namespace.createElement(ToggleGroupContext.Provider, { value: { variant, size } }, children)
@@ -455,7 +449,7 @@ var ToggleGroupItem = React25__namespace.forwardRef(({ className, children, vari
455
449
  ToggleGroupPrimitive__namespace.Item,
456
450
  {
457
451
  ref,
458
- className: chunkIQX5LONG_js.cn(
452
+ className: chunk63LNKQZD_js.cn(
459
453
  toggleVariants({
460
454
  variant: context.variant || variant,
461
455
  size: context.size || size
@@ -470,32 +464,34 @@ var ToggleGroupItem = React25__namespace.forwardRef(({ className, children, vari
470
464
  ToggleGroupItem.displayName = ToggleGroupPrimitive__namespace.Item.displayName;
471
465
  var PALETTES = [
472
466
  {
473
- inverse: "hsl(var(--background))",
467
+ inverse: "var(--background)",
474
468
  colors: [
475
- { cssVar: "hsl(var(--foreground))" },
476
- { cssVar: "hsl(var(--primary-foreground))" },
477
- { cssVar: "hsl(var(--secondary-foreground))" },
478
- { cssVar: "hsl(var(--tertiary-foreground))" },
479
- { cssVar: "hsl(var(--muted-foreground))" },
480
- { cssVar: "hsl(var(--accent-foreground))" },
481
- { cssVar: "hsl(var(--destructive-foreground))" }
469
+ { cssVar: "var(--foreground)" },
470
+ { cssVar: "var(--primary-foreground)" },
471
+ { cssVar: "var(--secondary-foreground)" },
472
+ { cssVar: "var(--tertiary-foreground)" },
473
+ { cssVar: "var(--muted-foreground)" },
474
+ { cssVar: "var(--accent-foreground)" },
475
+ { cssVar: "var(--destructive-foreground)" }
482
476
  ]
483
477
  },
484
478
  {
485
- inverse: "hsl(var(--foreground))",
479
+ inverse: "var(--foreground)",
486
480
  colors: [
487
- { cssVar: "hsl(var(--background))" },
488
- { cssVar: "hsl(var(--primary))" },
489
- { cssVar: "hsl(var(--secondary))" },
490
- { cssVar: "hsl(var(--tertiary))" },
491
- { cssVar: "hsl(var(--muted))" },
492
- { cssVar: "hsl(var(--accent))" },
493
- { cssVar: "hsl(var(--destructive))" }
481
+ { cssVar: "var(--background)" },
482
+ { cssVar: "var(--primary)" },
483
+ { cssVar: "var(--secondary)" },
484
+ { cssVar: "var(--tertiary)" },
485
+ { cssVar: "var(--muted)" },
486
+ { cssVar: "var(--accent)" },
487
+ { cssVar: "var(--destructive)" }
494
488
  ]
495
489
  }
496
490
  ];
497
491
  var ColorTool = ({ editor }) => {
498
- const color = editor.getAttributes("textStyle")?.color || "hsl(var(--foreground))";
492
+ const color = normalizeRichTextColors(
493
+ editor.getAttributes("textStyle")?.color || "var(--foreground)"
494
+ );
499
495
  const [selectedColor, setSelectedColor] = React25__namespace.useState(color);
500
496
  React25__namespace.useEffect(() => {
501
497
  setSelectedColor(color);
@@ -542,7 +538,7 @@ var ColorTool = ({ editor }) => {
542
538
  value: color2.cssVar,
543
539
  style: { backgroundColor: color2.cssVar }
544
540
  },
545
- selectedColor === color2.cssVar && /* @__PURE__ */ React25__namespace.createElement(
541
+ normalizeRichTextColors(selectedColor) === color2.cssVar && /* @__PURE__ */ React25__namespace.createElement(
546
542
  lu.LuCheck,
547
543
  {
548
544
  className: "sb:absolute sb:inset-0 sb:m-auto sb:size-6",
@@ -607,7 +603,7 @@ var ElementTool = ({ editor }) => {
607
603
  DropdownMenuItem,
608
604
  {
609
605
  key: action.label,
610
- className: chunkIQX5LONG_js.cn({
606
+ className: chunk63LNKQZD_js.cn({
611
607
  "sb:bg-accent": action.level ? editor.isActive("heading", { level: action.level }) : editor.isActive("paragraph")
612
608
  }),
613
609
  onClick: () => handleFormatChange(action.level)
@@ -704,7 +700,7 @@ var DialogOverlay = React25__namespace.forwardRef(({ className, ...props }, ref)
704
700
  DialogPrimitive__namespace.Overlay,
705
701
  {
706
702
  ref,
707
- className: chunkIQX5LONG_js.cn(
703
+ className: chunk63LNKQZD_js.cn(
708
704
  "sb:fixed sb:inset-0 sb:z-50 sb:bg-black/80 sb- data-[state=open]:sb-animate-in data-[state=closed]:sb-animate-out data-[state=closed]:sb-fade-out-0 data-[state=open]:sb-fade-in-0",
709
705
  className
710
706
  ),
@@ -716,7 +712,7 @@ var DialogContent = React25__namespace.forwardRef(({ className, children, ...pro
716
712
  DialogPrimitive__namespace.Content,
717
713
  {
718
714
  ref,
719
- className: chunkIQX5LONG_js.cn(
715
+ className: chunk63LNKQZD_js.cn(
720
716
  "sb:fixed sb:left-[50%] sb:top-[50%] sb:z-50 sb:grid sb:w-full sb:max-w-lg sb:translate-x-[-50%] sb:translate-y-[-50%] sb:gap-4 sb:border sb:bg-background sb:p-6 sb:shadow-lg sb:duration-200 data-[state=open]:sb-animate-in data-[state=closed]:sb-animate-out data-[state=closed]:sb-fade-out-0 data-[state=open]:sb-fade-in-0 data-[state=closed]:sb-zoom-out-95 data-[state=open]:sb-zoom-in-95 data-[state=closed]:sb-slide-out-to-left-1/2 data-[state=closed]:sb-slide-out-to-top-[48%] data-[state=open]:sb-slide-in-from-left-1/2 data-[state=open]:sb-slide-in-from-top-[48%] sb:sm:rounded-lg",
721
717
  className
722
718
  ),
@@ -732,7 +728,7 @@ var DialogHeader = ({
732
728
  }) => /* @__PURE__ */ React25__namespace.createElement(
733
729
  "div",
734
730
  {
735
- className: chunkIQX5LONG_js.cn(
731
+ className: chunk63LNKQZD_js.cn(
736
732
  "sb:flex sb:flex-col sb:gap-1.5 sb:text-center sb:sm:text-left",
737
733
  className
738
734
  ),
@@ -744,7 +740,7 @@ var DialogTitle = React25__namespace.forwardRef(({ className, ...props }, ref) =
744
740
  DialogPrimitive__namespace.Title,
745
741
  {
746
742
  ref,
747
- className: chunkIQX5LONG_js.cn(
743
+ className: chunk63LNKQZD_js.cn(
748
744
  "sb:text-lg sb:font-semibold sb:leading-none sb:tracking-tight",
749
745
  className
750
746
  ),
@@ -756,7 +752,7 @@ var DialogDescription = React25__namespace.forwardRef(({ className, ...props },
756
752
  DialogPrimitive__namespace.Description,
757
753
  {
758
754
  ref,
759
- className: chunkIQX5LONG_js.cn("sb:text-sm sb:text-muted-foreground", className),
755
+ className: chunk63LNKQZD_js.cn("sb:text-sm sb:text-muted-foreground", className),
760
756
  ...props
761
757
  }
762
758
  ));
@@ -768,7 +764,7 @@ var Label2 = React25__namespace.forwardRef(({ className, ...props }, ref) => /*
768
764
  LabelPrimitive__namespace.Root,
769
765
  {
770
766
  ref,
771
- className: chunkIQX5LONG_js.cn(labelVariants(), className),
767
+ className: chunk63LNKQZD_js.cn(labelVariants(), className),
772
768
  ...props
773
769
  }
774
770
  ));
@@ -807,7 +803,7 @@ var FormItemContext = React25__namespace.createContext(
807
803
  );
808
804
  var FormItem = React25__namespace.forwardRef(({ className, ...props }, ref) => {
809
805
  const id = React25__namespace.useId();
810
- return /* @__PURE__ */ React25__namespace.createElement(FormItemContext.Provider, { value: { id } }, /* @__PURE__ */ React25__namespace.createElement("div", { ref, className: chunkIQX5LONG_js.cn("sb:flex sb:flex-col sb:gap-2", className), ...props }));
806
+ return /* @__PURE__ */ React25__namespace.createElement(FormItemContext.Provider, { value: { id } }, /* @__PURE__ */ React25__namespace.createElement("div", { ref, className: chunk63LNKQZD_js.cn("sb:flex sb:flex-col sb:gap-2", className), ...props }));
811
807
  });
812
808
  FormItem.displayName = "FormItem";
813
809
  var FormLabel = React25__namespace.forwardRef(({ className, ...props }, ref) => {
@@ -816,7 +812,7 @@ var FormLabel = React25__namespace.forwardRef(({ className, ...props }, ref) =>
816
812
  Label2,
817
813
  {
818
814
  ref,
819
- className: chunkIQX5LONG_js.cn(error && "sb:text-destructive", className),
815
+ className: chunk63LNKQZD_js.cn(error && "sb:text-destructive", className),
820
816
  htmlFor: formItemId,
821
817
  ...props
822
818
  }
@@ -844,7 +840,7 @@ var FormDescription = React25__namespace.forwardRef(({ className, ...props }, re
844
840
  {
845
841
  ref,
846
842
  id: formDescriptionId,
847
- className: chunkIQX5LONG_js.cn("sb:text-[0.8rem] sb:text-muted-foreground", className),
843
+ className: chunk63LNKQZD_js.cn("sb:text-[0.8rem] sb:text-muted-foreground", className),
848
844
  ...props
849
845
  }
850
846
  );
@@ -861,7 +857,7 @@ var FormMessage = React25__namespace.forwardRef(({ className, children, ...props
861
857
  {
862
858
  ref,
863
859
  id: formMessageId,
864
- className: chunkIQX5LONG_js.cn("sb:text-[0.8rem] sb:font-medium sb:text-destructive", className),
860
+ className: chunk63LNKQZD_js.cn("sb:text-[0.8rem] sb:font-medium sb:text-destructive", className),
865
861
  ...props
866
862
  },
867
863
  body
@@ -874,7 +870,7 @@ var Input = React25__namespace.forwardRef(
874
870
  "input",
875
871
  {
876
872
  type,
877
- className: chunkIQX5LONG_js.cn(
873
+ className: chunk63LNKQZD_js.cn(
878
874
  "sb:flex sb:h-9 sb:w-full sb:rounded-md sb:border sb:border-input sb:bg-transparent sb:px-3 sb:py-1 sb:text-base sb:shadow-sm sb:transition-colors sb:file:border-0 sb:file:bg-transparent sb:file:text-sm sb:file:font-medium sb:file:text-foreground sb:placeholder:text-muted-foreground sb:focus-visible:outline-hidden sb:focus-visible:ring-1 sb:focus-visible:ring-ring sb:disabled:cursor-not-allowed sb:disabled:opacity-50 sb:md:text-sm",
879
875
  className
880
876
  ),
@@ -894,7 +890,7 @@ AdvancedInput.displayName = "AdvancedInput";
894
890
  var Switch = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React25__namespace.createElement(
895
891
  SwitchPrimitives__namespace.Root,
896
892
  {
897
- className: chunkIQX5LONG_js.cn(
893
+ className: chunk63LNKQZD_js.cn(
898
894
  "sb:peer sb:inline-flex sb:h-5 sb:w-9 sb:shrink-0 sb:cursor-pointer sb:items-center sb:rounded-full sb:border-2 sb:border-transparent sb:shadow-sm sb:transition-colors sb:focus-visible:outline-hidden sb:focus-visible:ring-2 sb:focus-visible:ring-ring sb:focus-visible:ring-offset-2 sb:focus-visible:ring-offset-background sb:disabled:cursor-not-allowed sb:disabled:opacity-50 sb:data-[state=checked]:bg-primary sb:data-[state=unchecked]:bg-input",
899
895
  className
900
896
  ),
@@ -904,7 +900,7 @@ var Switch = React25__namespace.forwardRef(({ className, ...props }, ref) => /*
904
900
  /* @__PURE__ */ React25__namespace.createElement(
905
901
  SwitchPrimitives__namespace.Thumb,
906
902
  {
907
- className: chunkIQX5LONG_js.cn(
903
+ className: chunk63LNKQZD_js.cn(
908
904
  "sb:pointer-events-none sb:block sb:h-4 sb:w-4 sb:rounded-full sb:bg-background sb:shadow-lg sb:ring-0 sb:transition-transform sb:data-[state=checked]:translate-x-4 sb:data-[state=unchecked]:translate-x-0"
909
905
  )
910
906
  }
@@ -993,7 +989,7 @@ var LinkForm = ({
993
989
  }
994
990
  )), /* @__PURE__ */ React25__namespace.createElement(FormLabel, null, "Open in new tab")), /* @__PURE__ */ React25__namespace.createElement(FormMessage, null))
995
991
  }
996
- ), /* @__PURE__ */ React25__namespace.createElement(chunkMBISMJDL_js.Button, { type: "button", onClick: form.handleSubmit(handleSubmit) }, "Save")));
992
+ ), /* @__PURE__ */ React25__namespace.createElement(chunk7FWFM2TR_js.Button, { type: "button", onClick: form.handleSubmit(handleSubmit) }, "Save")));
997
993
  };
998
994
  var actions3 = [
999
995
  {
@@ -1048,7 +1044,7 @@ var ToolbarSection = ({
1048
1044
  DropdownMenuItem,
1049
1045
  {
1050
1046
  key: action.label,
1051
- className: chunkIQX5LONG_js.cn("sb:flex sb:flex-row sb:items-center sb:gap-2", {
1047
+ className: chunk63LNKQZD_js.cn("sb:flex sb:flex-row sb:items-center sb:gap-2", {
1052
1048
  "sb:bg-accent": action.isActive(editor)
1053
1049
  }),
1054
1050
  onClick: () => action.action(editor),
@@ -1063,7 +1059,7 @@ var ToolbarButton = React25__namespace.forwardRef(({ className, ...props }, ref)
1063
1059
  Toggle,
1064
1060
  {
1065
1061
  size: "sm",
1066
- className: chunkIQX5LONG_js.cn(
1062
+ className: chunk63LNKQZD_js.cn(
1067
1063
  "sb:size-8 sb:p-0 sb:data-[state=on]:bg-accent",
1068
1064
  { "sb:bg-accent": props.pressed },
1069
1065
  className
@@ -1088,7 +1084,7 @@ var RichTextEditor = ({
1088
1084
  const editor = useRichTextEditor({
1089
1085
  value,
1090
1086
  onUpdate: onChange,
1091
- editorClassName: chunkIQX5LONG_js.cn("sb:flex-1 sb:px-3 sb:py-1", editorClassName),
1087
+ editorClassName: chunk63LNKQZD_js.cn("sb:flex-1 sb:px-3 sb:py-1", editorClassName),
1092
1088
  ...props
1093
1089
  });
1094
1090
  if (!editor) {
@@ -1097,7 +1093,7 @@ var RichTextEditor = ({
1097
1093
  return /* @__PURE__ */ React25__namespace.createElement(
1098
1094
  "div",
1099
1095
  {
1100
- className: chunkIQX5LONG_js.cn(
1096
+ className: chunk63LNKQZD_js.cn(
1101
1097
  "sb:flex sb:h-auto sb:min-h-72 sb:w-full sb:flex-col sb:rounded-md sb:border sb:border-input sb:shadow-sm sb:focus-within:border-primary",
1102
1098
  className
1103
1099
  )
@@ -1107,7 +1103,7 @@ var RichTextEditor = ({
1107
1103
  react.EditorContent,
1108
1104
  {
1109
1105
  editor,
1110
- className: chunkIQX5LONG_js.cn(
1106
+ className: chunk63LNKQZD_js.cn(
1111
1107
  "sb-editflow prose sb:flex sb:flex-1",
1112
1108
  editorContentClassName
1113
1109
  )
@@ -1125,15 +1121,15 @@ function Calendar({
1125
1121
  reactDayPicker.DayPicker,
1126
1122
  {
1127
1123
  showOutsideDays,
1128
- className: chunkIQX5LONG_js.cn("sb:p-3 sb:font-roboto", className),
1124
+ className: chunk63LNKQZD_js.cn("sb:p-3 sb:font-roboto", className),
1129
1125
  classNames: {
1130
1126
  months: "sb:flex sb:flex-col sb:sm:flex-row sb:gap-y-4 sb:sm:gap-x-4 sb:sm:gap-y-0",
1131
1127
  month: "sb:gap-y-4",
1132
1128
  caption: "sb:flex sb:justify-center sb:pt-1 sb:relative sb:items-center",
1133
1129
  caption_label: "sb:text-sm sb:font-medium",
1134
1130
  nav: "sb:gap-x-1 sb:flex sb:items-center",
1135
- nav_button: chunkIQX5LONG_js.cn(
1136
- chunkMBISMJDL_js.buttonVariants({ variant: "outline" }),
1131
+ nav_button: chunk63LNKQZD_js.cn(
1132
+ chunk7FWFM2TR_js.buttonVariants({ variant: "outline" }),
1137
1133
  "sb:h-7 sb:w-7 sb:bg-transparent sb:p-0 sb:opacity-50 sb:hover:opacity-100"
1138
1134
  ),
1139
1135
  nav_button_previous: "sb:absolute sb:left-1",
@@ -1142,12 +1138,12 @@ function Calendar({
1142
1138
  head_row: "sb:flex",
1143
1139
  head_cell: "sb:text-muted-foreground sb:rounded-md sb:w-8 sb:font-normal sb:text-[0.8rem]",
1144
1140
  row: "sb:flex sb:w-full sb:mt-2",
1145
- cell: chunkIQX5LONG_js.cn(
1141
+ cell: chunk63LNKQZD_js.cn(
1146
1142
  "sb:relative sb:p-0 sb:text-center sb:text-sm sb:focus-within:relative sb:focus-within:z-20 sb:[&:has([aria-selected])]:bg-accent sb:[&:has([aria-selected].day-outside)]:bg-accent/50 sb:[&:has([aria-selected].day-range-end)]:rounded-r-md",
1147
1143
  props.mode === "range" ? "sb:[&:has(>.day-range-end)]:rounded-r-md sb:[&:has(>.day-range-start)]:rounded-l-md sb:first:[&:has([aria-selected])]:rounded-l-md sb:last:[&:has([aria-selected])]:rounded-r-md" : "sb:[&:has([aria-selected])]:rounded-md"
1148
1144
  ),
1149
- day: chunkIQX5LONG_js.cn(
1150
- chunkMBISMJDL_js.buttonVariants({ variant: "ghost" }),
1145
+ day: chunk63LNKQZD_js.cn(
1146
+ chunk7FWFM2TR_js.buttonVariants({ variant: "ghost" }),
1151
1147
  "sb:h-8 sb:w-8 sb:p-0 sb:font-normal sb:aria-selected:opacity-100"
1152
1148
  ),
1153
1149
  day_range_start: "day-range-start",
@@ -1183,11 +1179,11 @@ var ColorPicker = (props) => {
1183
1179
  "#FF0000"
1184
1180
  ];
1185
1181
  return /* @__PURE__ */ React25__namespace.createElement(Popover, null, /* @__PURE__ */ React25__namespace.createElement(PopoverTrigger, { asChild: true }, /* @__PURE__ */ React25__namespace.createElement(
1186
- chunkMBISMJDL_js.Button,
1182
+ chunk7FWFM2TR_js.Button,
1187
1183
  {
1188
1184
  variant: "outline",
1189
1185
  size: "sm",
1190
- className: chunkIQX5LONG_js.cn(
1186
+ className: chunk63LNKQZD_js.cn(
1191
1187
  "sb:justify-start sb:text-left sb:font-normal sb:normal-case sb:w-full",
1192
1188
  !color && "sb:text-muted-foreground",
1193
1189
  className
@@ -1210,11 +1206,26 @@ var ColorPicker = (props) => {
1210
1206
  }
1211
1207
  ))));
1212
1208
  };
1209
+ var IMAGE_FILE_ACCEPT = ".png,.jpg,.jpeg,.webp,.gif,.svg";
1210
+ var MEDIA_FILE_ACCEPT = `${IMAGE_FILE_ACCEPT},.mp4,.webm,.mov,.ogg,.ogv,.m4v,video/*`;
1211
+ var VIDEO_EXTENSIONS = [".mp4", ".webm", ".mov", ".ogg", ".ogv", ".m4v"];
1212
+ var isVideoUrl = (src) => {
1213
+ const path = src.split("?")[0].split("#")[0].toLowerCase();
1214
+ return VIDEO_EXTENSIONS.some((ext) => path.endsWith(ext));
1215
+ };
1216
+ var isVideoFile = (file) => file.type.startsWith("video/") || isVideoUrl(file.name);
1213
1217
  var MediaInput = (props) => {
1214
- const { onFilesChange, limit = 32, multiple = false, onError } = props;
1218
+ const {
1219
+ onFilesChange,
1220
+ limit = 32,
1221
+ multiple = false,
1222
+ onError,
1223
+ accept = MEDIA_FILE_ACCEPT
1224
+ } = props;
1215
1225
  const id = React25__namespace.useId();
1216
1226
  const [queue, setQueue] = React25__namespace.useState([]);
1217
1227
  const [sources, setSources] = React25__namespace.useState(props.files ?? []);
1228
+ const [videoUrls, setVideoUrls] = React25__namespace.useState({});
1218
1229
  const maxConcurrentUploads = 3;
1219
1230
  const uploadingCountRef = React25__namespace.useRef(0);
1220
1231
  const handleFilesAdd = async (e) => {
@@ -1264,6 +1275,9 @@ var MediaInput = (props) => {
1264
1275
  );
1265
1276
  continue;
1266
1277
  }
1278
+ if (isVideoFile(file)) {
1279
+ setVideoUrls((prev) => ({ ...prev, [url]: true }));
1280
+ }
1267
1281
  setSources((prev) => [...prev, url]);
1268
1282
  onFilesChange?.([...sources, url]);
1269
1283
  } catch (e2) {
@@ -1287,13 +1301,11 @@ var MediaInput = (props) => {
1287
1301
  body: JSON.stringify({ src })
1288
1302
  });
1289
1303
  };
1290
- return /* @__PURE__ */ React25__namespace.createElement("div", { className: chunkIQX5LONG_js.cn("flex flex-wrap gap-4", props.className) }, sources.map((src) => /* @__PURE__ */ React25__namespace.createElement(MediaInputItem, { key: src, className: chunkIQX5LONG_js.cn("group", props.itemClassName) }, /* @__PURE__ */ React25__namespace.createElement(
1291
- chunkIQX5LONG_js.Image,
1304
+ return /* @__PURE__ */ React25__namespace.createElement("div", { className: chunk63LNKQZD_js.cn("flex flex-wrap gap-4", props.className) }, sources.map((src) => /* @__PURE__ */ React25__namespace.createElement(MediaInputItem, { key: src, className: chunk63LNKQZD_js.cn("group", props.itemClassName) }, /* @__PURE__ */ React25__namespace.createElement(
1305
+ MediaPreview,
1292
1306
  {
1293
1307
  src,
1294
- alt: "",
1295
- fill: true,
1296
- className: "sb:absolute sb:inset-0 sb:object-cover sb:pointer-events-none"
1308
+ isVideo: !!videoUrls[src] || isVideoUrl(src)
1297
1309
  }
1298
1310
  ), /* @__PURE__ */ React25__namespace.createElement("div", { className: "sb:absolute sb:right-1 sb:top-1 sb:z-30 sb:flex sb:items-center sb:justify-end sb:gap-3 sb:opacity-0 sb:transition-opacity sb:group-hover:opacity-100" }, /* @__PURE__ */ React25__namespace.createElement(
1299
1311
  "button",
@@ -1306,7 +1318,7 @@ var MediaInput = (props) => {
1306
1318
  MediaInputItem,
1307
1319
  {
1308
1320
  key: i,
1309
- className: chunkIQX5LONG_js.cn(
1321
+ className: chunk63LNKQZD_js.cn(
1310
1322
  "sb:flex sb:h-28 sb:w-28 sb:items-center sb:justify-center",
1311
1323
  props.itemClassName
1312
1324
  )
@@ -1316,7 +1328,7 @@ var MediaInput = (props) => {
1316
1328
  "label",
1317
1329
  {
1318
1330
  htmlFor: id,
1319
- className: chunkIQX5LONG_js.cn(
1331
+ className: chunk63LNKQZD_js.cn(
1320
1332
  "sb:flex sb:h-28 sb:w-28 sb:cursor-pointer sb:items-center sb:justify-center sb:rounded-lg sb:border",
1321
1333
  props.itemClassName
1322
1334
  )
@@ -1329,7 +1341,7 @@ var MediaInput = (props) => {
1329
1341
  type: "file",
1330
1342
  onChange: handleFilesAdd,
1331
1343
  multiple,
1332
- accept: ".png,.jpg,.jpeg,.webp,.gif,.svg",
1344
+ accept,
1333
1345
  className: "sb:hidden"
1334
1346
  }
1335
1347
  )
@@ -1339,7 +1351,7 @@ var MediaInputItem = (props) => {
1339
1351
  return /* @__PURE__ */ React25__namespace.createElement(
1340
1352
  "div",
1341
1353
  {
1342
- className: chunkIQX5LONG_js.cn(
1354
+ className: chunk63LNKQZD_js.cn(
1343
1355
  "sb:relative sb:h-28 sb:w-28 sb:overflow-hidden sb:rounded-lg sb:border",
1344
1356
  props.className
1345
1357
  )
@@ -1347,6 +1359,33 @@ var MediaInputItem = (props) => {
1347
1359
  props.children
1348
1360
  );
1349
1361
  };
1362
+ var MediaPreview = (props) => {
1363
+ const [kind, setKind] = React25__namespace.useState(
1364
+ props.isVideo ? "video" : "image"
1365
+ );
1366
+ if (kind === "video") {
1367
+ return /* @__PURE__ */ React25__namespace.createElement(
1368
+ "video",
1369
+ {
1370
+ src: props.src,
1371
+ muted: true,
1372
+ playsInline: true,
1373
+ preload: "metadata",
1374
+ className: "sb:absolute sb:inset-0 sb:h-full sb:w-full sb:object-cover sb:pointer-events-none"
1375
+ }
1376
+ );
1377
+ }
1378
+ return /* @__PURE__ */ React25__namespace.createElement(
1379
+ chunk63LNKQZD_js.Image,
1380
+ {
1381
+ src: props.src,
1382
+ alt: "",
1383
+ fill: true,
1384
+ className: "sb:absolute sb:inset-0 sb:object-cover sb:pointer-events-none",
1385
+ onError: () => setKind("video")
1386
+ }
1387
+ );
1388
+ };
1350
1389
  var MediaInputError = class extends Error {
1351
1390
  title;
1352
1391
  description;
@@ -1362,7 +1401,7 @@ var SelectTrigger = React25__namespace.forwardRef(({ className, children, ...pro
1362
1401
  SelectPrimitive__namespace.Trigger,
1363
1402
  {
1364
1403
  ref,
1365
- className: chunkIQX5LONG_js.cn(
1404
+ className: chunk63LNKQZD_js.cn(
1366
1405
  "sb:flex sb:h-10 sb:w-full sb:items-center sb:justify-between sb:rounded-md sb:border sb:border-input sb:bg-background sb:px-3 sb:py-2 sb:text-sm sb:ring-offset-background sb:placeholder:text-muted-foreground sb:focus:outline-hidden sb:focus:ring-2 sb:focus:ring-ring sb:focus:ring-offset-2 sb:disabled:cursor-not-allowed sb:disabled:opacity-50 sb:[&>span]:line-clamp-1",
1367
1406
  className
1368
1407
  ),
@@ -1376,7 +1415,7 @@ var SelectScrollUpButton = React25__namespace.forwardRef(({ className, ...props
1376
1415
  SelectPrimitive__namespace.ScrollUpButton,
1377
1416
  {
1378
1417
  ref,
1379
- className: chunkIQX5LONG_js.cn(
1418
+ className: chunk63LNKQZD_js.cn(
1380
1419
  "sb:flex sb:cursor-default sb:items-center sb:justify-center sb:py-1",
1381
1420
  className
1382
1421
  ),
@@ -1389,7 +1428,7 @@ var SelectScrollDownButton = React25__namespace.forwardRef(({ className, ...prop
1389
1428
  SelectPrimitive__namespace.ScrollDownButton,
1390
1429
  {
1391
1430
  ref,
1392
- className: chunkIQX5LONG_js.cn(
1431
+ className: chunk63LNKQZD_js.cn(
1393
1432
  "sb:flex sb:cursor-default sb:items-center sb:justify-center sb:py-1",
1394
1433
  className
1395
1434
  ),
@@ -1402,7 +1441,7 @@ var SelectContent = React25__namespace.forwardRef(({ className, children, positi
1402
1441
  SelectPrimitive__namespace.Content,
1403
1442
  {
1404
1443
  ref,
1405
- className: chunkIQX5LONG_js.cn(
1444
+ className: chunk63LNKQZD_js.cn(
1406
1445
  "sb:relative sb:z-50 sb:max-h-96 sb:min-w-32 sb:overflow-hidden sb:rounded-md sb:border sb:bg-popover sb:text-popover-foreground sb:shadow-md data-[state=open]:sb-animate-in data-[state=closed]:sb-animate-out data-[state=closed]:sb-fade-out-0 data-[state=open]:sb-fade-in-0 data-[state=closed]:sb-zoom-out-95 data-[state=open]:sb-zoom-in-95 data-[side=bottom]:sb-slide-in-from-top-2 data-[side=left]:sb-slide-in-from-right-2 data-[side=right]:sb-slide-in-from-left-2 data-[side=top]:sb-slide-in-from-bottom-2",
1407
1446
  position === "popper" && "sb:data-[side=bottom]:translate-y-1 sb:data-[side=left]:-translate-x-1 sb:data-[side=right]:translate-x-1 sb:data-[side=top]:-translate-y-1",
1408
1447
  className
@@ -1414,7 +1453,7 @@ var SelectContent = React25__namespace.forwardRef(({ className, children, positi
1414
1453
  /* @__PURE__ */ React25__namespace.createElement(
1415
1454
  SelectPrimitive__namespace.Viewport,
1416
1455
  {
1417
- className: chunkIQX5LONG_js.cn(
1456
+ className: chunk63LNKQZD_js.cn(
1418
1457
  "sb:p-1",
1419
1458
  position === "popper" && "sb:h-(--radix-select-trigger-height) sb:w-full sb:min-w-(--radix-select-trigger-width)"
1420
1459
  )
@@ -1428,7 +1467,7 @@ var SelectLabel = React25__namespace.forwardRef(({ className, ...props }, ref) =
1428
1467
  SelectPrimitive__namespace.Label,
1429
1468
  {
1430
1469
  ref,
1431
- className: chunkIQX5LONG_js.cn(
1470
+ className: chunk63LNKQZD_js.cn(
1432
1471
  "sb:py-1.5 sb:pl-8 sb:pr-2 sb:text-sm sb:font-semibold",
1433
1472
  className
1434
1473
  ),
@@ -1440,7 +1479,7 @@ var SelectItem = React25__namespace.forwardRef(({ className, children, ...props
1440
1479
  SelectPrimitive__namespace.Item,
1441
1480
  {
1442
1481
  ref,
1443
- className: chunkIQX5LONG_js.cn(
1482
+ className: chunk63LNKQZD_js.cn(
1444
1483
  "sb:relative sb:flex sb:w-full sb:cursor-default sb:select-none sb:items-center sb:rounded-sm sb:py-1.5 sb:pl-8 sb:pr-2 sb:text-sm sb:outline-hidden sb:focus:bg-accent sb:focus:text-accent-foreground sb:data-disabled:pointer-events-none sb:data-disabled:opacity-50",
1445
1484
  className
1446
1485
  ),
@@ -1454,7 +1493,7 @@ var SelectSeparator = React25__namespace.forwardRef(({ className, ...props }, re
1454
1493
  SelectPrimitive__namespace.Separator,
1455
1494
  {
1456
1495
  ref,
1457
- className: chunkIQX5LONG_js.cn("sb:-mx-1 sb:my-1 sb:h-px sb:bg-muted", className),
1496
+ className: chunk63LNKQZD_js.cn("sb:-mx-1 sb:my-1 sb:h-px sb:bg-muted", className),
1458
1497
  ...props
1459
1498
  }
1460
1499
  ));
@@ -1464,7 +1503,7 @@ var Textarea = React25__namespace.forwardRef(
1464
1503
  return /* @__PURE__ */ React25__namespace.createElement(
1465
1504
  "textarea",
1466
1505
  {
1467
- className: chunkIQX5LONG_js.cn(
1506
+ className: chunk63LNKQZD_js.cn(
1468
1507
  "sb:flex sb:min-h-[60px] sb:font-roboto sb:w-full sb:rounded-md sb:border sb:border-input sb:bg-transparent sb:px-3 sb:py-2 sb:text-sm sb:shadow-sm sb:placeholder:text-muted-foreground sb:focus-visible:outline-hidden sb:focus-visible:ring-1 sb:focus-visible:ring-ring sb:disabled:cursor-not-allowed sb:disabled:opacity-50",
1469
1508
  className
1470
1509
  ),
@@ -1479,8 +1518,8 @@ Textarea.displayName = "Textarea";
1479
1518
  // src/components/container-item-form.tsx
1480
1519
  var ContainerItemForm = (props) => {
1481
1520
  const { item } = props;
1482
- const { patchItem } = chunkMBISMJDL_js.useBuilder();
1483
- const component = chunkIQX5LONG_js.builder.getComponent(item.component);
1521
+ const { patchItem } = chunk7FWFM2TR_js.useBuilder();
1522
+ const component = chunk63LNKQZD_js.builder.getComponent(item.component);
1484
1523
  if (!component) {
1485
1524
  throw new Error(
1486
1525
  `[simple-builder]: Component with id ${item.component} not found in container item form component`
@@ -1511,7 +1550,7 @@ var ContainerItemForm = (props) => {
1511
1550
  input,
1512
1551
  form
1513
1552
  }
1514
- )), /* @__PURE__ */ React25__namespace.createElement(chunkMBISMJDL_js.Button, { type: "submit", className: "w-full" }, "Opslaan"))));
1553
+ )), /* @__PURE__ */ React25__namespace.createElement(chunk7FWFM2TR_js.Button, { type: "submit", className: "w-full" }, "Opslaan"))));
1515
1554
  };
1516
1555
  var RenderFormField = (props) => {
1517
1556
  const { type, input, form } = props;
@@ -1552,12 +1591,12 @@ var RenderFormField = (props) => {
1552
1591
  /* @__PURE__ */ React25__namespace.createElement(lucideReact.XIcon, { className: "sb:h-4 sb:w-4" })
1553
1592
  ))
1554
1593
  ), /* @__PURE__ */ React25__namespace.createElement(
1555
- chunkMBISMJDL_js.Button,
1594
+ chunk7FWFM2TR_js.Button,
1556
1595
  {
1557
1596
  type: "button",
1558
1597
  variant: "outline",
1559
1598
  size: "sm",
1560
- className: chunkIQX5LONG_js.cn(
1599
+ className: chunk63LNKQZD_js.cn(
1561
1600
  "sb:w-[89%] sb:border-2 sb:border-dashed sb:text-muted-foreground",
1562
1601
  type === "grouped" && "sb:w-full"
1563
1602
  ),
@@ -1583,7 +1622,7 @@ var RenderFormField = (props) => {
1583
1622
  }
1584
1623
  );
1585
1624
  case "richText":
1586
- return /* @__PURE__ */ React25__namespace.createElement(Dialog, null, /* @__PURE__ */ React25__namespace.createElement("div", { className: "sb:flex sb:flex-col sb:gap-2" }, /* @__PURE__ */ React25__namespace.createElement(FormLabel, null, input.friendlyName || input.name), /* @__PURE__ */ React25__namespace.createElement(DialogTrigger, { asChild: true }, /* @__PURE__ */ React25__namespace.createElement(chunkMBISMJDL_js.Button, { variant: "outline", className: "sb:w-full", type: "button" }, input.friendlyName || input.name, " bewerken"))), /* @__PURE__ */ React25__namespace.createElement(DialogContent, { className: "sb:max-w-3xl sb:p-0" }, /* @__PURE__ */ React25__namespace.createElement("div", { className: "sb:flex sb:h-full sb:max-h-svh sb:w-full sb:flex-col sb:sm:max-h-[90svh]" }, /* @__PURE__ */ React25__namespace.createElement(DialogHeader, { className: "sb:flex-none sb:border-b sb:p-6" }, /* @__PURE__ */ React25__namespace.createElement(DialogTitle, null, input.friendlyName || input.name, " editor")), /* @__PURE__ */ React25__namespace.createElement("div", { className: "sb:flex-1 sb:overflow-y-auto" }, /* @__PURE__ */ React25__namespace.createElement(
1625
+ return /* @__PURE__ */ React25__namespace.createElement(Dialog, null, /* @__PURE__ */ React25__namespace.createElement("div", { className: "sb:flex sb:flex-col sb:gap-2" }, /* @__PURE__ */ React25__namespace.createElement(FormLabel, null, input.friendlyName || input.name), /* @__PURE__ */ React25__namespace.createElement(DialogTrigger, { asChild: true }, /* @__PURE__ */ React25__namespace.createElement(chunk7FWFM2TR_js.Button, { variant: "outline", className: "sb:w-full", type: "button" }, input.friendlyName || input.name, " bewerken"))), /* @__PURE__ */ React25__namespace.createElement(DialogContent, { className: "sb:max-w-3xl sb:p-0" }, /* @__PURE__ */ React25__namespace.createElement("div", { className: "sb:flex sb:h-full sb:max-h-svh sb:w-full sb:flex-col sb:sm:max-h-[90svh]" }, /* @__PURE__ */ React25__namespace.createElement(DialogHeader, { className: "sb:flex-none sb:border-b sb:p-6" }, /* @__PURE__ */ React25__namespace.createElement(DialogTitle, null, input.friendlyName || input.name, " editor")), /* @__PURE__ */ React25__namespace.createElement("div", { className: "sb:flex-1 sb:overflow-y-auto" }, /* @__PURE__ */ React25__namespace.createElement(
1587
1626
  FormField,
1588
1627
  {
1589
1628
  key: input.name,
@@ -1638,11 +1677,11 @@ var RenderInput = (props) => {
1638
1677
  return /* @__PURE__ */ React25__namespace.createElement(ColorPicker, { color: field.value, onColorChange: field.onChange });
1639
1678
  case "date":
1640
1679
  return /* @__PURE__ */ React25__namespace.createElement(Popover, null, /* @__PURE__ */ React25__namespace.createElement(PopoverTrigger, { asChild: true }, /* @__PURE__ */ React25__namespace.createElement(
1641
- chunkMBISMJDL_js.Button,
1680
+ chunk7FWFM2TR_js.Button,
1642
1681
  {
1643
1682
  variant: "outline",
1644
1683
  size: "sm",
1645
- className: chunkIQX5LONG_js.cn(
1684
+ className: chunk63LNKQZD_js.cn(
1646
1685
  "sb:w-full sb:flex sb:justify-start sb:text-left sb:font-normal",
1647
1686
  !field.value && "sb:text-muted-foreground"
1648
1687
  )
@@ -1682,7 +1721,7 @@ var RenderInput = (props) => {
1682
1721
  }
1683
1722
  };
1684
1723
  var Tabs = TabsPrimitive__namespace.Root;
1685
- var tabsListVariants = chunkIQX5LONG_js.tv({
1724
+ var tabsListVariants = chunk63LNKQZD_js.tv({
1686
1725
  variants: {
1687
1726
  variant: {
1688
1727
  contained: "sb:inline-flex sb:h-10 sb:items-center sb:justify-center sb:rounded-md sb:bg-muted sb:p-1 sb:text-muted-foreground",
@@ -1702,7 +1741,7 @@ var TabsList = React25__namespace.forwardRef(({ variant, className, ...props },
1702
1741
  }
1703
1742
  ));
1704
1743
  TabsList.displayName = TabsPrimitive__namespace.List.displayName;
1705
- var tabsTriggerVariants = chunkIQX5LONG_js.tv({
1744
+ var tabsTriggerVariants = chunk63LNKQZD_js.tv({
1706
1745
  variants: {
1707
1746
  variant: {
1708
1747
  contained: "sb:inline-flex sb:items-center sb:justify-center sb:whitespace-nowrap sb:rounded-sm sb:px-3 sb:py-1.5 sb:text-sm sb:font-medium sb:ring-offset-background sb:transition-all sb:focus-visible:outline-hidden sb:focus-visible:ring-2 sb:focus-visible:ring-ring sb:focus-visible:ring-offset-2 sb:disabled:pointer-events-none sb:disabled:opacity-50 sb:data-[state=active]:bg-background sb:data-[state=active]:text-foreground sb:data-[state=active]:shadow-sm",
@@ -1726,7 +1765,7 @@ var TabsContent = React25__namespace.forwardRef(({ className, ...props }, ref) =
1726
1765
  TabsPrimitive__namespace.Content,
1727
1766
  {
1728
1767
  ref,
1729
- className: chunkIQX5LONG_js.cn(
1768
+ className: chunk63LNKQZD_js.cn(
1730
1769
  "sb:ring-offset-background sb:font-roboto sb:focus-visible:outline-hidden sb:focus-visible:ring-2 sb:focus-visible:ring-ring sb:focus-visible:ring-offset-2",
1731
1770
  className
1732
1771
  ),
@@ -1765,11 +1804,11 @@ var BackgroundPicker = (props) => {
1765
1804
  return "solid";
1766
1805
  }, [background]);
1767
1806
  return /* @__PURE__ */ React25__namespace.createElement(Popover, null, /* @__PURE__ */ React25__namespace.createElement(PopoverTrigger, { asChild: true }, /* @__PURE__ */ React25__namespace.createElement(
1768
- chunkMBISMJDL_js.Button,
1807
+ chunk7FWFM2TR_js.Button,
1769
1808
  {
1770
1809
  variant: "outline",
1771
1810
  size: "sm",
1772
- className: chunkIQX5LONG_js.cn(
1811
+ className: chunk63LNKQZD_js.cn(
1773
1812
  "sb:justify-start sb:text-left sb:font-normal sb:normal-case sb:w-full",
1774
1813
  !background && "sb:text-muted-foreground",
1775
1814
  className
@@ -1818,6 +1857,7 @@ var BackgroundPicker = (props) => {
1818
1857
  className: "sb:grid sb:grid-cols-2 sb:gap-1",
1819
1858
  itemClassName: "sb:aspect-video sb:h-auto sb:w-full",
1820
1859
  multiple: false,
1860
+ accept: IMAGE_FILE_ACCEPT,
1821
1861
  onFilesChange: (files) => {
1822
1862
  if (!files.length)
1823
1863
  return;
@@ -1965,7 +2005,7 @@ var designSchema = zod.z.object({
1965
2005
  });
1966
2006
  var ItemDesignForm = (props) => {
1967
2007
  const { item } = props;
1968
- const component = chunkIQX5LONG_js.builder.getComponent(item.component);
2008
+ const component = chunk63LNKQZD_js.builder.getComponent(item.component);
1969
2009
  if (!component) {
1970
2010
  throw new Error(
1971
2011
  `[simple-builder]: Component "${item.component}" not found`
@@ -2007,7 +2047,7 @@ var ItemDesignForm = (props) => {
2007
2047
  mobile: getDefaultDeviceValues("mobile")
2008
2048
  }
2009
2049
  });
2010
- const { patchItem } = chunkMBISMJDL_js.useBuilder();
2050
+ const { patchItem } = chunk7FWFM2TR_js.useBuilder();
2011
2051
  const onSubmit = React25__namespace.useCallback(
2012
2052
  (values) => {
2013
2053
  const { container, hidden, desktop, mobile } = values;
@@ -2133,13 +2173,13 @@ var ItemDesignForm = (props) => {
2133
2173
  }
2134
2174
  )), /* @__PURE__ */ React25__namespace.createElement(FormMessage, null))
2135
2175
  }
2136
- )), /* @__PURE__ */ React25__namespace.createElement(chunkMBISMJDL_js.Button, { type: "submit", className: "w-full" }, "Opslaan"))));
2176
+ )), /* @__PURE__ */ React25__namespace.createElement(chunk7FWFM2TR_js.Button, { type: "submit", className: "w-full" }, "Opslaan"))));
2137
2177
  };
2138
2178
  var ScrollArea = React25__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ React25__namespace.createElement(
2139
2179
  ScrollAreaPrimitive__namespace.Root,
2140
2180
  {
2141
2181
  ref,
2142
- className: chunkIQX5LONG_js.cn("sb:relative sb:overflow-hidden", className),
2182
+ className: chunk63LNKQZD_js.cn("sb:relative sb:overflow-hidden", className),
2143
2183
  ...props
2144
2184
  },
2145
2185
  /* @__PURE__ */ React25__namespace.createElement(ScrollAreaPrimitive__namespace.Viewport, { className: "sb:h-full sb:max-h-[80vh] sb:w-full sb:rounded-[inherit]" }, children),
@@ -2152,7 +2192,7 @@ var ScrollBar = React25__namespace.forwardRef(({ className, orientation = "verti
2152
2192
  {
2153
2193
  ref,
2154
2194
  orientation,
2155
- className: chunkIQX5LONG_js.cn(
2195
+ className: chunk63LNKQZD_js.cn(
2156
2196
  "sb:flex sb:touch-none sb:select-none sb:transition-colors",
2157
2197
  orientation === "vertical" && "sb:h-full sb:w-2.5 sb:border-l sb:border-l-transparent sb:p-px",
2158
2198
  orientation === "horizontal" && "sb:h-2.5 sb:flex-col sb:border-t sb:border-t-transparent sb:p-px",
@@ -2167,9 +2207,9 @@ ScrollBar.displayName = ScrollAreaPrimitive__namespace.ScrollAreaScrollbar.displ
2167
2207
  // src/components/container-item-toolbar.tsx
2168
2208
  var ContainerItemToolbar = (props) => {
2169
2209
  const { contentId, canBringUp = false, canBringDown = false } = props;
2170
- const { bringUp, bringDown } = chunkMBISMJDL_js.useBuilder();
2210
+ const { bringUp, bringDown } = chunk7FWFM2TR_js.useBuilder();
2171
2211
  return /* @__PURE__ */ React25__namespace.createElement("div", { className: "sb:absolute sb:z-20 sb:top-1 sb:right-1 sb:rounded-md sb:shadow sb:flex sb:flex-col sb:gap-1 sb:p-1 sb:bg-card sb:text-card-foreground sb-item-toolbar sb:opacity-0 sb:transition-opacity" }, /* @__PURE__ */ React25__namespace.createElement("div", { className: "sb:h-10 sb:p-1 sb:border sb:border-input sb:bg-background sb:rounded-md sb:text-sm sb:font-medium sb:flex sb:gap-1 sb:items-center sb:justify-start" }, /* @__PURE__ */ React25__namespace.createElement(EditButton, { id: contentId }), /* @__PURE__ */ React25__namespace.createElement(
2172
- chunkMBISMJDL_js.Button,
2212
+ chunk7FWFM2TR_js.Button,
2173
2213
  {
2174
2214
  variant: "ghost",
2175
2215
  className: "sb:w-8 sb:h-8 sb:p-0",
@@ -2178,7 +2218,7 @@ var ContainerItemToolbar = (props) => {
2178
2218
  },
2179
2219
  /* @__PURE__ */ React25__namespace.createElement(lucideReact.ArrowUp, { className: "sb:h-5 sb:w-5" })
2180
2220
  ), /* @__PURE__ */ React25__namespace.createElement(
2181
- chunkMBISMJDL_js.Button,
2221
+ chunk7FWFM2TR_js.Button,
2182
2222
  {
2183
2223
  variant: "ghost",
2184
2224
  className: "sb:w-8 sb:h-8 sb:p-0",
@@ -2189,7 +2229,7 @@ var ContainerItemToolbar = (props) => {
2189
2229
  ), /* @__PURE__ */ React25__namespace.createElement(DeleteButton, { contentId })));
2190
2230
  };
2191
2231
  var EditButton = ({ id }) => {
2192
- return /* @__PURE__ */ React25__namespace.createElement(Popover, { modal: true }, /* @__PURE__ */ React25__namespace.createElement(PopoverTrigger, { asChild: true }, /* @__PURE__ */ React25__namespace.createElement(chunkMBISMJDL_js.Button, { variant: "ghost", className: "sb:w-8 sb:h-8 sb:p-0" }, /* @__PURE__ */ React25__namespace.createElement(lucideReact.Edit2Icon, { className: "sb:h-5 sb:w-5" }))), /* @__PURE__ */ React25__namespace.createElement(
2232
+ return /* @__PURE__ */ React25__namespace.createElement(Popover, { modal: true }, /* @__PURE__ */ React25__namespace.createElement(PopoverTrigger, { asChild: true }, /* @__PURE__ */ React25__namespace.createElement(chunk7FWFM2TR_js.Button, { variant: "ghost", className: "sb:w-8 sb:h-8 sb:p-0" }, /* @__PURE__ */ React25__namespace.createElement(lucideReact.Edit2Icon, { className: "sb:h-5 sb:w-5" }))), /* @__PURE__ */ React25__namespace.createElement(
2193
2233
  PopoverContent,
2194
2234
  {
2195
2235
  side: "left",
@@ -2204,7 +2244,7 @@ var EditButton = ({ id }) => {
2204
2244
  };
2205
2245
  var EditPopoverInner = (props) => {
2206
2246
  const { id } = props;
2207
- const { getItem } = chunkMBISMJDL_js.useBuilder();
2247
+ const { getItem } = chunk7FWFM2TR_js.useBuilder();
2208
2248
  const item = getItem(id);
2209
2249
  if (!item) {
2210
2250
  throw new Error(
@@ -2214,9 +2254,9 @@ var EditPopoverInner = (props) => {
2214
2254
  return /* @__PURE__ */ React25__namespace.createElement(Tabs, null, /* @__PURE__ */ React25__namespace.createElement(TabsList, { variant: "text", defaultValue: "content" }, /* @__PURE__ */ React25__namespace.createElement(TabsTrigger, { variant: "text", value: "content" }, "Inhoud"), /* @__PURE__ */ React25__namespace.createElement(TabsTrigger, { variant: "text", value: "design" }, "Design")), /* @__PURE__ */ React25__namespace.createElement(TabsContent, { value: "content" }, /* @__PURE__ */ React25__namespace.createElement(ScrollArea, null, /* @__PURE__ */ React25__namespace.createElement(ContainerItemForm, { item }))), /* @__PURE__ */ React25__namespace.createElement(TabsContent, { value: "design" }, /* @__PURE__ */ React25__namespace.createElement(ItemDesignForm, { item })));
2215
2255
  };
2216
2256
  var DeleteButton = ({ contentId }) => {
2217
- const { deleteContent } = chunkMBISMJDL_js.useBuilder();
2257
+ const { deleteContent } = chunk7FWFM2TR_js.useBuilder();
2218
2258
  return /* @__PURE__ */ React25__namespace.createElement(AlertDialog, null, /* @__PURE__ */ React25__namespace.createElement(AlertDialogTrigger, { asChild: true }, /* @__PURE__ */ React25__namespace.createElement(
2219
- chunkMBISMJDL_js.Button,
2259
+ chunk7FWFM2TR_js.Button,
2220
2260
  {
2221
2261
  variant: "ghost",
2222
2262
  className: "sb:w-8 sb:h-8 sb:p-0 sb:text-destructive"
@@ -2225,7 +2265,7 @@ var DeleteButton = ({ contentId }) => {
2225
2265
  )), /* @__PURE__ */ React25__namespace.createElement(AlertDialogContent, null, /* @__PURE__ */ React25__namespace.createElement(AlertDialogDescription, null, "Weet je zeker dat je dit blok wilt verwijderen?"), /* @__PURE__ */ React25__namespace.createElement(AlertDialogFooter, null, /* @__PURE__ */ React25__namespace.createElement(AlertDialogCancel, null, "Annuleren"), /* @__PURE__ */ React25__namespace.createElement(
2226
2266
  AlertDialogAction,
2227
2267
  {
2228
- className: chunkMBISMJDL_js.buttonVariants({ variant: "destructive" }),
2268
+ className: chunk7FWFM2TR_js.buttonVariants({ variant: "destructive" }),
2229
2269
  onClick: () => deleteContent(contentId)
2230
2270
  },
2231
2271
  "Verwijderen"
@@ -2241,7 +2281,7 @@ var BuildContainerInner = (props) => {
2241
2281
  "[simple-builder]: Multiple content blocks detected when using property multiple false."
2242
2282
  );
2243
2283
  }
2244
- return /* @__PURE__ */ React25__namespace.createElement("div", null, items.length <= 0 ? /* @__PURE__ */ React25__namespace.createElement(AddContentPlaceholder, { parent: id, container: name, index: 0 }) : multiple && /* @__PURE__ */ React25__namespace.createElement(AddContentDividerButton, { parent: id, container: name, index: 0 }), items.map((item, i) => /* @__PURE__ */ React25__namespace.createElement(React25__namespace.Fragment, { key: item.id }, /* @__PURE__ */ React25__namespace.createElement("div", { className: "sb:relative sb-container-item" }, /* @__PURE__ */ React25__namespace.createElement(chunkIQX5LONG_js.DesignWrapper, { building: true, styles: item.styles }, chunkIQX5LONG_js.builder.bindComponent(item, true)), /* @__PURE__ */ React25__namespace.createElement(
2284
+ return /* @__PURE__ */ React25__namespace.createElement("div", null, items.length <= 0 ? /* @__PURE__ */ React25__namespace.createElement(AddContentPlaceholder, { parent: id, container: name, index: 0 }) : multiple && /* @__PURE__ */ React25__namespace.createElement(AddContentDividerButton, { parent: id, container: name, index: 0 }), items.map((item, i) => /* @__PURE__ */ React25__namespace.createElement(React25__namespace.Fragment, { key: item.id }, /* @__PURE__ */ React25__namespace.createElement("div", { className: "sb:relative sb-container-item" }, /* @__PURE__ */ React25__namespace.createElement(chunk63LNKQZD_js.DesignWrapper, { building: true, styles: item.styles }, chunk63LNKQZD_js.builder.bindComponent(item, true)), /* @__PURE__ */ React25__namespace.createElement(
2245
2285
  ContainerItemToolbar,
2246
2286
  {
2247
2287
  contentId: item.id,
@@ -2259,12 +2299,12 @@ var BuildContainerInner = (props) => {
2259
2299
  };
2260
2300
  var build_container_client_default = BuildContainerInner;
2261
2301
  var AddContentButton = (props) => {
2262
- const components = chunkIQX5LONG_js.builder.getComponents();
2263
- const { addContent } = chunkMBISMJDL_js.useBuilder();
2264
- return /* @__PURE__ */ React25__namespace.createElement(Popover, null, /* @__PURE__ */ React25__namespace.createElement(PopoverTrigger, { asChild: true }, props.children), /* @__PURE__ */ React25__namespace.createElement(PopoverContent, { className: "sb:p-1 sb:w-full sb:max-w-xl" }, /* @__PURE__ */ React25__namespace.createElement("div", { className: "sb:grid sb:grid-cols-2 sb:gap-2" }, components.map((component) => {
2302
+ const components = chunk63LNKQZD_js.builder.getComponents();
2303
+ const { addContent } = chunk7FWFM2TR_js.useBuilder();
2304
+ return /* @__PURE__ */ React25__namespace.createElement(Popover, null, /* @__PURE__ */ React25__namespace.createElement(PopoverTrigger, { asChild: true }, props.children), /* @__PURE__ */ React25__namespace.createElement(PopoverContent, { className: "sb:p-1" }, /* @__PURE__ */ React25__namespace.createElement("div", { className: "sb:grid sb:grid-cols-2 sb:gap-2" }, components.map((component) => {
2265
2305
  const Icon2 = component.icon ?? lucideReact.ImageIcon;
2266
2306
  return /* @__PURE__ */ React25__namespace.createElement(PopoverClose, { key: component.name, asChild: true }, /* @__PURE__ */ React25__namespace.createElement(
2267
- chunkMBISMJDL_js.Button,
2307
+ chunk7FWFM2TR_js.Button,
2268
2308
  {
2269
2309
  variant: "ghost",
2270
2310
  className: "sb:justify-start",
@@ -2283,11 +2323,11 @@ var AddContentButton = (props) => {
2283
2323
  }))));
2284
2324
  };
2285
2325
  var AddContentPlaceholder = (props) => {
2286
- return /* @__PURE__ */ React25__namespace.createElement(AddContentButton, { ...props }, /* @__PURE__ */ React25__namespace.createElement("div", { className: "sb:flex sb:justify-center sb:bg-primary/50 p-4" }, /* @__PURE__ */ React25__namespace.createElement(chunkMBISMJDL_js.Button, { size: "sm" }, /* @__PURE__ */ React25__namespace.createElement(lucideReact.PlusIcon, { className: "sb:mr-2 sb:h-4 sb:w-4" }), "Blok Toevoegen")));
2326
+ return /* @__PURE__ */ React25__namespace.createElement(AddContentButton, { ...props }, /* @__PURE__ */ React25__namespace.createElement("div", { className: "sb:flex sb:justify-center sb:bg-primary/50 p-4" }, /* @__PURE__ */ React25__namespace.createElement(chunk7FWFM2TR_js.Button, { size: "sm" }, /* @__PURE__ */ React25__namespace.createElement(lucideReact.PlusIcon, { className: "sb:mr-2 sb:h-4 sb:w-4" }), "Blok Toevoegen")));
2287
2327
  };
2288
2328
  var AddContentDividerButton = (props) => {
2289
2329
  return /* @__PURE__ */ React25__namespace.createElement(AddContentButton, { ...props }, /* @__PURE__ */ React25__namespace.createElement("div", { className: "sb:w-full sb:h-1 sb:-my-[2px] sb:bg-primary sb:relative sb:z-20 sb:opacity-0 add-content-divider-button sb:transition-opacity" }, /* @__PURE__ */ React25__namespace.createElement(
2290
- chunkMBISMJDL_js.Button,
2330
+ chunk7FWFM2TR_js.Button,
2291
2331
  {
2292
2332
  size: "sm",
2293
2333
  className: "sb:absolute sb:left-1/2 sb:top-1/2 sb:-translate-y-1/2 sb:-translate-x-1/2 sb:shadow"