@arbidocs/blocks 0.3.154 → 0.3.156

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.
package/dist/index.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkPX6AMY64_cjs = require('./chunk-PX6AMY64.cjs');
3
+ var chunk6HGMAQLB_cjs = require('./chunk-6HGMAQLB.cjs');
4
4
  var react$1 = require('react');
5
5
  var lucideReact = require('lucide-react');
6
6
  var react = require('@arbidocs/react');
@@ -329,7 +329,7 @@ function CitationEditor({
329
329
  children: /* @__PURE__ */ jsxRuntime.jsx(react.DocumentEntity, { doc, fullWidth: true, labelMaxWidth: "max-w-full" })
330
330
  }
331
331
  ) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: docId }),
332
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground shrink-0", children: chunkPX6AMY64_cjs.formatPageRefs(pages) }),
332
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground shrink-0", children: chunk6HGMAQLB_cjs.formatPageRefs(pages) }),
333
333
  !readOnly && /* @__PURE__ */ jsxRuntime.jsx(
334
334
  "button",
335
335
  {
@@ -579,9 +579,9 @@ function DataTable({
579
579
  className
580
580
  }) {
581
581
  if (rows.length === 0) {
582
- return /* @__PURE__ */ jsxRuntime.jsx(EmptyState, { title: emptyTitle, description: emptyDescription, testId: chunkPX6AMY64_cjs.tid(area, "empty") });
582
+ return /* @__PURE__ */ jsxRuntime.jsx(EmptyState, { title: emptyTitle, description: emptyDescription, testId: chunk6HGMAQLB_cjs.tid(area, "empty") });
583
583
  }
584
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: react.cn("rounded-xl border border-border bg-card", className), children: /* @__PURE__ */ jsxRuntime.jsxs(react.Table, { "data-testid": chunkPX6AMY64_cjs.tid(area, "table"), children: [
584
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: react.cn("rounded-xl border border-border bg-card", className), children: /* @__PURE__ */ jsxRuntime.jsxs(react.Table, { "data-testid": chunk6HGMAQLB_cjs.tid(area, "table"), children: [
585
585
  /* @__PURE__ */ jsxRuntime.jsx(react.TableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(react.TableRow, { className: "hover:bg-transparent", children: columns.map((c) => /* @__PURE__ */ jsxRuntime.jsx(
586
586
  react.TableHead,
587
587
  {
@@ -595,7 +595,7 @@ function DataTable({
595
595
  return /* @__PURE__ */ jsxRuntime.jsx(
596
596
  react.TableRow,
597
597
  {
598
- "data-testid": chunkPX6AMY64_cjs.tid(area, "row", id),
598
+ "data-testid": chunk6HGMAQLB_cjs.tid(area, "row", id),
599
599
  onClick: onRowClick ? () => onRowClick(row) : void 0,
600
600
  className: react.cn(onRowClick && "cursor-pointer"),
601
601
  children: columns.map((c) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -1179,6 +1179,203 @@ function Toolbar({
1179
1179
  }
1180
1180
  );
1181
1181
  }
1182
+ var IDENTITY_NAME_MAX_LENGTH = 50;
1183
+ var COUNTER_THRESHOLD = 10;
1184
+ function EntityIdentityBar({
1185
+ fields,
1186
+ extraRows = [],
1187
+ canEdit = false,
1188
+ actions,
1189
+ footer,
1190
+ className,
1191
+ testId
1192
+ }) {
1193
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1194
+ "div",
1195
+ {
1196
+ className: react.cn("flex flex-wrap items-start justify-between gap-x-6 gap-y-3", className),
1197
+ "data-testid": testId,
1198
+ children: [
1199
+ /* @__PURE__ */ jsxRuntime.jsxs("dl", { className: "min-w-0 flex-1 space-y-1.5", children: [
1200
+ fields.map((field) => /* @__PURE__ */ jsxRuntime.jsx(IdentityFieldRow, { field, canEdit }, field.label)),
1201
+ extraRows.map((row) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-center gap-2", "data-testid": row.testId, children: [
1202
+ /* @__PURE__ */ jsxRuntime.jsxs("dt", { className: "w-24 shrink-0 text-xs font-medium text-muted-foreground", children: [
1203
+ row.label,
1204
+ ":"
1205
+ ] }),
1206
+ /* @__PURE__ */ jsxRuntime.jsxs("dd", { className: "flex min-w-0 flex-1 items-center gap-2", children: [
1207
+ row.content,
1208
+ row.trailing ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ml-auto shrink-0", children: row.trailing }) : null
1209
+ ] })
1210
+ ] }, row.label)),
1211
+ footer ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center pt-0.5", children: footer }) : null
1212
+ ] }),
1213
+ actions ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex shrink-0 items-center gap-2", children: actions }) : null
1214
+ ]
1215
+ }
1216
+ );
1217
+ }
1218
+ function IdentityFieldRow({ field, canEdit }) {
1219
+ const {
1220
+ label,
1221
+ value,
1222
+ placeholder,
1223
+ onSave,
1224
+ multiline = false,
1225
+ maxLength,
1226
+ valueClassName,
1227
+ trailing,
1228
+ testId
1229
+ } = field;
1230
+ const [isEditing, setIsEditing] = react$1.useState(false);
1231
+ const [draft, setDraft] = react$1.useState(value);
1232
+ react$1.useEffect(() => {
1233
+ if (!isEditing) setDraft(value);
1234
+ }, [value, isEditing]);
1235
+ const commit = () => {
1236
+ setIsEditing(false);
1237
+ const next = draft.trim();
1238
+ if (next !== value) onSave(next);
1239
+ };
1240
+ const cancel = () => {
1241
+ setDraft(value);
1242
+ setIsEditing(false);
1243
+ };
1244
+ const charsLeft = maxLength === void 0 ? null : maxLength - draft.length;
1245
+ const fieldClass = "h-auto rounded border-0 bg-muted px-1.5 py-0.5 shadow-none focus-visible:ring-0 focus-visible:ring-offset-0";
1246
+ const shared = {
1247
+ autoFocus: true,
1248
+ value: draft,
1249
+ placeholder,
1250
+ maxLength,
1251
+ "aria-label": label,
1252
+ "data-testid": testId && `${testId}-input`,
1253
+ onBlur: commit,
1254
+ onChange: (e) => setDraft(e.target.value),
1255
+ onKeyDown: (e) => {
1256
+ if (e.key === "Escape") {
1257
+ e.preventDefault();
1258
+ cancel();
1259
+ } else if (e.key === "Enter" && !multiline) {
1260
+ e.preventDefault();
1261
+ commit();
1262
+ }
1263
+ }
1264
+ };
1265
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: react.cn("flex min-w-0 gap-2", multiline ? "items-start" : "items-center"), children: [
1266
+ /* @__PURE__ */ jsxRuntime.jsxs(
1267
+ "dt",
1268
+ {
1269
+ className: react.cn(
1270
+ "w-24 shrink-0 text-xs font-medium text-muted-foreground",
1271
+ multiline && "pt-1"
1272
+ ),
1273
+ children: [
1274
+ label,
1275
+ ":"
1276
+ ]
1277
+ }
1278
+ ),
1279
+ /* @__PURE__ */ jsxRuntime.jsxs("dd", { className: "flex min-w-0 flex-1 items-center gap-2", children: [
1280
+ isEditing ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative min-w-0 flex-1", children: [
1281
+ multiline ? /* @__PURE__ */ jsxRuntime.jsx(
1282
+ react.Textarea,
1283
+ {
1284
+ ...shared,
1285
+ rows: 2,
1286
+ className: react.cn(fieldClass, "min-h-0 resize-none text-sm leading-snug")
1287
+ }
1288
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
1289
+ react.Input,
1290
+ {
1291
+ ...shared,
1292
+ className: react.cn(fieldClass, "pr-20 text-xl font-semibold tracking-tight")
1293
+ }
1294
+ ),
1295
+ charsLeft !== null && charsLeft <= COUNTER_THRESHOLD && /* @__PURE__ */ jsxRuntime.jsx(
1296
+ "span",
1297
+ {
1298
+ className: react.cn(
1299
+ "pointer-events-none absolute right-3 top-1/2 hidden -translate-y-1/2 text-sm lg:block",
1300
+ charsLeft < 0 ? "text-destructive" : "text-muted-foreground"
1301
+ ),
1302
+ "data-testid": testId && `${testId}-counter`,
1303
+ children: charsLeft < 0 ? `${-charsLeft} over` : `${charsLeft} left`
1304
+ }
1305
+ )
1306
+ ] }) : /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex min-w-0 items-center gap-1.5", children: [
1307
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: react.cn("px-1.5 py-0.5", valueClassName), "data-testid": testId, children: value || /* @__PURE__ */ jsxRuntime.jsx("span", { className: "italic text-muted-foreground", children: placeholder }) }),
1308
+ canEdit && /* @__PURE__ */ jsxRuntime.jsx(
1309
+ "button",
1310
+ {
1311
+ type: "button",
1312
+ onClick: () => setIsEditing(true),
1313
+ "aria-label": `Edit ${label.toLowerCase()}`,
1314
+ title: `Edit ${label.toLowerCase()}`,
1315
+ className: "shrink-0 cursor-pointer rounded p-1 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",
1316
+ "data-testid": testId && `${testId}-edit`,
1317
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Pencil, { className: "size-3.5" })
1318
+ }
1319
+ )
1320
+ ] }),
1321
+ trailing ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ml-auto shrink-0", children: trailing }) : null
1322
+ ] })
1323
+ ] });
1324
+ }
1325
+ var MAX_DEFAULT = 3;
1326
+ function MemberAvatarStack({
1327
+ members,
1328
+ total,
1329
+ max = MAX_DEFAULT,
1330
+ hidden = false,
1331
+ onClick,
1332
+ expanded = false,
1333
+ ringClassName = "border-card",
1334
+ className,
1335
+ testId
1336
+ }) {
1337
+ const count = total ?? members.length;
1338
+ const shown = hidden ? [] : members.slice(0, max);
1339
+ const extra = count - shown.length;
1340
+ const faces = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1341
+ hidden ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-muted-foreground", children: "\u2014" }) : shown.map((m, i) => /* @__PURE__ */ jsxRuntime.jsxs(react.Avatar, { className: react.cn("size-6 border-2", ringClassName), title: m.name, children: [
1342
+ m.picture && /* @__PURE__ */ jsxRuntime.jsx(react.AvatarImage, { src: m.picture, alt: m.name }),
1343
+ /* @__PURE__ */ jsxRuntime.jsx(react.AvatarFallback, { className: "bg-foreground text-[9px] font-medium text-background", children: chunk6HGMAQLB_cjs.initials(m.name || "?") })
1344
+ ] }, i)),
1345
+ !hidden && extra > 0 && /* @__PURE__ */ jsxRuntime.jsx(react.Avatar, { className: react.cn("size-6 border-2", ringClassName), children: /* @__PURE__ */ jsxRuntime.jsxs(react.AvatarFallback, { className: "bg-accent text-[9px] font-medium text-muted-foreground", children: [
1346
+ "+",
1347
+ extra
1348
+ ] }) })
1349
+ ] });
1350
+ if (!onClick) {
1351
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: react.cn("flex shrink-0 -space-x-2", className), "data-testid": testId, children: faces });
1352
+ }
1353
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1354
+ "button",
1355
+ {
1356
+ type: "button",
1357
+ onClick,
1358
+ "aria-expanded": expanded,
1359
+ className: react.cn(
1360
+ "flex shrink-0 cursor-pointer items-center gap-1.5 rounded-full py-0.5 pl-0.5 pr-1.5 transition-colors hover:bg-accent/60",
1361
+ className
1362
+ ),
1363
+ "data-testid": testId,
1364
+ children: [
1365
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex -space-x-2", children: faces }),
1366
+ /* @__PURE__ */ jsxRuntime.jsx(
1367
+ lucideReact.ChevronDown,
1368
+ {
1369
+ className: react.cn(
1370
+ "size-3.5 text-muted-foreground transition-transform",
1371
+ expanded && "rotate-180"
1372
+ )
1373
+ }
1374
+ )
1375
+ ]
1376
+ }
1377
+ );
1378
+ }
1182
1379
  function MetricCard({
1183
1380
  label,
1184
1381
  value,
@@ -1221,6 +1418,142 @@ function MetricCard({
1221
1418
  ] })
1222
1419
  ] });
1223
1420
  }
1421
+ function RecentActivityCard({
1422
+ icon: Icon,
1423
+ title,
1424
+ count,
1425
+ onOpen,
1426
+ actionLabel,
1427
+ actionIcon: ActionIcon,
1428
+ onAction,
1429
+ rows,
1430
+ caption,
1431
+ emptyText,
1432
+ emptyActionLabel,
1433
+ className,
1434
+ testId
1435
+ }) {
1436
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1437
+ react.Card,
1438
+ {
1439
+ variant: "flat",
1440
+ className: react.cn(
1441
+ // Grows to its content. The card must NOT scroll internally: a list
1442
+ // scrolling inside a fixed-height card puts a scrollbar in the middle
1443
+ // of the page, where every other page in the app scrolls at its outer
1444
+ // edge. The page is the scroll container; the card is just tall.
1445
+ "card-hover flex flex-col overflow-hidden rounded-xl bg-card p-0 shadow-sm",
1446
+ className
1447
+ ),
1448
+ "data-testid": testId,
1449
+ children: [
1450
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1 px-2 pt-2", children: [
1451
+ /* @__PURE__ */ jsxRuntime.jsxs(
1452
+ "button",
1453
+ {
1454
+ type: "button",
1455
+ onClick: onOpen,
1456
+ disabled: !onOpen,
1457
+ className: "group flex min-w-0 flex-1 cursor-pointer items-center gap-2 rounded-lg px-2 py-1.5 text-left transition-colors hover:bg-primary/10 disabled:cursor-default disabled:hover:bg-transparent",
1458
+ "data-testid": testId && `${testId}-open`,
1459
+ children: [
1460
+ Icon && /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "size-4 shrink-0 text-muted-foreground" }),
1461
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "whitespace-nowrap text-sm font-semibold text-foreground", children: title }),
1462
+ count !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs tabular-nums text-muted-foreground", children: count }),
1463
+ onOpen && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "ml-auto size-4 shrink-0 text-muted-foreground/50 transition-transform group-hover:translate-x-0.5 group-hover:text-foreground" })
1464
+ ]
1465
+ }
1466
+ ),
1467
+ actionLabel ? /* @__PURE__ */ jsxRuntime.jsxs(
1468
+ react.Button,
1469
+ {
1470
+ variant: "ghost",
1471
+ size: "sm",
1472
+ className: "h-8 shrink-0 px-2 text-xs font-medium text-muted-foreground hover:text-foreground",
1473
+ onClick: onAction,
1474
+ title: actionLabel,
1475
+ "data-testid": testId && `${testId}-action`,
1476
+ children: [
1477
+ ActionIcon && /* @__PURE__ */ jsxRuntime.jsx(ActionIcon, { className: "size-3.5" }),
1478
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only @md:not-sr-only @md:ml-1.5", children: actionLabel })
1479
+ ]
1480
+ }
1481
+ ) : null
1482
+ ] }),
1483
+ rows.length === 0 ? onAction ? (
1484
+ // The whole empty area is the button. A muted sentence in a big void
1485
+ // tells you the card is empty; this tells you what to do about it.
1486
+ /* @__PURE__ */ jsxRuntime.jsxs(
1487
+ "button",
1488
+ {
1489
+ type: "button",
1490
+ onClick: onAction,
1491
+ className: "group m-3 flex flex-1 cursor-pointer flex-col items-center justify-center gap-2 rounded-lg border-2 border-dashed border-border px-4 text-center transition-colors hover:border-primary/40 hover:bg-primary/5 focus-visible:border-primary/40 focus-visible:bg-primary/5 focus-visible:outline-none",
1492
+ "data-testid": testId && `${testId}-empty-action`,
1493
+ children: [
1494
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex size-11 items-center justify-center rounded-full bg-primary/10 text-primary transition-colors group-hover:bg-primary group-hover:text-primary-foreground", children: ActionIcon ? /* @__PURE__ */ jsxRuntime.jsx(ActionIcon, { className: "size-5" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { className: "size-5" }) }),
1495
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-semibold text-foreground", children: emptyActionLabel ?? actionLabel }),
1496
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs leading-relaxed text-muted-foreground", children: emptyText })
1497
+ ]
1498
+ }
1499
+ )
1500
+ ) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "flex flex-1 items-center px-4 py-6 text-xs leading-relaxed text-muted-foreground", children: emptyText }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1501
+ caption && // A caption, so the list says what it is instead of leaving you to
1502
+ // infer it from the order.
1503
+ /* @__PURE__ */ jsxRuntime.jsx(
1504
+ "p",
1505
+ {
1506
+ className: "mt-1 px-4 pb-1 text-[11px] font-medium uppercase tracking-wide text-muted-foreground",
1507
+ "data-testid": testId && `${testId}-caption`,
1508
+ children: caption
1509
+ }
1510
+ ),
1511
+ /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex-1", children: rows.map((row) => /* @__PURE__ */ jsxRuntime.jsxs(
1512
+ "li",
1513
+ {
1514
+ className: react.cn(
1515
+ "group relative flex items-center border-b border-border/60 transition-colors last:border-b-0",
1516
+ // A row is a link to somewhere, so hovering it has to look
1517
+ // like one. A 40%-alpha accent wash was too faint to read as
1518
+ // an affordance at all — this is a definite tint plus an
1519
+ // accent bar down the leading edge.
1520
+ "hover:bg-primary/10 has-[button:focus-visible]:bg-primary/10",
1521
+ "before:absolute before:inset-y-0 before:left-0 before:w-0.5 before:bg-primary before:opacity-0 before:transition-opacity hover:before:opacity-100"
1522
+ ),
1523
+ children: [
1524
+ /* @__PURE__ */ jsxRuntime.jsxs(
1525
+ "button",
1526
+ {
1527
+ type: "button",
1528
+ onClick: row.onClick,
1529
+ title: row.title,
1530
+ className: react.cn(
1531
+ "flex min-w-0 flex-1 items-start gap-3 py-2.5 pl-4 pr-2 text-left focus-visible:outline-none",
1532
+ row.onClick && "cursor-pointer"
1533
+ ),
1534
+ "data-testid": testId && `${testId}-row`,
1535
+ children: [
1536
+ row.leading,
1537
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
1538
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "block truncate text-sm font-semibold text-foreground group-hover:text-primary", children: row.title }),
1539
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-0.5 flex items-center gap-1.5", children: [
1540
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "min-w-0 flex-1 truncate text-xs text-muted-foreground", children: row.subtitle }),
1541
+ !row.trailing && row.meta && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 text-[11px] text-muted-foreground", children: row.meta })
1542
+ ] })
1543
+ ] })
1544
+ ]
1545
+ }
1546
+ ),
1547
+ row.trailing ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 pr-3", children: row.trailing }) : null
1548
+ ]
1549
+ },
1550
+ row.id
1551
+ )) })
1552
+ ] })
1553
+ ]
1554
+ }
1555
+ );
1556
+ }
1224
1557
  var MAX_AVATARS = 3;
1225
1558
  function WorkspaceCard({
1226
1559
  name,
@@ -1245,8 +1578,6 @@ function WorkspaceCard({
1245
1578
  className
1246
1579
  }) {
1247
1580
  const totalMembers = memberCount ?? members.length;
1248
- const shownMembers = membersHidden ? [] : members.slice(0, MAX_AVATARS);
1249
- const extraMembers = totalMembers - shownMembers.length;
1250
1581
  const actionTestId = buttonTestId ?? (testId ? `${testId}-open` : void 0);
1251
1582
  const canOpen = Boolean(onOpen) && !busy;
1252
1583
  const [isHoverPointerActive, setIsHoverPointerActive] = react$1.useState(false);
@@ -1399,21 +1730,15 @@ function WorkspaceCard({
1399
1730
  )
1400
1731
  ] })
1401
1732
  ] }),
1402
- /* @__PURE__ */ jsxRuntime.jsxs(
1403
- "div",
1733
+ /* @__PURE__ */ jsxRuntime.jsx(
1734
+ MemberAvatarStack,
1404
1735
  {
1405
- className: "ml-auto flex shrink-0 -space-x-2",
1406
- "data-testid": testId && `${testId}-member-avatars`,
1407
- children: [
1408
- shownMembers.map((m, i) => /* @__PURE__ */ jsxRuntime.jsxs(react.Avatar, { className: "size-6 border-2 border-card", title: m.name, children: [
1409
- m.picture && /* @__PURE__ */ jsxRuntime.jsx(react.AvatarImage, { src: m.picture, alt: m.name }),
1410
- /* @__PURE__ */ jsxRuntime.jsx(react.AvatarFallback, { className: "bg-foreground text-[9px] font-medium text-background", children: chunkPX6AMY64_cjs.initials(m.name || "?") })
1411
- ] }, i)),
1412
- !membersHidden && extraMembers > 0 && /* @__PURE__ */ jsxRuntime.jsx(react.Avatar, { className: "size-6 border-2 border-card", children: /* @__PURE__ */ jsxRuntime.jsxs(react.AvatarFallback, { className: "bg-accent text-[9px] font-medium text-muted-foreground", children: [
1413
- "+",
1414
- extraMembers
1415
- ] }) })
1416
- ]
1736
+ members,
1737
+ total: totalMembers,
1738
+ max: MAX_AVATARS,
1739
+ hidden: membersHidden,
1740
+ className: "ml-auto",
1741
+ testId: testId && `${testId}-member-avatars`
1417
1742
  }
1418
1743
  )
1419
1744
  ] }),
@@ -1421,10 +1746,10 @@ function WorkspaceCard({
1421
1746
  "span",
1422
1747
  {
1423
1748
  className: "min-w-0 max-w-full self-start truncate text-left text-xs text-muted-foreground",
1424
- title: chunkPX6AMY64_cjs.fmtDate(updatedAt),
1749
+ title: chunk6HGMAQLB_cjs.fmtDate(updatedAt),
1425
1750
  children: [
1426
1751
  "Updated ",
1427
- chunkPX6AMY64_cjs.fromNow(updatedAt)
1752
+ chunk6HGMAQLB_cjs.fromNow(updatedAt)
1428
1753
  ]
1429
1754
  }
1430
1755
  )
@@ -1456,7 +1781,7 @@ function NavItemLink({ item, onNavigate }) {
1456
1781
  to: item.to,
1457
1782
  end: item.end,
1458
1783
  onClick: onNavigate,
1459
- "data-testid": chunkPX6AMY64_cjs.tid("sidebar-nav", item.id),
1784
+ "data-testid": chunk6HGMAQLB_cjs.tid("sidebar-nav", item.id),
1460
1785
  className: ({ isActive }) => react.cn(
1461
1786
  "group flex items-center gap-3 rounded-md px-3 py-2 text-sm font-medium transition-colors",
1462
1787
  isActive ? "bg-sidebar-accent text-sidebar-accent-foreground" : "text-sidebar-foreground hover:bg-sidebar-accent/60 hover:text-sidebar-accent-foreground"
@@ -1629,7 +1954,7 @@ function AppHeader({
1629
1954
  type: "button",
1630
1955
  onClick: onSearch,
1631
1956
  className: classNames?.search ?? "relative hidden max-w-md flex-1 items-center rounded-md border border-input bg-background py-2 pl-9 pr-3 text-left text-sm text-muted-foreground transition-colors hover:bg-accent md:flex",
1632
- "data-testid": chunkPX6AMY64_cjs.tid(testIdPrefix, "global-search"),
1957
+ "data-testid": chunk6HGMAQLB_cjs.tid(testIdPrefix, "global-search"),
1633
1958
  children: [
1634
1959
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { className: "pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground" }),
1635
1960
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1", children: searchPlaceholder }),
@@ -1645,7 +1970,7 @@ function AppHeader({
1645
1970
  size: "sm",
1646
1971
  onClick: onAsk ?? onSearch,
1647
1972
  className: classNames?.askButton,
1648
- "data-testid": chunkPX6AMY64_cjs.tid(testIdPrefix, "ask-ai"),
1973
+ "data-testid": chunk6HGMAQLB_cjs.tid(testIdPrefix, "ask-ai"),
1649
1974
  children: [
1650
1975
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className: "size-4" }),
1651
1976
  askLabel
@@ -1656,7 +1981,7 @@ function AppHeader({
1656
1981
  /* @__PURE__ */ jsxRuntime.jsx(
1657
1982
  react.NotificationBell,
1658
1983
  {
1659
- testId: chunkPX6AMY64_cjs.tid(testIdPrefix, "notifications"),
1984
+ testId: chunk6HGMAQLB_cjs.tid(testIdPrefix, "notifications"),
1660
1985
  onNavigate: onNotificationNavigate,
1661
1986
  toneClassNames: notificationTones
1662
1987
  }
@@ -1667,8 +1992,8 @@ function AppHeader({
1667
1992
  user,
1668
1993
  items: userItems,
1669
1994
  onLogout,
1670
- testId: chunkPX6AMY64_cjs.tid(testIdPrefix, "user-menu"),
1671
- logoutTestId: chunkPX6AMY64_cjs.tid(testIdPrefix, "logout")
1995
+ testId: chunk6HGMAQLB_cjs.tid(testIdPrefix, "user-menu"),
1996
+ logoutTestId: chunk6HGMAQLB_cjs.tid(testIdPrefix, "logout")
1672
1997
  }
1673
1998
  )
1674
1999
  ] })
@@ -1888,7 +2213,7 @@ function createArbiMaterializer(arbi, opts = {}) {
1888
2213
  }
1889
2214
  function collectAssetRefs(node, acc) {
1890
2215
  if (typeof node === "string") {
1891
- if (chunkPX6AMY64_cjs.isAssetRef(node)) acc.add(node);
2216
+ if (chunk6HGMAQLB_cjs.isAssetRef(node)) acc.add(node);
1892
2217
  return;
1893
2218
  }
1894
2219
  if (Array.isArray(node)) {
@@ -1922,7 +2247,7 @@ async function materializePageData(data, materialize) {
1922
2247
  const replacements = /* @__PURE__ */ new Map();
1923
2248
  await Promise.all(
1924
2249
  [...refs].map(async (ref) => {
1925
- const src = await materialize(chunkPX6AMY64_cjs.assetRefId(ref));
2250
+ const src = await materialize(chunk6HGMAQLB_cjs.assetRefId(ref));
1926
2251
  if (src) replacements.set(ref, src);
1927
2252
  })
1928
2253
  );
@@ -2007,7 +2332,7 @@ function StudioEditor({
2007
2332
  radius: stored.radius ?? defaultTheme.radius,
2008
2333
  activePresetId: null
2009
2334
  });
2010
- chunkPX6AMY64_cjs.applyStoredTheme(themeBundle);
2335
+ chunk6HGMAQLB_cjs.applyStoredTheme(themeBundle);
2011
2336
  })();
2012
2337
  return () => {
2013
2338
  cancelled = true;
@@ -2100,7 +2425,7 @@ function StudioEditor({
2100
2425
  "\u201D\u2026"
2101
2426
  ]
2102
2427
  }
2103
- ) : /* @__PURE__ */ jsxRuntime.jsx(chunkPX6AMY64_cjs.AssetResolverProvider, { render: AssetThumb, children: /* @__PURE__ */ jsxRuntime.jsx(
2428
+ ) : /* @__PURE__ */ jsxRuntime.jsx(chunk6HGMAQLB_cjs.AssetResolverProvider, { render: AssetThumb, children: /* @__PURE__ */ jsxRuntime.jsx(
2104
2429
  puck.Puck,
2105
2430
  {
2106
2431
  config,
@@ -2118,7 +2443,7 @@ function StudioEditor({
2118
2443
  className: "w-80 shrink-0 border-l border-border",
2119
2444
  "data-testid": `${testIdPrefix}-theme-drawer`,
2120
2445
  children: /* @__PURE__ */ jsxRuntime.jsx(
2121
- chunkPX6AMY64_cjs.ThemeEditor,
2446
+ chunk6HGMAQLB_cjs.ThemeEditor,
2122
2447
  {
2123
2448
  bundle: themeBundle,
2124
2449
  variant: "drawer",
@@ -2157,7 +2482,7 @@ function PageRenderer({
2157
2482
  const page = initialData ?? (await persistence.loadPublished(arbi, live, slug)).data ?? (await persistence.loadPage(arbi, live, slug)).data;
2158
2483
  if (cancelled) return;
2159
2484
  if (applyTheme) {
2160
- chunkPX6AMY64_cjs.applyThemeVars(
2485
+ chunk6HGMAQLB_cjs.applyThemeVars(
2161
2486
  theme ? { ...defaultTheme, ...theme, colors: { ...defaultTheme.colors, ...theme.colors } } : defaultTheme
2162
2487
  );
2163
2488
  }
@@ -2359,7 +2684,7 @@ function AiTextField({
2359
2684
  setActive(true);
2360
2685
  await task.run(buildPrompt({ kind, label, current: value ?? "" }), docIds);
2361
2686
  };
2362
- const inputTid = chunkPX6AMY64_cjs.tid(`${testIdPrefix}-field`, name);
2687
+ const inputTid = chunk6HGMAQLB_cjs.tid(`${testIdPrefix}-field`, name);
2363
2688
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "al-ai-field", children: [
2364
2689
  multiline ? /* @__PURE__ */ jsxRuntime.jsx(
2365
2690
  "textarea",
@@ -2388,7 +2713,7 @@ function AiTextField({
2388
2713
  className: "al-ai-field__btn",
2389
2714
  onClick: () => void write(),
2390
2715
  disabled: task.isRunning,
2391
- "data-testid": chunkPX6AMY64_cjs.tid(`${testIdPrefix}-ai-write`, name),
2716
+ "data-testid": chunk6HGMAQLB_cjs.tid(`${testIdPrefix}-ai-write`, name),
2392
2717
  title: "Draft this field with AI, grounded in the marketing workspace",
2393
2718
  children: [
2394
2719
  task.isRunning ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "size-3 animate-spin" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className: "size-3" }),
@@ -2491,8 +2816,8 @@ function ImageFieldControl({
2491
2816
  const arbi = react.useArbi();
2492
2817
  const gen = useImageGen();
2493
2818
  const queryClient = reactQuery.useQueryClient();
2494
- const currentAssetImage = useAssetImage(chunkPX6AMY64_cjs.isAssetRef(value) ? chunkPX6AMY64_cjs.assetRefId(value) : "");
2495
- const tp = (...q) => chunkPX6AMY64_cjs.tid(`${testIdPrefix}-image`, name, ...q);
2819
+ const currentAssetImage = useAssetImage(chunk6HGMAQLB_cjs.isAssetRef(value) ? chunk6HGMAQLB_cjs.assetRefId(value) : "");
2820
+ const tp = (...q) => chunk6HGMAQLB_cjs.tid(`${testIdPrefix}-image`, name, ...q);
2496
2821
  const refreshAssets = () => queryClient.invalidateQueries({ queryKey: ["arbi", "documents", workspaceId] });
2497
2822
  const { data: docs } = react.useDocuments(workspaceId);
2498
2823
  const imageDocs = react$1.useMemo(
@@ -2526,7 +2851,7 @@ function ImageFieldControl({
2526
2851
  const res = await arbi.documents.uploadFile(file, name2, { folder });
2527
2852
  const id = res.doc_ext_ids?.[0];
2528
2853
  if (id) {
2529
- onChange(chunkPX6AMY64_cjs.asAssetRef(id));
2854
+ onChange(chunk6HGMAQLB_cjs.asAssetRef(id));
2530
2855
  void refreshAssets();
2531
2856
  }
2532
2857
  } finally {
@@ -2544,7 +2869,7 @@ function ImageFieldControl({
2544
2869
  if (!prompt.trim() || gen.isGenerating) return;
2545
2870
  const id = await gen.generate(prompt, refIds);
2546
2871
  if (id) {
2547
- onChange(chunkPX6AMY64_cjs.asAssetRef(id));
2872
+ onChange(chunk6HGMAQLB_cjs.asAssetRef(id));
2548
2873
  setRefIds([]);
2549
2874
  void refreshAssets();
2550
2875
  }
@@ -2559,7 +2884,7 @@ function ImageFieldControl({
2559
2884
  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"}`;
2560
2885
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2", "data-testid": tp(), children: [
2561
2886
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
2562
- /* @__PURE__ */ jsxRuntime.jsx(chunkPX6AMY64_cjs.BlockImage, { src: value, aspect: "16:9", rounded: "md", testId: tp("preview") }),
2887
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6HGMAQLB_cjs.BlockImage, { src: value, aspect: "16:9", rounded: "md", testId: tp("preview") }),
2563
2888
  currentAssetImage ? /* @__PURE__ */ jsxRuntime.jsxs(
2564
2889
  "button",
2565
2890
  {
@@ -2593,12 +2918,12 @@ function ImageFieldControl({
2593
2918
  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." }),
2594
2919
  imageDocs.map((d) => {
2595
2920
  const thumb = thumbs?.[d.external_id];
2596
- const selected = value === chunkPX6AMY64_cjs.asAssetRef(d.external_id);
2921
+ const selected = value === chunk6HGMAQLB_cjs.asAssetRef(d.external_id);
2597
2922
  return /* @__PURE__ */ jsxRuntime.jsx(
2598
2923
  "button",
2599
2924
  {
2600
2925
  type: "button",
2601
- onClick: () => onChange(chunkPX6AMY64_cjs.asAssetRef(d.external_id)),
2926
+ onClick: () => onChange(chunk6HGMAQLB_cjs.asAssetRef(d.external_id)),
2602
2927
  className: `overflow-hidden rounded border ${selected ? "border-primary ring-1 ring-primary" : "border-border"}`,
2603
2928
  title: d.file_name ?? "",
2604
2929
  "data-testid": tp("asset", d.external_id),
@@ -2660,14 +2985,14 @@ function ImageFieldControl({
2660
2985
  "Reference images",
2661
2986
  refIds.length > 0 ? ` (${refIds.length})` : " (optional)"
2662
2987
  ] }),
2663
- chunkPX6AMY64_cjs.isAssetRef(value) && /* @__PURE__ */ jsxRuntime.jsx(
2988
+ chunk6HGMAQLB_cjs.isAssetRef(value) && /* @__PURE__ */ jsxRuntime.jsx(
2664
2989
  "button",
2665
2990
  {
2666
2991
  type: "button",
2667
2992
  className: "text-xs font-medium text-primary hover:underline",
2668
- onClick: () => toggleRef(chunkPX6AMY64_cjs.assetRefId(value)),
2993
+ onClick: () => toggleRef(chunk6HGMAQLB_cjs.assetRefId(value)),
2669
2994
  "data-testid": tp("vary-current"),
2670
- children: refIds.includes(chunkPX6AMY64_cjs.assetRefId(value)) ? "Varying current" : "Vary current image"
2995
+ children: refIds.includes(chunk6HGMAQLB_cjs.assetRefId(value)) ? "Varying current" : "Vary current image"
2671
2996
  }
2672
2997
  )
2673
2998
  ] }),
@@ -2881,7 +3206,7 @@ function createBlockKit(ai, image, eyebrowClassName) {
2881
3206
  }),
2882
3207
  iconField: (label = "Icon") => ({ type: "select", label, options: ICON_OPTIONS }),
2883
3208
  resolveIcon: (name) => name ? iconMap[name] : void 0,
2884
- blockTestId: (id) => chunkPX6AMY64_cjs.tid("arbi-block", id)
3209
+ blockTestId: (id) => chunk6HGMAQLB_cjs.tid("arbi-block", id)
2885
3210
  };
2886
3211
  }
2887
3212
  var emptySlot = [];
@@ -2946,7 +3271,7 @@ function createWebsiteBlocks(kit) {
2946
3271
  render: ({ id, count, gap, col1, col2, col3, col4 }) => {
2947
3272
  const n = Number(count) || 3;
2948
3273
  const columns = [col1, col2, col3, col4].slice(0, n).map(renderSlot);
2949
- return /* @__PURE__ */ jsxRuntime.jsx(chunkPX6AMY64_cjs.Columns, { count: n, gap, columns, testId: blockTestId(id) });
3274
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk6HGMAQLB_cjs.Columns, { count: n, gap, columns, testId: blockTestId(id) });
2950
3275
  }
2951
3276
  };
2952
3277
  const SpacerBlock = {
@@ -2964,7 +3289,7 @@ function createWebsiteBlocks(kit) {
2964
3289
  }
2965
3290
  },
2966
3291
  defaultProps: { size: "md" },
2967
- render: ({ id, size }) => /* @__PURE__ */ jsxRuntime.jsx(chunkPX6AMY64_cjs.Spacer, { size, testId: blockTestId(id) })
3292
+ render: ({ id, size }) => /* @__PURE__ */ jsxRuntime.jsx(chunk6HGMAQLB_cjs.Spacer, { size, testId: blockTestId(id) })
2968
3293
  };
2969
3294
  const ContainerBlock = {
2970
3295
  label: "Container",
@@ -2992,7 +3317,7 @@ function createWebsiteBlocks(kit) {
2992
3317
  children: { type: "slot" }
2993
3318
  },
2994
3319
  defaultProps: { width: "default", padding: "md", children: emptySlot },
2995
- render: ({ id, width, padding, children }) => /* @__PURE__ */ jsxRuntime.jsx(chunkPX6AMY64_cjs.Container, { width, padding, testId: blockTestId(id), children: renderSlot(children) })
3320
+ render: ({ id, width, padding, children }) => /* @__PURE__ */ jsxRuntime.jsx(chunk6HGMAQLB_cjs.Container, { width, padding, testId: blockTestId(id), children: renderSlot(children) })
2996
3321
  };
2997
3322
  const HeroBlock = {
2998
3323
  label: "Hero",
@@ -3043,7 +3368,7 @@ function createWebsiteBlocks(kit) {
3043
3368
  backgroundImage,
3044
3369
  overlay
3045
3370
  }) => /* @__PURE__ */ jsxRuntime.jsx(
3046
- chunkPX6AMY64_cjs.Hero,
3371
+ chunk6HGMAQLB_cjs.Hero,
3047
3372
  {
3048
3373
  eyebrow,
3049
3374
  title,
@@ -3115,7 +3440,7 @@ function createWebsiteBlocks(kit) {
3115
3440
  icon: resolveIcon(it.icon)
3116
3441
  })
3117
3442
  );
3118
- return /* @__PURE__ */ jsxRuntime.jsx(chunkPX6AMY64_cjs.FeatureGrid, { columns, items: list, testId: blockTestId(id) });
3443
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk6HGMAQLB_cjs.FeatureGrid, { columns, items: list, testId: blockTestId(id) });
3119
3444
  }
3120
3445
  };
3121
3446
  const StatGroupBlock = {
@@ -3157,7 +3482,7 @@ function createWebsiteBlocks(kit) {
3157
3482
  avatarUrl: ""
3158
3483
  },
3159
3484
  render: ({ id, quote, author, role, avatarUrl }) => /* @__PURE__ */ jsxRuntime.jsx(
3160
- chunkPX6AMY64_cjs.Testimonial,
3485
+ chunk6HGMAQLB_cjs.Testimonial,
3161
3486
  {
3162
3487
  quote,
3163
3488
  author,
@@ -3186,7 +3511,7 @@ function createWebsiteBlocks(kit) {
3186
3511
  overlay: true
3187
3512
  },
3188
3513
  render: ({ id, title, subtitle, cta, tone, backgroundImage, overlay }) => /* @__PURE__ */ jsxRuntime.jsx(
3189
- chunkPX6AMY64_cjs.CTABanner,
3514
+ chunk6HGMAQLB_cjs.CTABanner,
3190
3515
  {
3191
3516
  title,
3192
3517
  subtitle,
@@ -3218,7 +3543,7 @@ function createWebsiteBlocks(kit) {
3218
3543
  { label: "Umbrella" }
3219
3544
  ]
3220
3545
  },
3221
- render: ({ id, items }) => /* @__PURE__ */ jsxRuntime.jsx(chunkPX6AMY64_cjs.LogoCloud, { items, testId: blockTestId(id) })
3546
+ render: ({ id, items }) => /* @__PURE__ */ jsxRuntime.jsx(chunk6HGMAQLB_cjs.LogoCloud, { items, testId: blockTestId(id) })
3222
3547
  };
3223
3548
  const FAQBlock = {
3224
3549
  label: "FAQ",
@@ -3250,7 +3575,7 @@ function createWebsiteBlocks(kit) {
3250
3575
  }
3251
3576
  ]
3252
3577
  },
3253
- render: ({ id, items }) => /* @__PURE__ */ jsxRuntime.jsx(chunkPX6AMY64_cjs.FAQ, { items, testId: blockTestId(id) })
3578
+ render: ({ id, items }) => /* @__PURE__ */ jsxRuntime.jsx(chunk6HGMAQLB_cjs.FAQ, { items, testId: blockTestId(id) })
3254
3579
  };
3255
3580
  const TimelineBlockConfig = {
3256
3581
  label: "Timeline",
@@ -3303,7 +3628,7 @@ function createWebsiteBlocks(kit) {
3303
3628
  ]
3304
3629
  },
3305
3630
  render: ({ id, view, height, items }) => /* @__PURE__ */ jsxRuntime.jsx("div", { style: { height: height ?? 520 }, children: /* @__PURE__ */ jsxRuntime.jsx(
3306
- chunkPX6AMY64_cjs.Timeline,
3631
+ chunk6HGMAQLB_cjs.Timeline,
3307
3632
  {
3308
3633
  items: (items ?? []).filter((item) => !!item?.start).map((item, index) => ({
3309
3634
  id: `${id}-${index}`,
@@ -3325,7 +3650,7 @@ function createWebsiteBlocks(kit) {
3325
3650
  defaultProps: {
3326
3651
  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"
3327
3652
  },
3328
- render: ({ id, content }) => /* @__PURE__ */ jsxRuntime.jsx(chunkPX6AMY64_cjs.RichTextBlock, { content, testId: blockTestId(id) })
3653
+ render: ({ id, content }) => /* @__PURE__ */ jsxRuntime.jsx(chunk6HGMAQLB_cjs.RichTextBlock, { content, testId: blockTestId(id) })
3329
3654
  };
3330
3655
  const CalloutBlock = {
3331
3656
  label: "Callout",
@@ -3348,7 +3673,7 @@ function createWebsiteBlocks(kit) {
3348
3673
  title: "Good to know",
3349
3674
  body: "This is a helpful note that draws attention to important information."
3350
3675
  },
3351
- render: ({ id, variant, title, body }) => /* @__PURE__ */ jsxRuntime.jsx(chunkPX6AMY64_cjs.Callout, { variant, title, body, testId: blockTestId(id) })
3676
+ render: ({ id, variant, title, body }) => /* @__PURE__ */ jsxRuntime.jsx(chunk6HGMAQLB_cjs.Callout, { variant, title, body, testId: blockTestId(id) })
3352
3677
  };
3353
3678
  const ImageBlock = {
3354
3679
  label: "Image",
@@ -3379,7 +3704,7 @@ function createWebsiteBlocks(kit) {
3379
3704
  },
3380
3705
  defaultProps: { src: "", alt: "Image", aspect: "16:9", rounded: "lg", framed: false },
3381
3706
  render: ({ id, src, alt, aspect, rounded, framed }) => /* @__PURE__ */ jsxRuntime.jsx(
3382
- chunkPX6AMY64_cjs.BlockImage,
3707
+ chunk6HGMAQLB_cjs.BlockImage,
3383
3708
  {
3384
3709
  src,
3385
3710
  alt,
@@ -3407,7 +3732,7 @@ function createWebsiteBlocks(kit) {
3407
3732
  }
3408
3733
  },
3409
3734
  defaultProps: { src: "", name: "Jane Doe", size: "md" },
3410
- render: ({ id, src, name, size }) => /* @__PURE__ */ jsxRuntime.jsx(chunkPX6AMY64_cjs.AvatarBlock, { src, name, size, testId: blockTestId(id) })
3735
+ render: ({ id, src, name, size }) => /* @__PURE__ */ jsxRuntime.jsx(chunk6HGMAQLB_cjs.AvatarBlock, { src, name, size, testId: blockTestId(id) })
3411
3736
  };
3412
3737
  const NavbarBlock = {
3413
3738
  label: "Navbar",
@@ -3435,7 +3760,7 @@ function createWebsiteBlocks(kit) {
3435
3760
  ],
3436
3761
  cta: { label: "Sign up", href: "#" }
3437
3762
  },
3438
- render: ({ id, brand, links, cta }) => /* @__PURE__ */ jsxRuntime.jsx(chunkPX6AMY64_cjs.Navbar, { brand, links, cta, testId: blockTestId(id) })
3763
+ render: ({ id, brand, links, cta }) => /* @__PURE__ */ jsxRuntime.jsx(chunk6HGMAQLB_cjs.Navbar, { brand, links, cta, testId: blockTestId(id) })
3439
3764
  };
3440
3765
  const FooterBlock = {
3441
3766
  label: "Footer",
@@ -3494,7 +3819,7 @@ function createWebsiteBlocks(kit) {
3494
3819
  ],
3495
3820
  copyright: "\xA9 2026 Acme, Inc. All rights reserved."
3496
3821
  },
3497
- render: ({ id, columns, copyright }) => /* @__PURE__ */ jsxRuntime.jsx(chunkPX6AMY64_cjs.Footer, { columns, copyright, testId: blockTestId(id) })
3822
+ render: ({ id, columns, copyright }) => /* @__PURE__ */ jsxRuntime.jsx(chunk6HGMAQLB_cjs.Footer, { columns, copyright, testId: blockTestId(id) })
3498
3823
  };
3499
3824
  const ListBlockConfig = {
3500
3825
  label: "List",
@@ -3512,7 +3837,7 @@ function createWebsiteBlocks(kit) {
3512
3837
  ordered: false,
3513
3838
  items: [{ text: "First item" }, { text: "Second item" }, { text: "Third item" }]
3514
3839
  },
3515
- render: ({ id, ordered, items }) => /* @__PURE__ */ jsxRuntime.jsx(chunkPX6AMY64_cjs.ListBlock, { ordered, items, testId: blockTestId(id) })
3840
+ render: ({ id, ordered, items }) => /* @__PURE__ */ jsxRuntime.jsx(chunk6HGMAQLB_cjs.ListBlock, { ordered, items, testId: blockTestId(id) })
3516
3841
  };
3517
3842
  return {
3518
3843
  Columns: ColumnsBlock,
@@ -3615,7 +3940,7 @@ function createSiteBlocks(kit) {
3615
3940
  ]
3616
3941
  },
3617
3942
  render: ({ id, plans }) => /* @__PURE__ */ jsxRuntime.jsx(
3618
- chunkPX6AMY64_cjs.PricingTable,
3943
+ chunk6HGMAQLB_cjs.PricingTable,
3619
3944
  {
3620
3945
  plans: (plans ?? []).map(
3621
3946
  (p) => ({
@@ -3653,7 +3978,7 @@ function createSiteBlocks(kit) {
3653
3978
  { label: "FAQ", content: "Answers to common questions." }
3654
3979
  ]
3655
3980
  },
3656
- render: ({ id, items }) => /* @__PURE__ */ jsxRuntime.jsx(chunkPX6AMY64_cjs.Tabs, { items, testId: blockTestId(id) })
3981
+ render: ({ id, items }) => /* @__PURE__ */ jsxRuntime.jsx(chunk6HGMAQLB_cjs.Tabs, { items, testId: blockTestId(id) })
3657
3982
  };
3658
3983
  const AccordionBlock = {
3659
3984
  label: "Accordion",
@@ -3677,7 +4002,7 @@ function createSiteBlocks(kit) {
3677
4002
  { title: "How does billing work?", content: "Monthly or annually, cancel anytime." }
3678
4003
  ]
3679
4004
  },
3680
- render: ({ id, allowMultiple, items }) => /* @__PURE__ */ jsxRuntime.jsx(chunkPX6AMY64_cjs.Accordion, { allowMultiple, items, testId: blockTestId(id) })
4005
+ render: ({ id, allowMultiple, items }) => /* @__PURE__ */ jsxRuntime.jsx(chunk6HGMAQLB_cjs.Accordion, { allowMultiple, items, testId: blockTestId(id) })
3681
4006
  };
3682
4007
  const GalleryBlock = {
3683
4008
  label: "Gallery",
@@ -3713,7 +4038,7 @@ function createSiteBlocks(kit) {
3713
4038
  { src: "", alt: "Image three", caption: "" }
3714
4039
  ]
3715
4040
  },
3716
- render: ({ id, columns, aspect, images }) => /* @__PURE__ */ jsxRuntime.jsx(chunkPX6AMY64_cjs.Gallery, { columns, aspect, images, testId: blockTestId(id) })
4041
+ render: ({ id, columns, aspect, images }) => /* @__PURE__ */ jsxRuntime.jsx(chunk6HGMAQLB_cjs.Gallery, { columns, aspect, images, testId: blockTestId(id) })
3717
4042
  };
3718
4043
  const VideoBlock = {
3719
4044
  label: "Video",
@@ -3733,7 +4058,7 @@ function createSiteBlocks(kit) {
3733
4058
  },
3734
4059
  defaultProps: { url: "", title: "", aspect: "16:9", rounded: true },
3735
4060
  render: ({ id, url, title, aspect, rounded }) => /* @__PURE__ */ jsxRuntime.jsx(
3736
- chunkPX6AMY64_cjs.VideoEmbed,
4061
+ chunk6HGMAQLB_cjs.VideoEmbed,
3737
4062
  {
3738
4063
  url,
3739
4064
  title,
@@ -3782,7 +4107,7 @@ function createSiteBlocks(kit) {
3782
4107
  ]
3783
4108
  },
3784
4109
  render: ({ id, submitLabel, action, successMessage, fields }) => /* @__PURE__ */ jsxRuntime.jsx(
3785
- chunkPX6AMY64_cjs.ContactForm,
4110
+ chunk6HGMAQLB_cjs.ContactForm,
3786
4111
  {
3787
4112
  submitLabel,
3788
4113
  action: action || void 0,
@@ -3812,7 +4137,7 @@ function createSiteBlocks(kit) {
3812
4137
  cta: { label: "Read more", href: "#" },
3813
4138
  tone: "primary"
3814
4139
  },
3815
- render: ({ id, text, cta, tone }) => /* @__PURE__ */ jsxRuntime.jsx(chunkPX6AMY64_cjs.Banner, { text, cta, tone, testId: blockTestId(id) })
4140
+ render: ({ id, text, cta, tone }) => /* @__PURE__ */ jsxRuntime.jsx(chunk6HGMAQLB_cjs.Banner, { text, cta, tone, testId: blockTestId(id) })
3816
4141
  };
3817
4142
  const MediaTextBlock = {
3818
4143
  label: "Media & text",
@@ -3840,7 +4165,7 @@ function createSiteBlocks(kit) {
3840
4165
  cta: { label: "Learn more", href: "#" }
3841
4166
  },
3842
4167
  render: ({ id, eyebrow, title, body, imageUrl, mediaSide, cta }) => /* @__PURE__ */ jsxRuntime.jsx(
3843
- chunkPX6AMY64_cjs.MediaText,
4168
+ chunk6HGMAQLB_cjs.MediaText,
3844
4169
  {
3845
4170
  eyebrow,
3846
4171
  title,
@@ -3877,7 +4202,7 @@ function createSiteBlocks(kit) {
3877
4202
  { name: "Jordan Lee", role: "Lead Engineer", bio: "", avatarUrl: "" }
3878
4203
  ]
3879
4204
  },
3880
- render: ({ id, columns, members }) => /* @__PURE__ */ jsxRuntime.jsx(chunkPX6AMY64_cjs.TeamGrid, { columns, members, testId: blockTestId(id) })
4205
+ render: ({ id, columns, members }) => /* @__PURE__ */ jsxRuntime.jsx(chunk6HGMAQLB_cjs.TeamGrid, { columns, members, testId: blockTestId(id) })
3881
4206
  };
3882
4207
  const StepsBlock = {
3883
4208
  label: "Steps",
@@ -3909,7 +4234,7 @@ function createSiteBlocks(kit) {
3909
4234
  { title: "Launch", description: "Go live and start seeing results." }
3910
4235
  ]
3911
4236
  },
3912
- render: ({ id, variant, steps }) => /* @__PURE__ */ jsxRuntime.jsx(chunkPX6AMY64_cjs.Steps, { variant, steps, testId: blockTestId(id) })
4237
+ render: ({ id, variant, steps }) => /* @__PURE__ */ jsxRuntime.jsx(chunk6HGMAQLB_cjs.Steps, { variant, steps, testId: blockTestId(id) })
3913
4238
  };
3914
4239
  const TestimonialGridBlock = {
3915
4240
  label: "Testimonial grid",
@@ -3951,7 +4276,7 @@ function createSiteBlocks(kit) {
3951
4276
  }
3952
4277
  ]
3953
4278
  },
3954
- render: ({ id, columns, items }) => /* @__PURE__ */ jsxRuntime.jsx(chunkPX6AMY64_cjs.TestimonialGrid, { columns, items, testId: blockTestId(id) })
4279
+ render: ({ id, columns, items }) => /* @__PURE__ */ jsxRuntime.jsx(chunk6HGMAQLB_cjs.TestimonialGrid, { columns, items, testId: blockTestId(id) })
3955
4280
  };
3956
4281
  return {
3957
4282
  Pricing: PricingBlock,
@@ -3995,7 +4320,7 @@ function createArbiBlocksConfig(opts = {}) {
3995
4320
  },
3996
4321
  defaultProps: { title: "Section title", align: "left", invert: false },
3997
4322
  render: ({ id, title, eyebrow, lead, align, invert }) => /* @__PURE__ */ jsxRuntime.jsx("div", { "data-testid": blockTestId(id), children: /* @__PURE__ */ jsxRuntime.jsx(
3998
- chunkPX6AMY64_cjs.SectionHeading,
4323
+ chunk6HGMAQLB_cjs.SectionHeading,
3999
4324
  {
4000
4325
  title,
4001
4326
  eyebrow,
@@ -4589,7 +4914,7 @@ function ModuleManager({ store, testIdPrefix = "builder" }) {
4589
4914
  {
4590
4915
  variant: "elevated",
4591
4916
  className: "rounded-xl",
4592
- "data-testid": chunkPX6AMY64_cjs.tid(`${testIdPrefix}-modules-section`, group.section),
4917
+ "data-testid": chunk6HGMAQLB_cjs.tid(`${testIdPrefix}-modules-section`, group.section),
4593
4918
  children: [
4594
4919
  /* @__PURE__ */ jsxRuntime.jsx(react.CardHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(react.CardTitle, { className: "text-base", children: group.section }) }),
4595
4920
  /* @__PURE__ */ jsxRuntime.jsx(react.CardContent, { className: "space-y-1.5", children: group.modules.map((m, idx) => {
@@ -4598,7 +4923,7 @@ function ModuleManager({ store, testIdPrefix = "builder" }) {
4598
4923
  "div",
4599
4924
  {
4600
4925
  className: "flex items-center gap-3 rounded-md border border-border/60 bg-card px-3 py-2",
4601
- "data-testid": chunkPX6AMY64_cjs.tid(`${testIdPrefix}-module`, m.id),
4926
+ "data-testid": chunk6HGMAQLB_cjs.tid(`${testIdPrefix}-module`, m.id),
4602
4927
  children: [
4603
4928
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col", children: [
4604
4929
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -4610,7 +4935,7 @@ function ModuleManager({ store, testIdPrefix = "builder" }) {
4610
4935
  disabled: idx === 0,
4611
4936
  onClick: () => move(m.id, "up"),
4612
4937
  "aria-label": `Move ${m.label} up`,
4613
- "data-testid": chunkPX6AMY64_cjs.tid(`${testIdPrefix}-module-up`, m.id),
4938
+ "data-testid": chunk6HGMAQLB_cjs.tid(`${testIdPrefix}-module-up`, m.id),
4614
4939
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronUp, { className: "size-3.5" })
4615
4940
  }
4616
4941
  ),
@@ -4623,7 +4948,7 @@ function ModuleManager({ store, testIdPrefix = "builder" }) {
4623
4948
  disabled: idx === group.modules.length - 1,
4624
4949
  onClick: () => move(m.id, "down"),
4625
4950
  "aria-label": `Move ${m.label} down`,
4626
- "data-testid": chunkPX6AMY64_cjs.tid(`${testIdPrefix}-module-down`, m.id),
4951
+ "data-testid": chunk6HGMAQLB_cjs.tid(`${testIdPrefix}-module-down`, m.id),
4627
4952
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "size-3.5" })
4628
4953
  }
4629
4954
  )
@@ -4643,7 +4968,7 @@ function ModuleManager({ store, testIdPrefix = "builder" }) {
4643
4968
  checked: m.enabled,
4644
4969
  onCheckedChange: () => toggle2(m.id),
4645
4970
  "aria-label": `Enable ${m.label}`,
4646
- "data-testid": chunkPX6AMY64_cjs.tid(`${testIdPrefix}-module-toggle`, m.id)
4971
+ "data-testid": chunk6HGMAQLB_cjs.tid(`${testIdPrefix}-module-toggle`, m.id)
4647
4972
  }
4648
4973
  )
4649
4974
  ]
@@ -4675,7 +5000,7 @@ function ConfigModelBadge({ configId, testIdPrefix }) {
4675
5000
  react.Badge,
4676
5001
  {
4677
5002
  variant: TIER_VARIANT[tier] ?? "secondary",
4678
- "data-testid": chunkPX6AMY64_cjs.tid(`${testIdPrefix}-agents-config-tier`, configId),
5003
+ "data-testid": chunk6HGMAQLB_cjs.tid(`${testIdPrefix}-agents-config-tier`, configId),
4679
5004
  children: [
4680
5005
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Cpu, { className: "size-3" }),
4681
5006
  " ",
@@ -4712,14 +5037,14 @@ function AgentsPanel({ store, testIdPrefix = "builder" }) {
4712
5037
  "label",
4713
5038
  {
4714
5039
  className: "flex cursor-pointer items-center gap-3 rounded-md border border-border/60 bg-card px-3 py-2",
4715
- "data-testid": chunkPX6AMY64_cjs.tid(`${testIdPrefix}-agents-config`, v.external_id),
5040
+ "data-testid": chunk6HGMAQLB_cjs.tid(`${testIdPrefix}-agents-config`, v.external_id),
4716
5041
  children: [
4717
5042
  /* @__PURE__ */ jsxRuntime.jsx(
4718
5043
  react.Checkbox,
4719
5044
  {
4720
5045
  checked: configIds.includes(v.external_id),
4721
5046
  onCheckedChange: () => toggleConfig(v.external_id),
4722
- "data-testid": chunkPX6AMY64_cjs.tid(`${testIdPrefix}-agents-config-toggle`, v.external_id)
5047
+ "data-testid": chunk6HGMAQLB_cjs.tid(`${testIdPrefix}-agents-config-toggle`, v.external_id)
4723
5048
  }
4724
5049
  ),
4725
5050
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
@@ -4748,14 +5073,14 @@ function AgentsPanel({ store, testIdPrefix = "builder" }) {
4748
5073
  "label",
4749
5074
  {
4750
5075
  className: "flex cursor-pointer items-center gap-3 rounded-md border border-border/60 bg-card px-3 py-2",
4751
- "data-testid": chunkPX6AMY64_cjs.tid(`${testIdPrefix}-agents-agent`, a.external_id),
5076
+ "data-testid": chunk6HGMAQLB_cjs.tid(`${testIdPrefix}-agents-agent`, a.external_id),
4752
5077
  children: [
4753
5078
  /* @__PURE__ */ jsxRuntime.jsx(
4754
5079
  react.Checkbox,
4755
5080
  {
4756
5081
  checked: agentIds.includes(a.external_id),
4757
5082
  onCheckedChange: () => toggleAgent(a.external_id),
4758
- "data-testid": chunkPX6AMY64_cjs.tid(`${testIdPrefix}-agents-agent-toggle`, a.external_id)
5083
+ "data-testid": chunk6HGMAQLB_cjs.tid(`${testIdPrefix}-agents-agent-toggle`, a.external_id)
4759
5084
  }
4760
5085
  ),
4761
5086
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
@@ -4842,7 +5167,7 @@ function VerticalBuilder({
4842
5167
  ] })
4843
5168
  ] }),
4844
5169
  /* @__PURE__ */ jsxRuntime.jsx(react.TabsContent, { value: "theme", children: /* @__PURE__ */ jsxRuntime.jsx(
4845
- chunkPX6AMY64_cjs.ThemeEditor,
5170
+ chunk6HGMAQLB_cjs.ThemeEditor,
4846
5171
  {
4847
5172
  bundle: themeBundle,
4848
5173
  variant: "panel",
@@ -4868,275 +5193,275 @@ function VerticalBuilder({
4868
5193
 
4869
5194
  Object.defineProperty(exports, "ASSET_REF_PREFIX", {
4870
5195
  enumerable: true,
4871
- get: function () { return chunkPX6AMY64_cjs.ASSET_REF_PREFIX; }
5196
+ get: function () { return chunk6HGMAQLB_cjs.ASSET_REF_PREFIX; }
4872
5197
  });
4873
5198
  Object.defineProperty(exports, "Accordion", {
4874
5199
  enumerable: true,
4875
- get: function () { return chunkPX6AMY64_cjs.Accordion; }
5200
+ get: function () { return chunk6HGMAQLB_cjs.Accordion; }
4876
5201
  });
4877
5202
  Object.defineProperty(exports, "AssetResolverProvider", {
4878
5203
  enumerable: true,
4879
- get: function () { return chunkPX6AMY64_cjs.AssetResolverProvider; }
5204
+ get: function () { return chunk6HGMAQLB_cjs.AssetResolverProvider; }
4880
5205
  });
4881
5206
  Object.defineProperty(exports, "AvatarBlock", {
4882
5207
  enumerable: true,
4883
- get: function () { return chunkPX6AMY64_cjs.AvatarBlock; }
5208
+ get: function () { return chunk6HGMAQLB_cjs.AvatarBlock; }
4884
5209
  });
4885
5210
  Object.defineProperty(exports, "Banner", {
4886
5211
  enumerable: true,
4887
- get: function () { return chunkPX6AMY64_cjs.Banner; }
5212
+ get: function () { return chunk6HGMAQLB_cjs.Banner; }
4888
5213
  });
4889
5214
  Object.defineProperty(exports, "BlockImage", {
4890
5215
  enumerable: true,
4891
- get: function () { return chunkPX6AMY64_cjs.BlockImage; }
5216
+ get: function () { return chunk6HGMAQLB_cjs.BlockImage; }
4892
5217
  });
4893
5218
  Object.defineProperty(exports, "BlockLink", {
4894
5219
  enumerable: true,
4895
- get: function () { return chunkPX6AMY64_cjs.BlockLink; }
5220
+ get: function () { return chunk6HGMAQLB_cjs.BlockLink; }
4896
5221
  });
4897
5222
  Object.defineProperty(exports, "CTABanner", {
4898
5223
  enumerable: true,
4899
- get: function () { return chunkPX6AMY64_cjs.CTABanner; }
5224
+ get: function () { return chunk6HGMAQLB_cjs.CTABanner; }
4900
5225
  });
4901
5226
  Object.defineProperty(exports, "Callout", {
4902
5227
  enumerable: true,
4903
- get: function () { return chunkPX6AMY64_cjs.Callout; }
5228
+ get: function () { return chunk6HGMAQLB_cjs.Callout; }
4904
5229
  });
4905
5230
  Object.defineProperty(exports, "Columns", {
4906
5231
  enumerable: true,
4907
- get: function () { return chunkPX6AMY64_cjs.Columns; }
5232
+ get: function () { return chunk6HGMAQLB_cjs.Columns; }
4908
5233
  });
4909
5234
  Object.defineProperty(exports, "ContactForm", {
4910
5235
  enumerable: true,
4911
- get: function () { return chunkPX6AMY64_cjs.ContactForm; }
5236
+ get: function () { return chunk6HGMAQLB_cjs.ContactForm; }
4912
5237
  });
4913
5238
  Object.defineProperty(exports, "Container", {
4914
5239
  enumerable: true,
4915
- get: function () { return chunkPX6AMY64_cjs.Container; }
5240
+ get: function () { return chunk6HGMAQLB_cjs.Container; }
4916
5241
  });
4917
5242
  Object.defineProperty(exports, "FAQ", {
4918
5243
  enumerable: true,
4919
- get: function () { return chunkPX6AMY64_cjs.FAQ; }
5244
+ get: function () { return chunk6HGMAQLB_cjs.FAQ; }
4920
5245
  });
4921
5246
  Object.defineProperty(exports, "FONT_PAIRINGS", {
4922
5247
  enumerable: true,
4923
- get: function () { return chunkPX6AMY64_cjs.FONT_PAIRINGS; }
5248
+ get: function () { return chunk6HGMAQLB_cjs.FONT_PAIRINGS; }
4924
5249
  });
4925
5250
  Object.defineProperty(exports, "FeatureGrid", {
4926
5251
  enumerable: true,
4927
- get: function () { return chunkPX6AMY64_cjs.FeatureGrid; }
5252
+ get: function () { return chunk6HGMAQLB_cjs.FeatureGrid; }
4928
5253
  });
4929
5254
  Object.defineProperty(exports, "Footer", {
4930
5255
  enumerable: true,
4931
- get: function () { return chunkPX6AMY64_cjs.Footer; }
5256
+ get: function () { return chunk6HGMAQLB_cjs.Footer; }
4932
5257
  });
4933
5258
  Object.defineProperty(exports, "Gallery", {
4934
5259
  enumerable: true,
4935
- get: function () { return chunkPX6AMY64_cjs.Gallery; }
5260
+ get: function () { return chunk6HGMAQLB_cjs.Gallery; }
4936
5261
  });
4937
5262
  Object.defineProperty(exports, "Hero", {
4938
5263
  enumerable: true,
4939
- get: function () { return chunkPX6AMY64_cjs.Hero; }
5264
+ get: function () { return chunk6HGMAQLB_cjs.Hero; }
4940
5265
  });
4941
5266
  Object.defineProperty(exports, "ListBlock", {
4942
5267
  enumerable: true,
4943
- get: function () { return chunkPX6AMY64_cjs.ListBlock; }
5268
+ get: function () { return chunk6HGMAQLB_cjs.ListBlock; }
4944
5269
  });
4945
5270
  Object.defineProperty(exports, "LogoCloud", {
4946
5271
  enumerable: true,
4947
- get: function () { return chunkPX6AMY64_cjs.LogoCloud; }
5272
+ get: function () { return chunk6HGMAQLB_cjs.LogoCloud; }
4948
5273
  });
4949
5274
  Object.defineProperty(exports, "MediaText", {
4950
5275
  enumerable: true,
4951
- get: function () { return chunkPX6AMY64_cjs.MediaText; }
5276
+ get: function () { return chunk6HGMAQLB_cjs.MediaText; }
4952
5277
  });
4953
5278
  Object.defineProperty(exports, "Navbar", {
4954
5279
  enumerable: true,
4955
- get: function () { return chunkPX6AMY64_cjs.Navbar; }
5280
+ get: function () { return chunk6HGMAQLB_cjs.Navbar; }
4956
5281
  });
4957
5282
  Object.defineProperty(exports, "PricingTable", {
4958
5283
  enumerable: true,
4959
- get: function () { return chunkPX6AMY64_cjs.PricingTable; }
5284
+ get: function () { return chunk6HGMAQLB_cjs.PricingTable; }
4960
5285
  });
4961
5286
  Object.defineProperty(exports, "RichTextBlock", {
4962
5287
  enumerable: true,
4963
- get: function () { return chunkPX6AMY64_cjs.RichTextBlock; }
5288
+ get: function () { return chunk6HGMAQLB_cjs.RichTextBlock; }
4964
5289
  });
4965
5290
  Object.defineProperty(exports, "SectionHeading", {
4966
5291
  enumerable: true,
4967
- get: function () { return chunkPX6AMY64_cjs.SectionHeading; }
5292
+ get: function () { return chunk6HGMAQLB_cjs.SectionHeading; }
4968
5293
  });
4969
5294
  Object.defineProperty(exports, "Spacer", {
4970
5295
  enumerable: true,
4971
- get: function () { return chunkPX6AMY64_cjs.Spacer; }
5296
+ get: function () { return chunk6HGMAQLB_cjs.Spacer; }
4972
5297
  });
4973
5298
  Object.defineProperty(exports, "Steps", {
4974
5299
  enumerable: true,
4975
- get: function () { return chunkPX6AMY64_cjs.Steps; }
5300
+ get: function () { return chunk6HGMAQLB_cjs.Steps; }
4976
5301
  });
4977
5302
  Object.defineProperty(exports, "THEME_STYLE_ID", {
4978
5303
  enumerable: true,
4979
- get: function () { return chunkPX6AMY64_cjs.THEME_STYLE_ID; }
5304
+ get: function () { return chunk6HGMAQLB_cjs.THEME_STYLE_ID; }
4980
5305
  });
4981
5306
  Object.defineProperty(exports, "Tabs", {
4982
5307
  enumerable: true,
4983
- get: function () { return chunkPX6AMY64_cjs.Tabs; }
5308
+ get: function () { return chunk6HGMAQLB_cjs.Tabs; }
4984
5309
  });
4985
5310
  Object.defineProperty(exports, "TeamGrid", {
4986
5311
  enumerable: true,
4987
- get: function () { return chunkPX6AMY64_cjs.TeamGrid; }
5312
+ get: function () { return chunk6HGMAQLB_cjs.TeamGrid; }
4988
5313
  });
4989
5314
  Object.defineProperty(exports, "Testimonial", {
4990
5315
  enumerable: true,
4991
- get: function () { return chunkPX6AMY64_cjs.Testimonial; }
5316
+ get: function () { return chunk6HGMAQLB_cjs.Testimonial; }
4992
5317
  });
4993
5318
  Object.defineProperty(exports, "TestimonialGrid", {
4994
5319
  enumerable: true,
4995
- get: function () { return chunkPX6AMY64_cjs.TestimonialGrid; }
5320
+ get: function () { return chunk6HGMAQLB_cjs.TestimonialGrid; }
4996
5321
  });
4997
5322
  Object.defineProperty(exports, "ThemeEditor", {
4998
5323
  enumerable: true,
4999
- get: function () { return chunkPX6AMY64_cjs.ThemeEditor; }
5324
+ get: function () { return chunk6HGMAQLB_cjs.ThemeEditor; }
5000
5325
  });
5001
5326
  Object.defineProperty(exports, "Timeline", {
5002
5327
  enumerable: true,
5003
- get: function () { return chunkPX6AMY64_cjs.Timeline; }
5328
+ get: function () { return chunk6HGMAQLB_cjs.Timeline; }
5004
5329
  });
5005
5330
  Object.defineProperty(exports, "TimelineCalendar", {
5006
5331
  enumerable: true,
5007
- get: function () { return chunkPX6AMY64_cjs.TimelineCalendar; }
5332
+ get: function () { return chunk6HGMAQLB_cjs.TimelineCalendar; }
5008
5333
  });
5009
5334
  Object.defineProperty(exports, "TimelineGantt", {
5010
5335
  enumerable: true,
5011
- get: function () { return chunkPX6AMY64_cjs.TimelineGantt; }
5336
+ get: function () { return chunk6HGMAQLB_cjs.TimelineGantt; }
5012
5337
  });
5013
5338
  Object.defineProperty(exports, "VideoEmbed", {
5014
5339
  enumerable: true,
5015
- get: function () { return chunkPX6AMY64_cjs.VideoEmbed; }
5340
+ get: function () { return chunk6HGMAQLB_cjs.VideoEmbed; }
5016
5341
  });
5017
5342
  Object.defineProperty(exports, "applyFontVars", {
5018
5343
  enumerable: true,
5019
- get: function () { return chunkPX6AMY64_cjs.applyFontVars; }
5344
+ get: function () { return chunk6HGMAQLB_cjs.applyFontVars; }
5020
5345
  });
5021
5346
  Object.defineProperty(exports, "applyStoredTheme", {
5022
5347
  enumerable: true,
5023
- get: function () { return chunkPX6AMY64_cjs.applyStoredTheme; }
5348
+ get: function () { return chunk6HGMAQLB_cjs.applyStoredTheme; }
5024
5349
  });
5025
5350
  Object.defineProperty(exports, "applyThemeVars", {
5026
5351
  enumerable: true,
5027
- get: function () { return chunkPX6AMY64_cjs.applyThemeVars; }
5352
+ get: function () { return chunk6HGMAQLB_cjs.applyThemeVars; }
5028
5353
  });
5029
5354
  Object.defineProperty(exports, "asAssetRef", {
5030
5355
  enumerable: true,
5031
- get: function () { return chunkPX6AMY64_cjs.asAssetRef; }
5356
+ get: function () { return chunk6HGMAQLB_cjs.asAssetRef; }
5032
5357
  });
5033
5358
  Object.defineProperty(exports, "assetRefId", {
5034
5359
  enumerable: true,
5035
- get: function () { return chunkPX6AMY64_cjs.assetRefId; }
5360
+ get: function () { return chunk6HGMAQLB_cjs.assetRefId; }
5036
5361
  });
5037
5362
  Object.defineProperty(exports, "clearFontVars", {
5038
5363
  enumerable: true,
5039
- get: function () { return chunkPX6AMY64_cjs.clearFontVars; }
5364
+ get: function () { return chunk6HGMAQLB_cjs.clearFontVars; }
5040
5365
  });
5041
5366
  Object.defineProperty(exports, "clearThemeVars", {
5042
5367
  enumerable: true,
5043
- get: function () { return chunkPX6AMY64_cjs.clearThemeVars; }
5368
+ get: function () { return chunk6HGMAQLB_cjs.clearThemeVars; }
5044
5369
  });
5045
5370
  Object.defineProperty(exports, "createThemeStore", {
5046
5371
  enumerable: true,
5047
- get: function () { return chunkPX6AMY64_cjs.createThemeStore; }
5372
+ get: function () { return chunk6HGMAQLB_cjs.createThemeStore; }
5048
5373
  });
5049
5374
  Object.defineProperty(exports, "dayKey", {
5050
5375
  enumerable: true,
5051
- get: function () { return chunkPX6AMY64_cjs.dayKey; }
5376
+ get: function () { return chunk6HGMAQLB_cjs.dayKey; }
5052
5377
  });
5053
5378
  Object.defineProperty(exports, "daysUntil", {
5054
5379
  enumerable: true,
5055
- get: function () { return chunkPX6AMY64_cjs.daysUntil; }
5380
+ get: function () { return chunk6HGMAQLB_cjs.daysUntil; }
5056
5381
  });
5057
5382
  Object.defineProperty(exports, "fmtDate", {
5058
5383
  enumerable: true,
5059
- get: function () { return chunkPX6AMY64_cjs.fmtDate; }
5384
+ get: function () { return chunk6HGMAQLB_cjs.fmtDate; }
5060
5385
  });
5061
5386
  Object.defineProperty(exports, "fmtDateTime", {
5062
5387
  enumerable: true,
5063
- get: function () { return chunkPX6AMY64_cjs.fmtDateTime; }
5388
+ get: function () { return chunk6HGMAQLB_cjs.fmtDateTime; }
5064
5389
  });
5065
5390
  Object.defineProperty(exports, "fontPackages", {
5066
5391
  enumerable: true,
5067
- get: function () { return chunkPX6AMY64_cjs.fontPackages; }
5392
+ get: function () { return chunk6HGMAQLB_cjs.fontPackages; }
5068
5393
  });
5069
5394
  Object.defineProperty(exports, "formatPageRefs", {
5070
5395
  enumerable: true,
5071
- get: function () { return chunkPX6AMY64_cjs.formatPageRefs; }
5396
+ get: function () { return chunk6HGMAQLB_cjs.formatPageRefs; }
5072
5397
  });
5073
5398
  Object.defineProperty(exports, "formatSpan", {
5074
5399
  enumerable: true,
5075
- get: function () { return chunkPX6AMY64_cjs.formatSpan; }
5400
+ get: function () { return chunk6HGMAQLB_cjs.formatSpan; }
5076
5401
  });
5077
5402
  Object.defineProperty(exports, "fromNow", {
5078
5403
  enumerable: true,
5079
- get: function () { return chunkPX6AMY64_cjs.fromNow; }
5404
+ get: function () { return chunk6HGMAQLB_cjs.fromNow; }
5080
5405
  });
5081
5406
  Object.defineProperty(exports, "gbp", {
5082
5407
  enumerable: true,
5083
- get: function () { return chunkPX6AMY64_cjs.gbp; }
5408
+ get: function () { return chunk6HGMAQLB_cjs.gbp; }
5084
5409
  });
5085
5410
  Object.defineProperty(exports, "getFontPairing", {
5086
5411
  enumerable: true,
5087
- get: function () { return chunkPX6AMY64_cjs.getFontPairing; }
5412
+ get: function () { return chunk6HGMAQLB_cjs.getFontPairing; }
5088
5413
  });
5089
5414
  Object.defineProperty(exports, "hrs", {
5090
5415
  enumerable: true,
5091
- get: function () { return chunkPX6AMY64_cjs.hrs; }
5416
+ get: function () { return chunk6HGMAQLB_cjs.hrs; }
5092
5417
  });
5093
5418
  Object.defineProperty(exports, "initials", {
5094
5419
  enumerable: true,
5095
- get: function () { return chunkPX6AMY64_cjs.initials; }
5420
+ get: function () { return chunk6HGMAQLB_cjs.initials; }
5096
5421
  });
5097
5422
  Object.defineProperty(exports, "isAssetRef", {
5098
5423
  enumerable: true,
5099
- get: function () { return chunkPX6AMY64_cjs.isAssetRef; }
5424
+ get: function () { return chunk6HGMAQLB_cjs.isAssetRef; }
5100
5425
  });
5101
5426
  Object.defineProperty(exports, "matchFontPairing", {
5102
5427
  enumerable: true,
5103
- get: function () { return chunkPX6AMY64_cjs.matchFontPairing; }
5428
+ get: function () { return chunk6HGMAQLB_cjs.matchFontPairing; }
5104
5429
  });
5105
5430
  Object.defineProperty(exports, "monthLabel", {
5106
5431
  enumerable: true,
5107
- get: function () { return chunkPX6AMY64_cjs.monthLabel; }
5432
+ get: function () { return chunk6HGMAQLB_cjs.monthLabel; }
5108
5433
  });
5109
5434
  Object.defineProperty(exports, "parseIso", {
5110
5435
  enumerable: true,
5111
- get: function () { return chunkPX6AMY64_cjs.parseIso; }
5436
+ get: function () { return chunk6HGMAQLB_cjs.parseIso; }
5112
5437
  });
5113
5438
  Object.defineProperty(exports, "pct", {
5114
5439
  enumerable: true,
5115
- get: function () { return chunkPX6AMY64_cjs.pct; }
5440
+ get: function () { return chunk6HGMAQLB_cjs.pct; }
5116
5441
  });
5117
5442
  Object.defineProperty(exports, "tid", {
5118
5443
  enumerable: true,
5119
- get: function () { return chunkPX6AMY64_cjs.tid; }
5444
+ get: function () { return chunk6HGMAQLB_cjs.tid; }
5120
5445
  });
5121
5446
  Object.defineProperty(exports, "toEmbedUrl", {
5122
5447
  enumerable: true,
5123
- get: function () { return chunkPX6AMY64_cjs.toEmbedUrl; }
5448
+ get: function () { return chunk6HGMAQLB_cjs.toEmbedUrl; }
5124
5449
  });
5125
5450
  Object.defineProperty(exports, "toHslTriplet", {
5126
5451
  enumerable: true,
5127
- get: function () { return chunkPX6AMY64_cjs.toHslTriplet; }
5452
+ get: function () { return chunk6HGMAQLB_cjs.toHslTriplet; }
5128
5453
  });
5129
5454
  Object.defineProperty(exports, "useAssetRenderer", {
5130
5455
  enumerable: true,
5131
- get: function () { return chunkPX6AMY64_cjs.useAssetRenderer; }
5456
+ get: function () { return chunk6HGMAQLB_cjs.useAssetRenderer; }
5132
5457
  });
5133
5458
  Object.defineProperty(exports, "useAssetResolverActive", {
5134
5459
  enumerable: true,
5135
- get: function () { return chunkPX6AMY64_cjs.useAssetResolverActive; }
5460
+ get: function () { return chunk6HGMAQLB_cjs.useAssetResolverActive; }
5136
5461
  });
5137
5462
  Object.defineProperty(exports, "utcDay", {
5138
5463
  enumerable: true,
5139
- get: function () { return chunkPX6AMY64_cjs.utcDay; }
5464
+ get: function () { return chunk6HGMAQLB_cjs.utcDay; }
5140
5465
  });
5141
5466
  Object.defineProperty(exports, "DocumentCard", {
5142
5467
  enumerable: true,
@@ -5203,13 +5528,17 @@ exports.ConnectionProvider = ConnectionProvider;
5203
5528
  exports.DataTable = DataTable;
5204
5529
  exports.DataTableBlock = DataTableBlock;
5205
5530
  exports.EmptyState = EmptyState;
5531
+ exports.EntityIdentityBar = EntityIdentityBar;
5206
5532
  exports.GridView = GridView;
5533
+ exports.IDENTITY_NAME_MAX_LENGTH = IDENTITY_NAME_MAX_LENGTH;
5207
5534
  exports.LegalArbiProvider = LegalArbiProvider;
5208
5535
  exports.LiveDataProvider = LiveDataProvider;
5536
+ exports.MemberAvatarStack = MemberAvatarStack;
5209
5537
  exports.MetricCard = MetricCard;
5210
5538
  exports.ModuleManager = ModuleManager;
5211
5539
  exports.PageHeader = PageHeader;
5212
5540
  exports.PageRenderer = PageRenderer;
5541
+ exports.RecentActivityCard = RecentActivityCard;
5213
5542
  exports.Section = Section;
5214
5543
  exports.StatGroup = StatGroup;
5215
5544
  exports.StudioEditor = StudioEditor;