@arbidocs/blocks 0.4.32 → 0.4.37

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 (199) hide show
  1. package/dist/agents/index.cjs +258 -216
  2. package/dist/agents/index.js +9 -7
  3. package/dist/agents/tasks/ConversationListView.d.ts +58 -0
  4. package/dist/agents/tasks/ConversationTurnSpeaker.d.ts +16 -0
  5. package/dist/agents/tasks/NewThreadDialog.d.ts +1 -1
  6. package/dist/agents/tasks/TaskActivityTimeline.d.ts +1 -1
  7. package/dist/agents/tasks/TaskFlow.d.ts +22 -0
  8. package/dist/agents/tasks/TaskInbox.d.ts +26 -0
  9. package/dist/agents/tasks/TaskReviewDialog.d.ts +22 -0
  10. package/dist/agents/tasks/TaskRowMenu.d.ts +10 -2
  11. package/dist/agents/tasks/TaskRunsDialog.d.ts +8 -3
  12. package/dist/agents/tasks/TaskStartDialog.d.ts +24 -0
  13. package/dist/agents/tasks/TaskTable.d.ts +1 -1
  14. package/dist/agents/tasks/ThreadNotifyDialog.d.ts +11 -0
  15. package/dist/agents/tasks/WorkflowComposer.d.ts +1 -1
  16. package/dist/agents/tasks/WorkflowsTable.d.ts +7 -0
  17. package/dist/agents/tasks/compact-thread-activity.d.ts +8 -0
  18. package/dist/agents/tasks/index.d.ts +10 -0
  19. package/dist/agents/tasks/taskComposerTypes.d.ts +16 -1
  20. package/dist/agents/tasks/taskRequest.d.ts +1 -0
  21. package/dist/agents/tasks/testGrid.d.ts +24 -0
  22. package/dist/agents/tasks/workflowColumns.d.ts +2 -1
  23. package/dist/agents/tasks/workflowRows.d.ts +6 -0
  24. package/dist/agents/workflows/types.d.ts +2 -0
  25. package/dist/auth/index.cjs +27 -27
  26. package/dist/auth/index.js +1 -1
  27. package/dist/chat/Message.d.ts +8 -2
  28. package/dist/chat/index.cjs +132 -120
  29. package/dist/chat/index.d.ts +2 -0
  30. package/dist/chat/index.js +2 -2
  31. package/dist/chat/participant-tints.d.ts +1 -0
  32. package/dist/chat/useRecipientDraft.d.ts +14 -0
  33. package/dist/{chunk-KF4EC5XU.js → chunk-24KQJYSB.js} +3 -3
  34. package/dist/{chunk-KF4EC5XU.js.map → chunk-24KQJYSB.js.map} +1 -1
  35. package/dist/{chunk-GVQOBJKR.cjs → chunk-2EAE5JP6.cjs} +7 -4
  36. package/dist/chunk-2EAE5JP6.cjs.map +1 -0
  37. package/dist/chunk-3AFWGEDJ.cjs +53 -0
  38. package/dist/chunk-3AFWGEDJ.cjs.map +1 -0
  39. package/dist/{chunk-UBNVIIBT.js → chunk-4WWM3GQ5.js} +23 -8
  40. package/dist/chunk-4WWM3GQ5.js.map +1 -0
  41. package/dist/{chunk-56BUD74K.cjs → chunk-65THHQVB.cjs} +27 -27
  42. package/dist/{chunk-56BUD74K.cjs.map → chunk-65THHQVB.cjs.map} +1 -1
  43. package/dist/{chunk-UTYQPVIW.cjs → chunk-7QDX2CO4.cjs} +6 -6
  44. package/dist/{chunk-UTYQPVIW.cjs.map → chunk-7QDX2CO4.cjs.map} +1 -1
  45. package/dist/{chunk-5B4PXAKI.cjs → chunk-7RGLTF76.cjs} +23 -8
  46. package/dist/chunk-7RGLTF76.cjs.map +1 -0
  47. package/dist/{chunk-PLGVMLBD.cjs → chunk-AMXQQCCB.cjs} +1975 -610
  48. package/dist/chunk-AMXQQCCB.cjs.map +1 -0
  49. package/dist/{chunk-NUPVHEJW.js → chunk-BUHKUKKB.js} +7 -4
  50. package/dist/chunk-BUHKUKKB.js.map +1 -0
  51. package/dist/{chunk-4XJZ6AAY.js → chunk-CKB64Z4R.js} +245 -6
  52. package/dist/chunk-CKB64Z4R.js.map +1 -0
  53. package/dist/chunk-DDW3M22Z.js +126 -0
  54. package/dist/chunk-DDW3M22Z.js.map +1 -0
  55. package/dist/{chunk-KXMDOTGW.js → chunk-DLBUFHLY.js} +10 -2
  56. package/dist/chunk-DLBUFHLY.js.map +1 -0
  57. package/dist/{chunk-ZHLMDJCO.cjs → chunk-DLVX6R6B.cjs} +62 -26
  58. package/dist/chunk-DLVX6R6B.cjs.map +1 -0
  59. package/dist/{chunk-JGZTRLKL.cjs → chunk-IA7RTPT3.cjs} +7 -4
  60. package/dist/chunk-IA7RTPT3.cjs.map +1 -0
  61. package/dist/{chunk-6YVI74BC.js → chunk-JH25QIZW.js} +439 -12
  62. package/dist/chunk-JH25QIZW.js.map +1 -0
  63. package/dist/{chunk-FRRDPYBR.cjs → chunk-L7B4W4LA.cjs} +74 -5
  64. package/dist/chunk-L7B4W4LA.cjs.map +1 -0
  65. package/dist/{chunk-NJL4LIXX.js → chunk-LFGJAZ5H.js} +11 -8
  66. package/dist/chunk-LFGJAZ5H.js.map +1 -0
  67. package/dist/{chunk-IAKUTBPX.js → chunk-LYUO3E6V.js} +3 -3
  68. package/dist/{chunk-IAKUTBPX.js.map → chunk-LYUO3E6V.js.map} +1 -1
  69. package/dist/{chunk-EYPPB5CY.cjs → chunk-M2YGPC5N.cjs} +4 -4
  70. package/dist/{chunk-EYPPB5CY.cjs.map → chunk-M2YGPC5N.cjs.map} +1 -1
  71. package/dist/{chunk-5ZBP7TCD.cjs → chunk-MJCCBMM5.cjs} +10 -2
  72. package/dist/chunk-MJCCBMM5.cjs.map +1 -0
  73. package/dist/{chunk-VMCOH3AY.cjs → chunk-NUF2WGGF.cjs} +527 -96
  74. package/dist/chunk-NUF2WGGF.cjs.map +1 -0
  75. package/dist/{chunk-OJSWQM4G.js → chunk-OZJ5PXA6.js} +29 -4
  76. package/dist/chunk-OZJ5PXA6.js.map +1 -0
  77. package/dist/{chunk-3NZR6PAG.js → chunk-PE7Z53RB.js} +70 -4
  78. package/dist/chunk-PE7Z53RB.js.map +1 -0
  79. package/dist/chunk-Q6LF7N3A.cjs +130 -0
  80. package/dist/chunk-Q6LF7N3A.cjs.map +1 -0
  81. package/dist/{chunk-RGHQFJOL.cjs → chunk-QFUF4A4J.cjs} +28 -2
  82. package/dist/chunk-QFUF4A4J.cjs.map +1 -0
  83. package/dist/chunk-RFXJYIDV.js +50 -0
  84. package/dist/chunk-RFXJYIDV.js.map +1 -0
  85. package/dist/{chunk-QN42OA5J.js → chunk-SFXVNFES.js} +4 -4
  86. package/dist/chunk-SFXVNFES.js.map +1 -0
  87. package/dist/{chunk-YVIOCITQ.cjs → chunk-VUEZARW5.cjs} +3 -3
  88. package/dist/chunk-VUEZARW5.cjs.map +1 -0
  89. package/dist/{chunk-JLOYWXRB.js → chunk-VZGBCBYB.js} +3 -3
  90. package/dist/chunk-VZGBCBYB.js.map +1 -0
  91. package/dist/{chunk-ZVPTFTGV.cjs → chunk-WBDK4PIA.cjs} +11 -8
  92. package/dist/chunk-WBDK4PIA.cjs.map +1 -0
  93. package/dist/{chunk-ZORQ5M3W.cjs → chunk-WQFGG2BV.cjs} +4 -4
  94. package/dist/chunk-WQFGG2BV.cjs.map +1 -0
  95. package/dist/{chunk-C75S6USL.js → chunk-WYVCXY7R.js} +7 -4
  96. package/dist/chunk-WYVCXY7R.js.map +1 -0
  97. package/dist/{chunk-WSJVHSGN.js → chunk-XWEJ5LV2.js} +63 -27
  98. package/dist/chunk-XWEJ5LV2.js.map +1 -0
  99. package/dist/{chunk-S5HZBXZA.cjs → chunk-YJQVLVBJ.cjs} +243 -2
  100. package/dist/chunk-YJQVLVBJ.cjs.map +1 -0
  101. package/dist/{chunk-YMHGF6R5.js → chunk-ZCF2JJFA.js} +3 -3
  102. package/dist/{chunk-YMHGF6R5.js.map → chunk-ZCF2JJFA.js.map} +1 -1
  103. package/dist/{chunk-TZ4QF7EP.js → chunk-ZDA5CZPS.js} +1948 -594
  104. package/dist/chunk-ZDA5CZPS.js.map +1 -0
  105. package/dist/collaboration/index.cjs +45 -41
  106. package/dist/collaboration/index.js +1 -1
  107. package/dist/collaboration/mail/MailMessagePreview.d.ts +11 -0
  108. package/dist/collaboration/mail/index.d.ts +1 -0
  109. package/dist/connect/docx.cjs +4 -4
  110. package/dist/connect/docx.js +1 -1
  111. package/dist/connect/index.cjs +32 -32
  112. package/dist/connect/index.js +3 -3
  113. package/dist/docx/NativeDocxEditor.d.ts +2 -2
  114. package/dist/docx/index.cjs +33 -30
  115. package/dist/docx/index.cjs.map +1 -1
  116. package/dist/docx/index.d.ts +2 -2
  117. package/dist/docx/index.js +3 -4
  118. package/dist/docx/index.js.map +1 -1
  119. package/dist/docx/review/DocxEditorReview.d.ts +16 -0
  120. package/dist/docx/review/index.d.ts +3 -0
  121. package/dist/docx/review/reviewModule.d.ts +6 -0
  122. package/dist/docx/review/useReview.d.ts +29 -0
  123. package/dist/facts/FactsFilterInput.d.ts +2 -46
  124. package/dist/facts/FactsToolbar.d.ts +5 -5
  125. package/dist/facts/index.cjs +27 -124
  126. package/dist/facts/index.cjs.map +1 -1
  127. package/dist/facts/index.js +13 -118
  128. package/dist/facts/index.js.map +1 -1
  129. package/dist/files/FilesPage.d.ts +1 -1
  130. package/dist/files/FilesToolbar.d.ts +1 -1
  131. package/dist/files/FolderPicker.d.ts +2 -1
  132. package/dist/files/ViewerChrome.d.ts +1 -1
  133. package/dist/files/bulk/FolderFilterButton.d.ts +3 -2
  134. package/dist/files/cells/BulkLabelSelect.d.ts +11 -0
  135. package/dist/files/cells/LabelMultiSelect.d.ts +2 -1
  136. package/dist/files/cells/index.d.ts +1 -0
  137. package/dist/files/index.cjs +110 -167
  138. package/dist/files/index.cjs.map +1 -1
  139. package/dist/files/index.js +96 -159
  140. package/dist/files/index.js.map +1 -1
  141. package/dist/home/index.cjs +20 -20
  142. package/dist/home/index.cjs.map +1 -1
  143. package/dist/home/index.js +5 -5
  144. package/dist/home/index.js.map +1 -1
  145. package/dist/index.cjs +646 -623
  146. package/dist/index.cjs.map +1 -1
  147. package/dist/index.d.ts +1 -0
  148. package/dist/index.js +20 -68
  149. package/dist/index.js.map +1 -1
  150. package/dist/settings/SettingsPanel.d.ts +1 -1
  151. package/dist/settings/TriStateFilterMenu.d.ts +3 -1
  152. package/dist/settings/index.cjs +55 -280
  153. package/dist/settings/index.cjs.map +1 -1
  154. package/dist/settings/index.js +17 -248
  155. package/dist/settings/index.js.map +1 -1
  156. package/dist/shell/FilterInput.d.ts +48 -0
  157. package/dist/shell/TabHeader.d.ts +7 -1
  158. package/dist/shell/index.cjs +62 -49
  159. package/dist/shell/index.d.ts +1 -0
  160. package/dist/shell/index.js +4 -3
  161. package/dist/site/index.cjs +62 -62
  162. package/dist/site/index.js +2 -2
  163. package/dist/studio/index.cjs +75 -75
  164. package/dist/studio/index.js +6 -6
  165. package/dist/workspaces/WorkspaceCard.d.ts +2 -2
  166. package/dist/workspaces/index.cjs +9 -2
  167. package/dist/workspaces/index.cjs.map +1 -1
  168. package/dist/workspaces/index.js +9 -2
  169. package/dist/workspaces/index.js.map +1 -1
  170. package/package.json +9 -13
  171. package/src/blocks.css +4 -0
  172. package/src/components/grid.css +10 -0
  173. package/src/docx/styles.css +488 -43
  174. package/dist/chunk-3NZR6PAG.js.map +0 -1
  175. package/dist/chunk-4XJZ6AAY.js.map +0 -1
  176. package/dist/chunk-5B4PXAKI.cjs.map +0 -1
  177. package/dist/chunk-5ZBP7TCD.cjs.map +0 -1
  178. package/dist/chunk-6YVI74BC.js.map +0 -1
  179. package/dist/chunk-C75S6USL.js.map +0 -1
  180. package/dist/chunk-FRRDPYBR.cjs.map +0 -1
  181. package/dist/chunk-GVQOBJKR.cjs.map +0 -1
  182. package/dist/chunk-JGZTRLKL.cjs.map +0 -1
  183. package/dist/chunk-JLOYWXRB.js.map +0 -1
  184. package/dist/chunk-KXMDOTGW.js.map +0 -1
  185. package/dist/chunk-NJL4LIXX.js.map +0 -1
  186. package/dist/chunk-NUPVHEJW.js.map +0 -1
  187. package/dist/chunk-OJSWQM4G.js.map +0 -1
  188. package/dist/chunk-PLGVMLBD.cjs.map +0 -1
  189. package/dist/chunk-QN42OA5J.js.map +0 -1
  190. package/dist/chunk-RGHQFJOL.cjs.map +0 -1
  191. package/dist/chunk-S5HZBXZA.cjs.map +0 -1
  192. package/dist/chunk-TZ4QF7EP.js.map +0 -1
  193. package/dist/chunk-UBNVIIBT.js.map +0 -1
  194. package/dist/chunk-VMCOH3AY.cjs.map +0 -1
  195. package/dist/chunk-WSJVHSGN.js.map +0 -1
  196. package/dist/chunk-YVIOCITQ.cjs.map +0 -1
  197. package/dist/chunk-ZHLMDJCO.cjs.map +0 -1
  198. package/dist/chunk-ZORQ5M3W.cjs.map +0 -1
  199. package/dist/chunk-ZVPTFTGV.cjs.map +0 -1
@@ -1,18 +1,18 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkEYPPB5CY_cjs = require('../chunk-EYPPB5CY.cjs');
5
- var chunkUTYQPVIW_cjs = require('../chunk-UTYQPVIW.cjs');
6
- var chunk5ZBP7TCD_cjs = require('../chunk-5ZBP7TCD.cjs');
4
+ var chunkM2YGPC5N_cjs = require('../chunk-M2YGPC5N.cjs');
5
+ var chunk7QDX2CO4_cjs = require('../chunk-7QDX2CO4.cjs');
6
+ var chunkMJCCBMM5_cjs = require('../chunk-MJCCBMM5.cjs');
7
7
  var chunkELR74ME6_cjs = require('../chunk-ELR74ME6.cjs');
8
8
  require('../chunk-VPPX5XUF.cjs');
9
9
  var chunkPCB2BPN3_cjs = require('../chunk-PCB2BPN3.cjs');
10
10
  var chunkZW6FPIFC_cjs = require('../chunk-ZW6FPIFC.cjs');
11
11
  require('../chunk-OB5F4577.cjs');
12
- require('../chunk-ZHLMDJCO.cjs');
12
+ var chunkC54XEN5T_cjs = require('../chunk-C54XEN5T.cjs');
13
+ require('../chunk-DLVX6R6B.cjs');
13
14
  require('../chunk-VGOFFCMT.cjs');
14
15
  require('../chunk-PPCATBOY.cjs');
15
- var chunkC54XEN5T_cjs = require('../chunk-C54XEN5T.cjs');
16
16
  var chunkKDG6FER6_cjs = require('../chunk-KDG6FER6.cjs');
17
17
  var chunkTLQQV7WW_cjs = require('../chunk-TLQQV7WW.cjs');
18
18
  require('../chunk-7UTB4PHM.cjs');
@@ -118,7 +118,7 @@ function LiveMetricInner({
118
118
  const query = source === "documents" ? docs : convos;
119
119
  const count = Array.isArray(query.data) ? query.data.length : 0;
120
120
  return /* @__PURE__ */ jsxRuntime.jsx(
121
- chunkUTYQPVIW_cjs.MetricCard,
121
+ chunk7QDX2CO4_cjs.MetricCard,
122
122
  {
123
123
  label: label || METRIC_SOURCES[source].label,
124
124
  value: query.isLoading ? "\u2014" : String(count),
@@ -242,7 +242,7 @@ function createArbiMaterializer(arbi, opts = {}) {
242
242
  }
243
243
  function collectAssetRefs(node, acc) {
244
244
  if (typeof node === "string") {
245
- if (chunk5ZBP7TCD_cjs.isAssetRef(node)) acc.add(node);
245
+ if (chunkMJCCBMM5_cjs.isAssetRef(node)) acc.add(node);
246
246
  return;
247
247
  }
248
248
  if (Array.isArray(node)) {
@@ -276,7 +276,7 @@ async function materializePageData(data, materialize) {
276
276
  const replacements = /* @__PURE__ */ new Map();
277
277
  await Promise.all(
278
278
  [...refs].map(async (ref) => {
279
- const src = await materialize(chunk5ZBP7TCD_cjs.assetRefId(ref));
279
+ const src = await materialize(chunkMJCCBMM5_cjs.assetRefId(ref));
280
280
  if (src) replacements.set(ref, src);
281
281
  })
282
282
  );
@@ -382,7 +382,7 @@ function StudioEditor({
382
382
  radius: stored.radius ?? defaultTheme.radius,
383
383
  activePresetId: null
384
384
  });
385
- chunk5ZBP7TCD_cjs.applyStoredTheme(themeBundle);
385
+ chunkMJCCBMM5_cjs.applyStoredTheme(themeBundle);
386
386
  })();
387
387
  return () => {
388
388
  cancelled = true;
@@ -488,7 +488,7 @@ function StudioEditor({
488
488
  "\u201D\u2026"
489
489
  ]
490
490
  }
491
- ) : /* @__PURE__ */ jsxRuntime.jsx(chunk5ZBP7TCD_cjs.AssetResolverProvider, { render: AssetThumb, children: /* @__PURE__ */ jsxRuntime.jsx(
491
+ ) : /* @__PURE__ */ jsxRuntime.jsx(chunkMJCCBMM5_cjs.AssetResolverProvider, { render: AssetThumb, children: /* @__PURE__ */ jsxRuntime.jsx(
492
492
  puck.Puck,
493
493
  {
494
494
  config,
@@ -506,7 +506,7 @@ function StudioEditor({
506
506
  className: "w-80 shrink-0 border-l border-border",
507
507
  "data-testid": `${testIdPrefix}-theme-drawer`,
508
508
  children: /* @__PURE__ */ jsxRuntime.jsx(
509
- chunk5ZBP7TCD_cjs.ThemeEditor,
509
+ chunkMJCCBMM5_cjs.ThemeEditor,
510
510
  {
511
511
  bundle: themeBundle,
512
512
  variant: "drawer",
@@ -548,7 +548,7 @@ function PageRenderer({
548
548
  const page = initialData ?? (await persistence.loadPublished(arbi, live, slug)).data ?? (await persistence.loadPage(arbi, live, slug)).data;
549
549
  if (cancelled) return;
550
550
  if (applyTheme) {
551
- chunk5ZBP7TCD_cjs.applyThemeVars(
551
+ chunkMJCCBMM5_cjs.applyThemeVars(
552
552
  theme ? { ...defaultTheme, ...theme, colors: { ...defaultTheme.colors, ...theme.colors } } : defaultTheme
553
553
  );
554
554
  }
@@ -792,7 +792,7 @@ function AiTextField({
792
792
  setActive(true);
793
793
  await task.run(buildPrompt({ kind, label, current: value ?? "" }), docIds);
794
794
  };
795
- const inputTid = chunk5ZBP7TCD_cjs.tid(`${testIdPrefix}-field`, name);
795
+ const inputTid = chunkMJCCBMM5_cjs.tid(`${testIdPrefix}-field`, name);
796
796
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "al-ai-field", children: [
797
797
  multiline ? /* @__PURE__ */ jsxRuntime.jsx(
798
798
  "textarea",
@@ -821,7 +821,7 @@ function AiTextField({
821
821
  className: "al-ai-field__btn",
822
822
  onClick: () => void write(),
823
823
  disabled: task.isRunning,
824
- "data-testid": chunk5ZBP7TCD_cjs.tid(`${testIdPrefix}-ai-write`, name),
824
+ "data-testid": chunkMJCCBMM5_cjs.tid(`${testIdPrefix}-ai-write`, name),
825
825
  title: "Draft this field with AI, grounded in the marketing workspace",
826
826
  children: [
827
827
  task.isRunning ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "size-3 animate-spin" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className: "size-3" }),
@@ -881,7 +881,7 @@ function latestImageDocId(artifacts) {
881
881
  return null;
882
882
  }
883
883
  function useImageGen() {
884
- const task = chunkEYPPB5CY_cjs.useConnectedAiTask();
884
+ const task = chunkM2YGPC5N_cjs.useConnectedAiTask();
885
885
  const { run } = task;
886
886
  const generate = react.useCallback(
887
887
  async (prompt, referenceDocIds = []) => {
@@ -924,8 +924,8 @@ function ImageFieldControl({
924
924
  const arbi = react$1.useArbi();
925
925
  const gen = useImageGen();
926
926
  const queryClient = reactQuery.useQueryClient();
927
- const currentAssetImage = useAssetImage(chunk5ZBP7TCD_cjs.isAssetRef(value) ? chunk5ZBP7TCD_cjs.assetRefId(value) : "");
928
- const tp = (...q) => chunk5ZBP7TCD_cjs.tid(`${testIdPrefix}-image`, name, ...q);
927
+ const currentAssetImage = useAssetImage(chunkMJCCBMM5_cjs.isAssetRef(value) ? chunkMJCCBMM5_cjs.assetRefId(value) : "");
928
+ const tp = (...q) => chunkMJCCBMM5_cjs.tid(`${testIdPrefix}-image`, name, ...q);
929
929
  const refreshAssets = () => queryClient.invalidateQueries({ queryKey: ["arbi", "documents", workspaceId] });
930
930
  const { data: docs } = react$1.useDocuments(workspaceId);
931
931
  const imageDocs = react.useMemo(
@@ -959,7 +959,7 @@ function ImageFieldControl({
959
959
  const res = await arbi.documents.uploadFile(file, name2, { folder });
960
960
  const id = res.doc_ext_ids?.[0];
961
961
  if (id) {
962
- onChange(chunk5ZBP7TCD_cjs.asAssetRef(id));
962
+ onChange(chunkMJCCBMM5_cjs.asAssetRef(id));
963
963
  void refreshAssets();
964
964
  }
965
965
  } finally {
@@ -977,7 +977,7 @@ function ImageFieldControl({
977
977
  if (!prompt.trim() || gen.isGenerating) return;
978
978
  const id = await gen.generate(prompt, refIds);
979
979
  if (id) {
980
- onChange(chunk5ZBP7TCD_cjs.asAssetRef(id));
980
+ onChange(chunkMJCCBMM5_cjs.asAssetRef(id));
981
981
  setRefIds([]);
982
982
  void refreshAssets();
983
983
  }
@@ -992,7 +992,7 @@ function ImageFieldControl({
992
992
  const tabClass = (on) => `inline-flex items-center gap-1 rounded-md px-2 py-1 text-xs font-medium ${on ? "bg-primary text-primary-foreground" : "text-muted-foreground hover:text-foreground"}`;
993
993
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2", "data-testid": tp(), children: [
994
994
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
995
- /* @__PURE__ */ jsxRuntime.jsx(chunk5ZBP7TCD_cjs.BlockImage, { src: value, aspect: "16:9", rounded: "md", testId: tp("preview") }),
995
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMJCCBMM5_cjs.BlockImage, { src: value, aspect: "16:9", rounded: "md", testId: tp("preview") }),
996
996
  currentAssetImage ? /* @__PURE__ */ jsxRuntime.jsxs(
997
997
  "button",
998
998
  {
@@ -1026,12 +1026,12 @@ function ImageFieldControl({
1026
1026
  imageDocs.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "col-span-3 py-3 text-center text-xs text-muted-foreground", children: "No image assets yet \u2014 upload or generate one." }),
1027
1027
  imageDocs.map((d) => {
1028
1028
  const thumb = thumbs?.[d.external_id];
1029
- const selected = value === chunk5ZBP7TCD_cjs.asAssetRef(d.external_id);
1029
+ const selected = value === chunkMJCCBMM5_cjs.asAssetRef(d.external_id);
1030
1030
  return /* @__PURE__ */ jsxRuntime.jsx(
1031
1031
  "button",
1032
1032
  {
1033
1033
  type: "button",
1034
- onClick: () => onChange(chunk5ZBP7TCD_cjs.asAssetRef(d.external_id)),
1034
+ onClick: () => onChange(chunkMJCCBMM5_cjs.asAssetRef(d.external_id)),
1035
1035
  className: `overflow-hidden rounded border ${selected ? "border-primary ring-1 ring-primary" : "border-border"}`,
1036
1036
  title: d.file_name ?? "",
1037
1037
  "data-testid": tp("asset", d.external_id),
@@ -1093,14 +1093,14 @@ function ImageFieldControl({
1093
1093
  "Reference images",
1094
1094
  refIds.length > 0 ? ` (${refIds.length})` : " (optional)"
1095
1095
  ] }),
1096
- chunk5ZBP7TCD_cjs.isAssetRef(value) && /* @__PURE__ */ jsxRuntime.jsx(
1096
+ chunkMJCCBMM5_cjs.isAssetRef(value) && /* @__PURE__ */ jsxRuntime.jsx(
1097
1097
  "button",
1098
1098
  {
1099
1099
  type: "button",
1100
1100
  className: "text-xs font-medium text-primary hover:underline",
1101
- onClick: () => toggleRef(chunk5ZBP7TCD_cjs.assetRefId(value)),
1101
+ onClick: () => toggleRef(chunkMJCCBMM5_cjs.assetRefId(value)),
1102
1102
  "data-testid": tp("vary-current"),
1103
- children: refIds.includes(chunk5ZBP7TCD_cjs.assetRefId(value)) ? "Varying current" : "Vary current image"
1103
+ children: refIds.includes(chunkMJCCBMM5_cjs.assetRefId(value)) ? "Varying current" : "Vary current image"
1104
1104
  }
1105
1105
  )
1106
1106
  ] }),
@@ -1314,7 +1314,7 @@ function createBlockKit(ai, image, eyebrowClassName) {
1314
1314
  }),
1315
1315
  iconField: (label = "Icon") => ({ type: "select", label, options: ICON_OPTIONS }),
1316
1316
  resolveIcon: (name) => name ? iconMap[name] : void 0,
1317
- blockTestId: (id) => chunk5ZBP7TCD_cjs.tid("arbi-block", id)
1317
+ blockTestId: (id) => chunkMJCCBMM5_cjs.tid("arbi-block", id)
1318
1318
  };
1319
1319
  }
1320
1320
  var emptySlot = [];
@@ -1379,7 +1379,7 @@ function createWebsiteBlocks(kit) {
1379
1379
  render: ({ id, count, gap, col1, col2, col3, col4 }) => {
1380
1380
  const n = Number(count) || 3;
1381
1381
  const columns = [col1, col2, col3, col4].slice(0, n).map(renderSlot);
1382
- return /* @__PURE__ */ jsxRuntime.jsx(chunk5ZBP7TCD_cjs.Columns, { count: n, gap, columns, testId: blockTestId(id) });
1382
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkMJCCBMM5_cjs.Columns, { count: n, gap, columns, testId: blockTestId(id) });
1383
1383
  }
1384
1384
  };
1385
1385
  const SpacerBlock = {
@@ -1397,7 +1397,7 @@ function createWebsiteBlocks(kit) {
1397
1397
  }
1398
1398
  },
1399
1399
  defaultProps: { size: "md" },
1400
- render: ({ id, size }) => /* @__PURE__ */ jsxRuntime.jsx(chunk5ZBP7TCD_cjs.Spacer, { size, testId: blockTestId(id) })
1400
+ render: ({ id, size }) => /* @__PURE__ */ jsxRuntime.jsx(chunkMJCCBMM5_cjs.Spacer, { size, testId: blockTestId(id) })
1401
1401
  };
1402
1402
  const ContainerBlock = {
1403
1403
  label: "Container",
@@ -1425,7 +1425,7 @@ function createWebsiteBlocks(kit) {
1425
1425
  children: { type: "slot" }
1426
1426
  },
1427
1427
  defaultProps: { width: "default", padding: "md", children: emptySlot },
1428
- render: ({ id, width, padding, children }) => /* @__PURE__ */ jsxRuntime.jsx(chunk5ZBP7TCD_cjs.Container, { width, padding, testId: blockTestId(id), children: renderSlot(children) })
1428
+ render: ({ id, width, padding, children }) => /* @__PURE__ */ jsxRuntime.jsx(chunkMJCCBMM5_cjs.Container, { width, padding, testId: blockTestId(id), children: renderSlot(children) })
1429
1429
  };
1430
1430
  const HeroBlock = {
1431
1431
  label: "Hero",
@@ -1476,7 +1476,7 @@ function createWebsiteBlocks(kit) {
1476
1476
  backgroundImage,
1477
1477
  overlay
1478
1478
  }) => /* @__PURE__ */ jsxRuntime.jsx(
1479
- chunk5ZBP7TCD_cjs.Hero,
1479
+ chunkMJCCBMM5_cjs.Hero,
1480
1480
  {
1481
1481
  eyebrow,
1482
1482
  title,
@@ -1548,7 +1548,7 @@ function createWebsiteBlocks(kit) {
1548
1548
  icon: resolveIcon(it.icon)
1549
1549
  })
1550
1550
  );
1551
- return /* @__PURE__ */ jsxRuntime.jsx(chunk5ZBP7TCD_cjs.FeatureGrid, { columns, items: list, testId: blockTestId(id) });
1551
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkMJCCBMM5_cjs.FeatureGrid, { columns, items: list, testId: blockTestId(id) });
1552
1552
  }
1553
1553
  };
1554
1554
  const StatGroupBlock = {
@@ -1573,7 +1573,7 @@ function createWebsiteBlocks(kit) {
1573
1573
  { value: "24/7", label: "Support" }
1574
1574
  ]
1575
1575
  },
1576
- render: ({ id, items }) => /* @__PURE__ */ jsxRuntime.jsx(chunkUTYQPVIW_cjs.StatGroup, { items, testId: blockTestId(id) })
1576
+ render: ({ id, items }) => /* @__PURE__ */ jsxRuntime.jsx(chunk7QDX2CO4_cjs.StatGroup, { items, testId: blockTestId(id) })
1577
1577
  };
1578
1578
  const TestimonialBlock = {
1579
1579
  label: "Testimonial",
@@ -1590,7 +1590,7 @@ function createWebsiteBlocks(kit) {
1590
1590
  avatarUrl: ""
1591
1591
  },
1592
1592
  render: ({ id, quote, author, role, avatarUrl }) => /* @__PURE__ */ jsxRuntime.jsx(
1593
- chunk5ZBP7TCD_cjs.Testimonial,
1593
+ chunkMJCCBMM5_cjs.Testimonial,
1594
1594
  {
1595
1595
  quote,
1596
1596
  author,
@@ -1619,7 +1619,7 @@ function createWebsiteBlocks(kit) {
1619
1619
  overlay: true
1620
1620
  },
1621
1621
  render: ({ id, title, subtitle, cta, tone, backgroundImage, overlay }) => /* @__PURE__ */ jsxRuntime.jsx(
1622
- chunk5ZBP7TCD_cjs.CTABanner,
1622
+ chunkMJCCBMM5_cjs.CTABanner,
1623
1623
  {
1624
1624
  title,
1625
1625
  subtitle,
@@ -1651,7 +1651,7 @@ function createWebsiteBlocks(kit) {
1651
1651
  { label: "Umbrella" }
1652
1652
  ]
1653
1653
  },
1654
- render: ({ id, items }) => /* @__PURE__ */ jsxRuntime.jsx(chunk5ZBP7TCD_cjs.LogoCloud, { items, testId: blockTestId(id) })
1654
+ render: ({ id, items }) => /* @__PURE__ */ jsxRuntime.jsx(chunkMJCCBMM5_cjs.LogoCloud, { items, testId: blockTestId(id) })
1655
1655
  };
1656
1656
  const FAQBlock = {
1657
1657
  label: "FAQ",
@@ -1683,7 +1683,7 @@ function createWebsiteBlocks(kit) {
1683
1683
  }
1684
1684
  ]
1685
1685
  },
1686
- render: ({ id, items }) => /* @__PURE__ */ jsxRuntime.jsx(chunk5ZBP7TCD_cjs.FAQ, { items, testId: blockTestId(id) })
1686
+ render: ({ id, items }) => /* @__PURE__ */ jsxRuntime.jsx(chunkMJCCBMM5_cjs.FAQ, { items, testId: blockTestId(id) })
1687
1687
  };
1688
1688
  const TimelineBlockConfig = {
1689
1689
  label: "Timeline",
@@ -1758,7 +1758,7 @@ function createWebsiteBlocks(kit) {
1758
1758
  defaultProps: {
1759
1759
  content: "## About us\n\nWe build tools that help teams do their best work. Our platform combines **power** and _simplicity_ so you can focus on what matters.\n\n- Fast to learn\n- Easy to scale\n- Loved by teams"
1760
1760
  },
1761
- render: ({ id, content }) => /* @__PURE__ */ jsxRuntime.jsx(chunk5ZBP7TCD_cjs.RichTextBlock, { content, testId: blockTestId(id) })
1761
+ render: ({ id, content }) => /* @__PURE__ */ jsxRuntime.jsx(chunkMJCCBMM5_cjs.RichTextBlock, { content, testId: blockTestId(id) })
1762
1762
  };
1763
1763
  const CalloutBlock = {
1764
1764
  label: "Callout",
@@ -1812,7 +1812,7 @@ function createWebsiteBlocks(kit) {
1812
1812
  },
1813
1813
  defaultProps: { src: "", alt: "Image", aspect: "16:9", rounded: "lg", framed: false },
1814
1814
  render: ({ id, src, alt, aspect, rounded, framed }) => /* @__PURE__ */ jsxRuntime.jsx(
1815
- chunk5ZBP7TCD_cjs.BlockImage,
1815
+ chunkMJCCBMM5_cjs.BlockImage,
1816
1816
  {
1817
1817
  src,
1818
1818
  alt,
@@ -1840,7 +1840,7 @@ function createWebsiteBlocks(kit) {
1840
1840
  }
1841
1841
  },
1842
1842
  defaultProps: { src: "", name: "Jane Doe", size: "md" },
1843
- render: ({ id, src, name, size }) => /* @__PURE__ */ jsxRuntime.jsx(chunk5ZBP7TCD_cjs.AvatarBlock, { src, name, size, testId: blockTestId(id) })
1843
+ render: ({ id, src, name, size }) => /* @__PURE__ */ jsxRuntime.jsx(chunkMJCCBMM5_cjs.AvatarBlock, { src, name, size, testId: blockTestId(id) })
1844
1844
  };
1845
1845
  const NavbarBlock = {
1846
1846
  label: "Navbar",
@@ -1868,7 +1868,7 @@ function createWebsiteBlocks(kit) {
1868
1868
  ],
1869
1869
  cta: { label: "Sign up", href: "#" }
1870
1870
  },
1871
- render: ({ id, brand, links, cta }) => /* @__PURE__ */ jsxRuntime.jsx(chunk5ZBP7TCD_cjs.Navbar, { brand, links, cta, testId: blockTestId(id) })
1871
+ render: ({ id, brand, links, cta }) => /* @__PURE__ */ jsxRuntime.jsx(chunkMJCCBMM5_cjs.Navbar, { brand, links, cta, testId: blockTestId(id) })
1872
1872
  };
1873
1873
  const FooterBlock = {
1874
1874
  label: "Footer",
@@ -1927,7 +1927,7 @@ function createWebsiteBlocks(kit) {
1927
1927
  ],
1928
1928
  copyright: "\xA9 2026 Acme, Inc. All rights reserved."
1929
1929
  },
1930
- render: ({ id, columns, copyright }) => /* @__PURE__ */ jsxRuntime.jsx(chunk5ZBP7TCD_cjs.Footer, { columns, copyright, testId: blockTestId(id) })
1930
+ render: ({ id, columns, copyright }) => /* @__PURE__ */ jsxRuntime.jsx(chunkMJCCBMM5_cjs.Footer, { columns, copyright, testId: blockTestId(id) })
1931
1931
  };
1932
1932
  const ListBlockConfig = {
1933
1933
  label: "List",
@@ -1945,7 +1945,7 @@ function createWebsiteBlocks(kit) {
1945
1945
  ordered: false,
1946
1946
  items: [{ text: "First item" }, { text: "Second item" }, { text: "Third item" }]
1947
1947
  },
1948
- render: ({ id, ordered, items }) => /* @__PURE__ */ jsxRuntime.jsx(chunk5ZBP7TCD_cjs.ListBlock, { ordered, items, testId: blockTestId(id) })
1948
+ render: ({ id, ordered, items }) => /* @__PURE__ */ jsxRuntime.jsx(chunkMJCCBMM5_cjs.ListBlock, { ordered, items, testId: blockTestId(id) })
1949
1949
  };
1950
1950
  return {
1951
1951
  Columns: ColumnsBlock,
@@ -2048,7 +2048,7 @@ function createSiteBlocks(kit) {
2048
2048
  ]
2049
2049
  },
2050
2050
  render: ({ id, plans }) => /* @__PURE__ */ jsxRuntime.jsx(
2051
- chunk5ZBP7TCD_cjs.PricingTable,
2051
+ chunkMJCCBMM5_cjs.PricingTable,
2052
2052
  {
2053
2053
  plans: (plans ?? []).map(
2054
2054
  (p) => ({
@@ -2086,7 +2086,7 @@ function createSiteBlocks(kit) {
2086
2086
  { label: "FAQ", content: "Answers to common questions." }
2087
2087
  ]
2088
2088
  },
2089
- render: ({ id, items }) => /* @__PURE__ */ jsxRuntime.jsx(chunk5ZBP7TCD_cjs.Tabs, { items, testId: blockTestId(id) })
2089
+ render: ({ id, items }) => /* @__PURE__ */ jsxRuntime.jsx(chunkMJCCBMM5_cjs.Tabs, { items, testId: blockTestId(id) })
2090
2090
  };
2091
2091
  const AccordionBlock = {
2092
2092
  label: "Accordion",
@@ -2110,7 +2110,7 @@ function createSiteBlocks(kit) {
2110
2110
  { title: "How does billing work?", content: "Monthly or annually, cancel anytime." }
2111
2111
  ]
2112
2112
  },
2113
- render: ({ id, allowMultiple, items }) => /* @__PURE__ */ jsxRuntime.jsx(chunk5ZBP7TCD_cjs.Accordion, { allowMultiple, items, testId: blockTestId(id) })
2113
+ render: ({ id, allowMultiple, items }) => /* @__PURE__ */ jsxRuntime.jsx(chunkMJCCBMM5_cjs.Accordion, { allowMultiple, items, testId: blockTestId(id) })
2114
2114
  };
2115
2115
  const GalleryBlock = {
2116
2116
  label: "Gallery",
@@ -2146,7 +2146,7 @@ function createSiteBlocks(kit) {
2146
2146
  { src: "", alt: "Image three", caption: "" }
2147
2147
  ]
2148
2148
  },
2149
- render: ({ id, columns, aspect, images }) => /* @__PURE__ */ jsxRuntime.jsx(chunk5ZBP7TCD_cjs.Gallery, { columns, aspect, images, testId: blockTestId(id) })
2149
+ render: ({ id, columns, aspect, images }) => /* @__PURE__ */ jsxRuntime.jsx(chunkMJCCBMM5_cjs.Gallery, { columns, aspect, images, testId: blockTestId(id) })
2150
2150
  };
2151
2151
  const VideoBlock = {
2152
2152
  label: "Video",
@@ -2166,7 +2166,7 @@ function createSiteBlocks(kit) {
2166
2166
  },
2167
2167
  defaultProps: { url: "", title: "", aspect: "16:9", rounded: true },
2168
2168
  render: ({ id, url, title, aspect, rounded }) => /* @__PURE__ */ jsxRuntime.jsx(
2169
- chunk5ZBP7TCD_cjs.VideoEmbed,
2169
+ chunkMJCCBMM5_cjs.VideoEmbed,
2170
2170
  {
2171
2171
  url,
2172
2172
  title,
@@ -2215,7 +2215,7 @@ function createSiteBlocks(kit) {
2215
2215
  ]
2216
2216
  },
2217
2217
  render: ({ id, submitLabel, action, successMessage, fields }) => /* @__PURE__ */ jsxRuntime.jsx(
2218
- chunk5ZBP7TCD_cjs.ContactForm,
2218
+ chunkMJCCBMM5_cjs.ContactForm,
2219
2219
  {
2220
2220
  submitLabel,
2221
2221
  action: action || void 0,
@@ -2245,7 +2245,7 @@ function createSiteBlocks(kit) {
2245
2245
  cta: { label: "Read more", href: "#" },
2246
2246
  tone: "primary"
2247
2247
  },
2248
- render: ({ id, text, cta, tone }) => /* @__PURE__ */ jsxRuntime.jsx(chunk5ZBP7TCD_cjs.Banner, { text, cta, tone, testId: blockTestId(id) })
2248
+ render: ({ id, text, cta, tone }) => /* @__PURE__ */ jsxRuntime.jsx(chunkMJCCBMM5_cjs.Banner, { text, cta, tone, testId: blockTestId(id) })
2249
2249
  };
2250
2250
  const MediaTextBlock = {
2251
2251
  label: "Media & text",
@@ -2273,7 +2273,7 @@ function createSiteBlocks(kit) {
2273
2273
  cta: { label: "Learn more", href: "#" }
2274
2274
  },
2275
2275
  render: ({ id, eyebrow, title, body, imageUrl, mediaSide, cta }) => /* @__PURE__ */ jsxRuntime.jsx(
2276
- chunk5ZBP7TCD_cjs.MediaText,
2276
+ chunkMJCCBMM5_cjs.MediaText,
2277
2277
  {
2278
2278
  eyebrow,
2279
2279
  title,
@@ -2310,7 +2310,7 @@ function createSiteBlocks(kit) {
2310
2310
  { name: "Jordan Lee", role: "Lead Engineer", bio: "", avatarUrl: "" }
2311
2311
  ]
2312
2312
  },
2313
- render: ({ id, columns, members }) => /* @__PURE__ */ jsxRuntime.jsx(chunk5ZBP7TCD_cjs.TeamGrid, { columns, members, testId: blockTestId(id) })
2313
+ render: ({ id, columns, members }) => /* @__PURE__ */ jsxRuntime.jsx(chunkMJCCBMM5_cjs.TeamGrid, { columns, members, testId: blockTestId(id) })
2314
2314
  };
2315
2315
  const StepsBlock = {
2316
2316
  label: "Steps",
@@ -2342,7 +2342,7 @@ function createSiteBlocks(kit) {
2342
2342
  { title: "Launch", description: "Go live and start seeing results." }
2343
2343
  ]
2344
2344
  },
2345
- render: ({ id, variant, steps }) => /* @__PURE__ */ jsxRuntime.jsx(chunk5ZBP7TCD_cjs.Steps, { variant, steps, testId: blockTestId(id) })
2345
+ render: ({ id, variant, steps }) => /* @__PURE__ */ jsxRuntime.jsx(chunkMJCCBMM5_cjs.Steps, { variant, steps, testId: blockTestId(id) })
2346
2346
  };
2347
2347
  const TestimonialGridBlock = {
2348
2348
  label: "Testimonial grid",
@@ -2384,7 +2384,7 @@ function createSiteBlocks(kit) {
2384
2384
  }
2385
2385
  ]
2386
2386
  },
2387
- render: ({ id, columns, items }) => /* @__PURE__ */ jsxRuntime.jsx(chunk5ZBP7TCD_cjs.TestimonialGrid, { columns, items, testId: blockTestId(id) })
2387
+ render: ({ id, columns, items }) => /* @__PURE__ */ jsxRuntime.jsx(chunkMJCCBMM5_cjs.TestimonialGrid, { columns, items, testId: blockTestId(id) })
2388
2388
  };
2389
2389
  return {
2390
2390
  Pricing: PricingBlock,
@@ -2428,7 +2428,7 @@ function createArbiBlocksConfig(opts = {}) {
2428
2428
  },
2429
2429
  defaultProps: { title: "Section title", align: "left", invert: false },
2430
2430
  render: ({ id, title, eyebrow, lead, align, invert }) => /* @__PURE__ */ jsxRuntime.jsx("div", { "data-testid": blockTestId(id), children: /* @__PURE__ */ jsxRuntime.jsx(
2431
- chunk5ZBP7TCD_cjs.SectionHeading,
2431
+ chunkMJCCBMM5_cjs.SectionHeading,
2432
2432
  {
2433
2433
  title,
2434
2434
  eyebrow,
@@ -2451,7 +2451,7 @@ function createArbiBlocksConfig(opts = {}) {
2451
2451
  },
2452
2452
  defaultProps: { title: "Page title", actions: emptySlot2 },
2453
2453
  render: ({ id, title, eyebrow, description, actions: Actions }) => /* @__PURE__ */ jsxRuntime.jsx(
2454
- chunkUTYQPVIW_cjs.PageHeader,
2454
+ chunk7QDX2CO4_cjs.PageHeader,
2455
2455
  {
2456
2456
  title,
2457
2457
  eyebrow,
@@ -2518,7 +2518,7 @@ function createArbiBlocksConfig(opts = {}) {
2518
2518
  },
2519
2519
  defaultProps: { label: "Metric", value: "0", accent: "default" },
2520
2520
  render: ({ id, label, value, hint, accent, delta, icon }) => /* @__PURE__ */ jsxRuntime.jsx(
2521
- chunkUTYQPVIW_cjs.MetricCard,
2521
+ chunk7QDX2CO4_cjs.MetricCard,
2522
2522
  {
2523
2523
  label,
2524
2524
  value,
@@ -2634,7 +2634,7 @@ function createArbiBlocksConfig(opts = {}) {
2634
2634
  field: col.field || `col-${index}`
2635
2635
  }));
2636
2636
  return /* @__PURE__ */ jsxRuntime.jsx(
2637
- chunkUTYQPVIW_cjs.DataTableBlock,
2637
+ chunk7QDX2CO4_cjs.DataTableBlock,
2638
2638
  {
2639
2639
  columns: normalisedCols,
2640
2640
  rows: recordRows,
@@ -3022,7 +3022,7 @@ function ModuleManager({ store, testIdPrefix = "builder" }) {
3022
3022
  {
3023
3023
  variant: "elevated",
3024
3024
  className: "rounded-lg",
3025
- "data-testid": chunk5ZBP7TCD_cjs.tid(`${testIdPrefix}-modules-section`, group.section),
3025
+ "data-testid": chunkMJCCBMM5_cjs.tid(`${testIdPrefix}-modules-section`, group.section),
3026
3026
  children: [
3027
3027
  /* @__PURE__ */ jsxRuntime.jsx(ui.CardHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(ui.CardTitle, { className: "text-base", children: group.section }) }),
3028
3028
  /* @__PURE__ */ jsxRuntime.jsx(ui.CardContent, { className: "space-y-1.5", children: group.modules.map((m, idx) => {
@@ -3031,7 +3031,7 @@ function ModuleManager({ store, testIdPrefix = "builder" }) {
3031
3031
  "div",
3032
3032
  {
3033
3033
  className: "flex items-center gap-3 rounded-md border border-border/60 bg-card px-3 py-2",
3034
- "data-testid": chunk5ZBP7TCD_cjs.tid(`${testIdPrefix}-module`, m.id),
3034
+ "data-testid": chunkMJCCBMM5_cjs.tid(`${testIdPrefix}-module`, m.id),
3035
3035
  children: [
3036
3036
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col", children: [
3037
3037
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -3043,7 +3043,7 @@ function ModuleManager({ store, testIdPrefix = "builder" }) {
3043
3043
  disabled: idx === 0,
3044
3044
  onClick: () => move(m.id, "up"),
3045
3045
  "aria-label": `Move ${m.label} up`,
3046
- "data-testid": chunk5ZBP7TCD_cjs.tid(`${testIdPrefix}-module-up`, m.id),
3046
+ "data-testid": chunkMJCCBMM5_cjs.tid(`${testIdPrefix}-module-up`, m.id),
3047
3047
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronUp, { className: "size-3.5" })
3048
3048
  }
3049
3049
  ),
@@ -3056,7 +3056,7 @@ function ModuleManager({ store, testIdPrefix = "builder" }) {
3056
3056
  disabled: idx === group.modules.length - 1,
3057
3057
  onClick: () => move(m.id, "down"),
3058
3058
  "aria-label": `Move ${m.label} down`,
3059
- "data-testid": chunk5ZBP7TCD_cjs.tid(`${testIdPrefix}-module-down`, m.id),
3059
+ "data-testid": chunkMJCCBMM5_cjs.tid(`${testIdPrefix}-module-down`, m.id),
3060
3060
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "size-3.5" })
3061
3061
  }
3062
3062
  )
@@ -3076,7 +3076,7 @@ function ModuleManager({ store, testIdPrefix = "builder" }) {
3076
3076
  checked: m.enabled,
3077
3077
  onCheckedChange: () => toggle2(m.id),
3078
3078
  "aria-label": `Enable ${m.label}`,
3079
- "data-testid": chunk5ZBP7TCD_cjs.tid(`${testIdPrefix}-module-toggle`, m.id)
3079
+ "data-testid": chunkMJCCBMM5_cjs.tid(`${testIdPrefix}-module-toggle`, m.id)
3080
3080
  }
3081
3081
  )
3082
3082
  ]
@@ -3108,7 +3108,7 @@ function ConfigModelBadge({ configId, testIdPrefix }) {
3108
3108
  ui.Badge,
3109
3109
  {
3110
3110
  variant: TIER_VARIANT[tier] ?? "secondary",
3111
- "data-testid": chunk5ZBP7TCD_cjs.tid(`${testIdPrefix}-agents-config-tier`, configId),
3111
+ "data-testid": chunkMJCCBMM5_cjs.tid(`${testIdPrefix}-agents-config-tier`, configId),
3112
3112
  children: [
3113
3113
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Cpu, { className: "size-3" }),
3114
3114
  " ",
@@ -3145,14 +3145,14 @@ function AgentsPanel({ store, testIdPrefix = "builder" }) {
3145
3145
  "label",
3146
3146
  {
3147
3147
  className: "flex cursor-pointer items-center gap-3 rounded-md border border-border/60 bg-card px-3 py-2",
3148
- "data-testid": chunk5ZBP7TCD_cjs.tid(`${testIdPrefix}-agents-config`, v.external_id),
3148
+ "data-testid": chunkMJCCBMM5_cjs.tid(`${testIdPrefix}-agents-config`, v.external_id),
3149
3149
  children: [
3150
3150
  /* @__PURE__ */ jsxRuntime.jsx(
3151
3151
  ui.Checkbox,
3152
3152
  {
3153
3153
  checked: configIds.includes(v.external_id),
3154
3154
  onCheckedChange: () => toggleConfig(v.external_id),
3155
- "data-testid": chunk5ZBP7TCD_cjs.tid(`${testIdPrefix}-agents-config-toggle`, v.external_id)
3155
+ "data-testid": chunkMJCCBMM5_cjs.tid(`${testIdPrefix}-agents-config-toggle`, v.external_id)
3156
3156
  }
3157
3157
  ),
3158
3158
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
@@ -3181,14 +3181,14 @@ function AgentsPanel({ store, testIdPrefix = "builder" }) {
3181
3181
  "label",
3182
3182
  {
3183
3183
  className: "flex cursor-pointer items-center gap-3 rounded-md border border-border/60 bg-card px-3 py-2",
3184
- "data-testid": chunk5ZBP7TCD_cjs.tid(`${testIdPrefix}-agents-agent`, a.external_id),
3184
+ "data-testid": chunkMJCCBMM5_cjs.tid(`${testIdPrefix}-agents-agent`, a.external_id),
3185
3185
  children: [
3186
3186
  /* @__PURE__ */ jsxRuntime.jsx(
3187
3187
  ui.Checkbox,
3188
3188
  {
3189
3189
  checked: agentIds.includes(a.external_id),
3190
3190
  onCheckedChange: () => toggleAgent(a.external_id),
3191
- "data-testid": chunk5ZBP7TCD_cjs.tid(`${testIdPrefix}-agents-agent-toggle`, a.external_id)
3191
+ "data-testid": chunkMJCCBMM5_cjs.tid(`${testIdPrefix}-agents-agent-toggle`, a.external_id)
3192
3192
  }
3193
3193
  ),
3194
3194
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
@@ -3275,7 +3275,7 @@ function VerticalBuilder({
3275
3275
  ] })
3276
3276
  ] }),
3277
3277
  /* @__PURE__ */ jsxRuntime.jsx(ui.TabsContent, { value: "theme", children: /* @__PURE__ */ jsxRuntime.jsx(
3278
- chunk5ZBP7TCD_cjs.ThemeEditor,
3278
+ chunkMJCCBMM5_cjs.ThemeEditor,
3279
3279
  {
3280
3280
  bundle: themeBundle,
3281
3281
  variant: "panel",
@@ -3301,31 +3301,31 @@ function VerticalBuilder({
3301
3301
 
3302
3302
  Object.defineProperty(exports, "ASSET_REF_PREFIX", {
3303
3303
  enumerable: true,
3304
- get: function () { return chunk5ZBP7TCD_cjs.ASSET_REF_PREFIX; }
3304
+ get: function () { return chunkMJCCBMM5_cjs.ASSET_REF_PREFIX; }
3305
3305
  });
3306
3306
  Object.defineProperty(exports, "AssetResolverProvider", {
3307
3307
  enumerable: true,
3308
- get: function () { return chunk5ZBP7TCD_cjs.AssetResolverProvider; }
3308
+ get: function () { return chunkMJCCBMM5_cjs.AssetResolverProvider; }
3309
3309
  });
3310
3310
  Object.defineProperty(exports, "asAssetRef", {
3311
3311
  enumerable: true,
3312
- get: function () { return chunk5ZBP7TCD_cjs.asAssetRef; }
3312
+ get: function () { return chunkMJCCBMM5_cjs.asAssetRef; }
3313
3313
  });
3314
3314
  Object.defineProperty(exports, "assetRefId", {
3315
3315
  enumerable: true,
3316
- get: function () { return chunk5ZBP7TCD_cjs.assetRefId; }
3316
+ get: function () { return chunkMJCCBMM5_cjs.assetRefId; }
3317
3317
  });
3318
3318
  Object.defineProperty(exports, "isAssetRef", {
3319
3319
  enumerable: true,
3320
- get: function () { return chunk5ZBP7TCD_cjs.isAssetRef; }
3320
+ get: function () { return chunkMJCCBMM5_cjs.isAssetRef; }
3321
3321
  });
3322
3322
  Object.defineProperty(exports, "useAssetRenderer", {
3323
3323
  enumerable: true,
3324
- get: function () { return chunk5ZBP7TCD_cjs.useAssetRenderer; }
3324
+ get: function () { return chunkMJCCBMM5_cjs.useAssetRenderer; }
3325
3325
  });
3326
3326
  Object.defineProperty(exports, "useAssetResolverActive", {
3327
3327
  enumerable: true,
3328
- get: function () { return chunk5ZBP7TCD_cjs.useAssetResolverActive; }
3328
+ get: function () { return chunkMJCCBMM5_cjs.useAssetResolverActive; }
3329
3329
  });
3330
3330
  exports.AgentsPanel = AgentsPanel;
3331
3331
  exports.AssetThumb = AssetThumb;
@@ -1,17 +1,17 @@
1
1
  "use client";
2
- import { useConnectedAiTask } from '../chunk-KF4EC5XU.js';
3
- import { PageHeader, MetricCard, DataTableBlock, StatGroup } from '../chunk-YMHGF6R5.js';
4
- import { assetRefId, applyStoredTheme, AssetResolverProvider, ThemeEditor, applyThemeVars, tid, SectionHeading, PricingTable, Tabs as Tabs$1, Accordion, Gallery, VideoEmbed, ContactForm, Banner, MediaText, TeamGrid, Steps, TestimonialGrid, Columns, Spacer, Container, Hero, FeatureGrid, Testimonial, CTABanner, LogoCloud, FAQ, RichTextBlock, BlockImage, AvatarBlock, Navbar, Footer, ListBlock, isAssetRef, asAssetRef } from '../chunk-KXMDOTGW.js';
5
- export { ASSET_REF_PREFIX, AssetResolverProvider, asAssetRef, assetRefId, isAssetRef, useAssetRenderer, useAssetResolverActive } from '../chunk-KXMDOTGW.js';
2
+ import { useConnectedAiTask } from '../chunk-24KQJYSB.js';
3
+ import { PageHeader, MetricCard, DataTableBlock, StatGroup } from '../chunk-ZCF2JJFA.js';
4
+ import { assetRefId, applyStoredTheme, AssetResolverProvider, ThemeEditor, applyThemeVars, tid, SectionHeading, PricingTable, Tabs as Tabs$1, Accordion, Gallery, VideoEmbed, ContactForm, Banner, MediaText, TeamGrid, Steps, TestimonialGrid, Columns, Spacer, Container, Hero, FeatureGrid, Testimonial, CTABanner, LogoCloud, FAQ, RichTextBlock, BlockImage, AvatarBlock, Navbar, Footer, ListBlock, isAssetRef, asAssetRef } from '../chunk-DLBUFHLY.js';
5
+ export { ASSET_REF_PREFIX, AssetResolverProvider, asAssetRef, assetRefId, isAssetRef, useAssetRenderer, useAssetResolverActive } from '../chunk-DLBUFHLY.js';
6
6
  import { Timeline } from '../chunk-OVEQERPO.js';
7
7
  import '../chunk-4EZVCGRL.js';
8
8
  import { Callout } from '../chunk-UJE32SST.js';
9
9
  import { EmptyState } from '../chunk-P6GHJSLR.js';
10
10
  import '../chunk-S7PSMMRG.js';
11
- import '../chunk-WSJVHSGN.js';
11
+ import { useBlocksEnvironment } from '../chunk-76JDDMSP.js';
12
+ import '../chunk-XWEJ5LV2.js';
12
13
  import '../chunk-KZJAG7T3.js';
13
14
  import '../chunk-NPLYHR2E.js';
14
- import { useBlocksEnvironment } from '../chunk-76JDDMSP.js';
15
15
  import { formatCount } from '../chunk-OXF2IFXG.js';
16
16
  import { useConnection } from '../chunk-EHXSBH6U.js';
17
17
  import '../chunk-AA3PT6KR.js';
@@ -47,8 +47,8 @@ export interface WorkspaceCardRootProps extends DivProps {
47
47
  children: ReactNode;
48
48
  }
49
49
  /**
50
- * The tile surface: one button that opens the workspace. Tonal (`bg-muted`, no
51
- * border, no shadow); the current workspace takes the selection tint.
50
+ * The tile surface: one button that opens the workspace. A raised white card
51
+ * (hairline border, soft shadow, hover lift); the current workspace takes the selection tint.
52
52
  */
53
53
  declare function WorkspaceCardRoot({ current, onSelect, href, label, testId, labels, className, children, ...rest }: WorkspaceCardRootProps): import("react").JSX.Element;
54
54
  /** Mark + name + open cue, on one row. Put the entity mark first. */
@@ -41,7 +41,7 @@ function WorkspaceCardRoot({
41
41
  const surfaceClass = ui.cn(
42
42
  "@container/ws-card flex min-h-40 w-full cursor-pointer flex-col gap-3 rounded-lg p-4 text-left transition-colors",
43
43
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
44
- current ? "bg-accent text-accent-foreground" : "bg-muted hover:bg-accent/60",
44
+ current ? "bg-accent text-accent-foreground" : "border border-border bg-card shadow-xs transition-colors hover:border-ring/50 hover:bg-accent/40",
45
45
  className
46
46
  );
47
47
  const handleKeyDown = (event) => {
@@ -397,7 +397,14 @@ function WorkspacePageFrame({ testId, children }) {
397
397
  );
398
398
  }
399
399
  function WorkspaceIdentityPanel({ children }) {
400
- return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-slot": "workspace-identity-panel", className: "group rounded-lg bg-muted px-4 py-3", children });
400
+ return /* @__PURE__ */ jsxRuntime.jsx(
401
+ "div",
402
+ {
403
+ "data-slot": "workspace-identity-panel",
404
+ className: "group rounded-lg border border-border bg-card px-4 py-3 shadow-xs",
405
+ children
406
+ }
407
+ );
401
408
  }
402
409
  function WorkspaceProjectSlot({ testId, caption, children }) {
403
410
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex min-w-0 items-center gap-3", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-2", "data-testid": testId, children: [