@natoe/colab 0.1.8 → 0.1.10

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.mjs CHANGED
@@ -1196,11 +1196,109 @@ function BackIcon({ size = 22, color = "currentColor" }) {
1196
1196
  }
1197
1197
  );
1198
1198
  }
1199
+
1200
+ // src/core/theme.ts
1201
+ var FONT_SIZE = {
1202
+ xs: "12px",
1203
+ sm: "13px",
1204
+ md: "15px",
1205
+ lg: "17px",
1206
+ xxl: "28px"
1207
+ };
1208
+ var FONT_WEIGHT = {
1209
+ regular: 400,
1210
+ medium: 500,
1211
+ semibold: 600,
1212
+ bold: 700
1213
+ };
1214
+ var LINE_HEIGHT = {
1215
+ tight: 1.3,
1216
+ normal: 1.45};
1217
+ var SPACE = {
1218
+ S1: "4px",
1219
+ S2: "8px",
1220
+ S3: "12px",
1221
+ S4: "16px",
1222
+ S5: "20px",
1223
+ S6: "24px",
1224
+ S12: "48px"
1225
+ };
1226
+ var RADIUS = {
1227
+ sm: "4px",
1228
+ md: "8px",
1229
+ lg: "12px",
1230
+ pill: "9999px",
1231
+ full: "50%"
1232
+ };
1233
+ var COLOR = {
1234
+ // Brand
1235
+ primary: "#2563eb",
1236
+ /** Tinted surface for chips/cards on brand-coloured states. */
1237
+ primaryBg: "#dbeafe",
1238
+ primaryFg: "#1d4ed8",
1239
+ // Neutral grayscale — taken from Tailwind's zinc-leaning slate, the
1240
+ // existing dominant family in the package.
1241
+ white: "#ffffff",
1242
+ neutral50: "#f9fafb",
1243
+ neutral100: "#f3f4f6",
1244
+ neutral200: "#e5e7eb",
1245
+ neutral300: "#d1d5db",
1246
+ neutral400: "#9ca3af",
1247
+ neutral500: "#6b7280",
1248
+ neutral600: "#4b5563",
1249
+ neutral700: "#374151",
1250
+ neutral800: "#1f2937",
1251
+ neutral900: "#111827",
1252
+ // Slate (used by day dividers + dialog title bar)
1253
+ slate200: "#e2e8f0",
1254
+ slate700: "#334155",
1255
+ slate800: "#1e293b",
1256
+ // Semantic
1257
+ success: "#059669",
1258
+ warning: "#d97706",
1259
+ danger: "#dc2626",
1260
+ dangerBg: "#fef2f2",
1261
+ dangerBorder: "#fecaca",
1262
+ dangerFg: "#b91c1c"
1263
+ };
1264
+ var SIZE = {
1265
+ /** Default interactive height (text buttons, list rows). */
1266
+ control: "40px",
1267
+ /** Square icon-only buttons inside chrome (popup title, menu trigger). */
1268
+ controlIcon: "36px",
1269
+ /** Primary input controls (textarea send/attach). 44px = WCAG min. */
1270
+ controlPrimary: "44px",
1271
+ /** Avatar in the inbox row. */
1272
+ avatar: "40px",
1273
+ /** Unread dot. */
1274
+ dot: "10px"
1275
+ };
1276
+ var SHADOW = {
1277
+ /** Cards / floating popovers (message-actions menu). */
1278
+ popover: "0 6px 18px rgba(0, 0, 0, 0.12)",
1279
+ /** Dialog (CollabPopup). */
1280
+ dialog: "0 8px 30px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.08)",
1281
+ /** Subtle separator shadow (sticky day divider, toast). */
1282
+ subtle: "0 1px 2px rgba(0, 0, 0, 0.04)",
1283
+ toast: "0 4px 12px rgba(0, 0, 0, 0.18)"
1284
+ };
1285
+ var Z_INDEX = {
1286
+ /** Sticky day divider — above bubbles, below interactive popovers. */
1287
+ sticky: 1,
1288
+ /** Toasts inside a panel. */
1289
+ toast: 20,
1290
+ /** Floating CollabPopup dialog. */
1291
+ dialog: 9999,
1292
+ /** Portaled message-actions menu — must sit above the dialog. */
1293
+ menu: 1e4
1294
+ };
1199
1295
  function PatientHeader({
1200
1296
  patientData,
1201
1297
  onOpenDicom,
1202
1298
  onOpenSettings,
1203
1299
  onBack,
1300
+ hideName = false,
1301
+ displayName,
1204
1302
  className
1205
1303
  }) {
1206
1304
  const hasDicom = !!(patientData.studyId && patientData.storageId);
@@ -1215,7 +1313,7 @@ function PatientHeader({
1215
1313
  meta.push({ label: "Ref", value: patientData.referringPhysician });
1216
1314
  }
1217
1315
  return /* @__PURE__ */ jsxs("div", { className, style: styles.container, children: [
1218
- /* @__PURE__ */ jsxs("div", { style: styles.nameRow, children: [
1316
+ !hideName && /* @__PURE__ */ jsxs("div", { style: styles.nameRow, children: [
1219
1317
  onBack && /* @__PURE__ */ jsx(
1220
1318
  "button",
1221
1319
  {
@@ -1224,10 +1322,10 @@ function PatientHeader({
1224
1322
  style: styles.backButton,
1225
1323
  "aria-label": "Back to conversations",
1226
1324
  title: "Back to conversations",
1227
- children: /* @__PURE__ */ jsx(BackIcon, { size: 22, color: "#1f2937" })
1325
+ children: /* @__PURE__ */ jsx(BackIcon, { size: 22, color: COLOR.neutral800 })
1228
1326
  }
1229
1327
  ),
1230
- /* @__PURE__ */ jsx("span", { style: styles.nameText, children: buildChannelName(patientData) })
1328
+ /* @__PURE__ */ jsx("span", { style: styles.nameText, children: displayName ?? buildChannelName(patientData) })
1231
1329
  ] }),
1232
1330
  meta.length > 0 && /* @__PURE__ */ jsx("div", { style: styles.metaRow, children: meta.map((item) => /* @__PURE__ */ jsxs("span", { style: styles.metaItem, children: [
1233
1331
  /* @__PURE__ */ jsxs("span", { style: styles.metaLabel, children: [
@@ -1246,7 +1344,7 @@ function PatientHeader({
1246
1344
  type: "button",
1247
1345
  "aria-label": "View DICOM study",
1248
1346
  children: [
1249
- /* @__PURE__ */ jsx(DicomIcon, { size: 18, color: "#ffffff" }),
1347
+ /* @__PURE__ */ jsx(DicomIcon, { size: 18, color: COLOR.white }),
1250
1348
  /* @__PURE__ */ jsx("span", { children: "View DICOM" })
1251
1349
  ]
1252
1350
  }
@@ -1259,7 +1357,7 @@ function PatientHeader({
1259
1357
  type: "button",
1260
1358
  "aria-label": "Open channel settings",
1261
1359
  children: [
1262
- /* @__PURE__ */ jsx(SettingsIcon, { size: 18, color: "#374151" }),
1360
+ /* @__PURE__ */ jsx(SettingsIcon, { size: 18, color: COLOR.neutral700 }),
1263
1361
  /* @__PURE__ */ jsx("span", { children: "Settings" })
1264
1362
  ]
1265
1363
  }
@@ -1269,33 +1367,33 @@ function PatientHeader({
1269
1367
  }
1270
1368
  var styles = {
1271
1369
  container: {
1272
- padding: "14px 16px",
1273
- borderBottom: "1px solid #e5e7eb",
1274
- backgroundColor: "#f9fafb"
1370
+ padding: `${SPACE.S3} ${SPACE.S4}`,
1371
+ borderBottom: `1px solid ${COLOR.neutral200}`,
1372
+ backgroundColor: COLOR.neutral50
1275
1373
  },
1276
1374
  nameRow: {
1277
1375
  display: "flex",
1278
1376
  alignItems: "center",
1279
- gap: "6px"
1377
+ gap: SPACE.S2
1280
1378
  },
1281
1379
  backButton: {
1282
- width: "36px",
1283
- height: "36px",
1380
+ width: SIZE.controlIcon,
1381
+ height: SIZE.controlIcon,
1284
1382
  display: "flex",
1285
1383
  alignItems: "center",
1286
1384
  justifyContent: "center",
1287
- marginLeft: "-8px",
1385
+ marginLeft: `-${SPACE.S2}`,
1288
1386
  backgroundColor: "transparent",
1289
1387
  border: "none",
1290
- borderRadius: "50%",
1388
+ borderRadius: RADIUS.full,
1291
1389
  cursor: "pointer",
1292
1390
  flexShrink: 0
1293
1391
  },
1294
1392
  nameText: {
1295
- fontSize: "18px",
1296
- fontWeight: 600,
1297
- color: "#111827",
1298
- lineHeight: 1.3,
1393
+ fontSize: FONT_SIZE.lg,
1394
+ fontWeight: FONT_WEIGHT.semibold,
1395
+ color: COLOR.neutral900,
1396
+ lineHeight: LINE_HEIGHT.tight,
1299
1397
  minWidth: 0,
1300
1398
  overflow: "hidden",
1301
1399
  textOverflow: "ellipsis",
@@ -1304,53 +1402,53 @@ var styles = {
1304
1402
  metaRow: {
1305
1403
  display: "flex",
1306
1404
  flexWrap: "wrap",
1307
- columnGap: "14px",
1308
- rowGap: "4px",
1309
- marginTop: "6px"
1405
+ columnGap: SPACE.S3,
1406
+ rowGap: SPACE.S1,
1407
+ marginTop: SPACE.S1
1310
1408
  },
1311
1409
  metaItem: {
1312
- fontSize: "13px",
1313
- color: "#374151",
1410
+ fontSize: FONT_SIZE.sm,
1411
+ color: COLOR.neutral700,
1314
1412
  whiteSpace: "nowrap"
1315
1413
  },
1316
1414
  metaLabel: {
1317
- color: "#6b7280",
1318
- fontWeight: 500
1415
+ color: COLOR.neutral500,
1416
+ fontWeight: FONT_WEIGHT.medium
1319
1417
  },
1320
1418
  metaValue: {
1321
- color: "#111827"
1419
+ color: COLOR.neutral900
1322
1420
  },
1323
1421
  actions: {
1324
1422
  display: "flex",
1325
- gap: "8px",
1326
- marginTop: "10px"
1423
+ gap: SPACE.S2,
1424
+ marginTop: SPACE.S3
1327
1425
  },
1328
1426
  dicomButton: {
1329
1427
  display: "inline-flex",
1330
1428
  alignItems: "center",
1331
- gap: "8px",
1332
- minHeight: "40px",
1333
- padding: "8px 16px",
1334
- fontSize: "14px",
1335
- fontWeight: 500,
1336
- color: "#ffffff",
1337
- backgroundColor: "#2563eb",
1429
+ gap: SPACE.S2,
1430
+ minHeight: SIZE.control,
1431
+ padding: `${SPACE.S2} ${SPACE.S4}`,
1432
+ fontSize: FONT_SIZE.sm,
1433
+ fontWeight: FONT_WEIGHT.medium,
1434
+ color: COLOR.white,
1435
+ backgroundColor: COLOR.primary,
1338
1436
  border: "none",
1339
- borderRadius: "6px",
1437
+ borderRadius: RADIUS.md,
1340
1438
  cursor: "pointer"
1341
1439
  },
1342
1440
  settingsButton: {
1343
1441
  display: "inline-flex",
1344
1442
  alignItems: "center",
1345
- gap: "8px",
1346
- minHeight: "40px",
1347
- padding: "8px 16px",
1348
- fontSize: "14px",
1349
- fontWeight: 500,
1350
- color: "#374151",
1351
- backgroundColor: "#ffffff",
1352
- border: "1px solid #d1d5db",
1353
- borderRadius: "6px",
1443
+ gap: SPACE.S2,
1444
+ minHeight: SIZE.control,
1445
+ padding: `${SPACE.S2} ${SPACE.S4}`,
1446
+ fontSize: FONT_SIZE.sm,
1447
+ fontWeight: FONT_WEIGHT.medium,
1448
+ color: COLOR.neutral700,
1449
+ backgroundColor: COLOR.white,
1450
+ border: `1px solid ${COLOR.neutral300}`,
1451
+ borderRadius: RADIUS.md,
1354
1452
  cursor: "pointer"
1355
1453
  }
1356
1454
  };
@@ -1360,10 +1458,10 @@ function ReplyQuoteBlock({
1360
1458
  onClick,
1361
1459
  className
1362
1460
  }) {
1363
- const baseBg = inOwnBubble ? "rgba(255,255,255,0.18)" : "#f3f4f6";
1364
- const barColor = inOwnBubble ? "#ffffff" : "#2563eb";
1365
- const nameColor = inOwnBubble ? "#ffffff" : "#2563eb";
1366
- const bodyColor = inOwnBubble ? "rgba(255,255,255,0.85)" : "#4b5563";
1461
+ const baseBg = inOwnBubble ? "rgba(255,255,255,0.18)" : COLOR.neutral100;
1462
+ const barColor = inOwnBubble ? COLOR.white : COLOR.primary;
1463
+ const nameColor = inOwnBubble ? COLOR.white : COLOR.primary;
1464
+ const bodyColor = inOwnBubble ? "rgba(255,255,255,0.85)" : COLOR.neutral600;
1367
1465
  const preview = renderSnapshotPreview(snapshot);
1368
1466
  return /* @__PURE__ */ jsxs(
1369
1467
  "div",
@@ -1402,10 +1500,10 @@ function renderSnapshotPreview(snapshot) {
1402
1500
  var styles2 = {
1403
1501
  container: {
1404
1502
  display: "flex",
1405
- gap: "6px",
1406
- padding: "4px 8px",
1407
- marginBottom: "4px",
1408
- borderRadius: "6px",
1503
+ gap: SPACE.S2,
1504
+ padding: `${SPACE.S1} ${SPACE.S2}`,
1505
+ marginBottom: SPACE.S1,
1506
+ borderRadius: RADIUS.sm,
1409
1507
  cursor: "pointer",
1410
1508
  maxWidth: "100%"
1411
1509
  },
@@ -1422,13 +1520,13 @@ var styles2 = {
1422
1520
  overflow: "hidden"
1423
1521
  },
1424
1522
  senderName: {
1425
- fontSize: "11px",
1426
- fontWeight: 600,
1427
- lineHeight: "1.2"
1523
+ fontSize: FONT_SIZE.xs,
1524
+ fontWeight: FONT_WEIGHT.semibold,
1525
+ lineHeight: LINE_HEIGHT.tight
1428
1526
  },
1429
1527
  body: {
1430
- fontSize: "11px",
1431
- lineHeight: "1.3",
1528
+ fontSize: FONT_SIZE.xs,
1529
+ lineHeight: LINE_HEIGHT.tight,
1432
1530
  overflow: "hidden",
1433
1531
  textOverflow: "ellipsis",
1434
1532
  whiteSpace: "nowrap"
@@ -1475,22 +1573,22 @@ var styles3 = {
1475
1573
  container: {
1476
1574
  display: "flex",
1477
1575
  alignItems: "center",
1478
- gap: "4px",
1576
+ gap: SPACE.S1,
1479
1577
  marginTop: "2px",
1480
- fontSize: "10px",
1481
- opacity: 0.75
1578
+ fontSize: FONT_SIZE.xs,
1579
+ opacity: 0.85
1482
1580
  },
1483
1581
  checkmark: {
1484
- fontSize: "10px",
1485
- color: "#60a5fa"
1582
+ fontSize: FONT_SIZE.xs,
1583
+ color: COLOR.primary
1486
1584
  },
1487
1585
  label: {
1488
- fontSize: "10px",
1586
+ fontSize: FONT_SIZE.xs,
1489
1587
  color: "inherit"
1490
1588
  },
1491
1589
  moreButton: {
1492
- fontSize: "10px",
1493
- fontWeight: 600,
1590
+ fontSize: FONT_SIZE.xs,
1591
+ fontWeight: FONT_WEIGHT.semibold,
1494
1592
  color: "inherit",
1495
1593
  backgroundColor: "transparent",
1496
1594
  border: "none",
@@ -1658,7 +1756,7 @@ function MessageActionsMenu({
1658
1756
  onClick: () => run(() => onReply(message)),
1659
1757
  style: styles4.item,
1660
1758
  children: [
1661
- /* @__PURE__ */ jsx(ReplyIcon, { size: 18, color: "#374151" }),
1759
+ /* @__PURE__ */ jsx(ReplyIcon, { size: 18, color: COLOR.neutral700 }),
1662
1760
  /* @__PURE__ */ jsx("span", { children: "Reply" })
1663
1761
  ]
1664
1762
  }
@@ -1671,7 +1769,7 @@ function MessageActionsMenu({
1671
1769
  onClick: () => run(() => onUnpin(message.id)),
1672
1770
  style: styles4.item,
1673
1771
  children: [
1674
- /* @__PURE__ */ jsx(PinIcon, { size: 16, color: "#374151" }),
1772
+ /* @__PURE__ */ jsx(PinIcon, { size: 16, color: COLOR.neutral700 }),
1675
1773
  /* @__PURE__ */ jsx("span", { children: "Unpin" })
1676
1774
  ]
1677
1775
  }
@@ -1688,7 +1786,7 @@ function MessageActionsMenu({
1688
1786
  },
1689
1787
  title: pinDisabled ? "Pin limit reached (max 3)" : void 0,
1690
1788
  children: [
1691
- /* @__PURE__ */ jsx(PinIcon, { size: 16, color: "#374151" }),
1789
+ /* @__PURE__ */ jsx(PinIcon, { size: 16, color: COLOR.neutral700 }),
1692
1790
  /* @__PURE__ */ jsx("span", { children: pinDisabled ? "Pin (limit reached)" : "Pin" })
1693
1791
  ]
1694
1792
  }
@@ -1701,7 +1799,7 @@ function MessageActionsMenu({
1701
1799
  onClick: () => run(() => onCopy(message.body)),
1702
1800
  style: styles4.item,
1703
1801
  children: [
1704
- /* @__PURE__ */ jsx(CopyIcon, { size: 16, color: "#374151" }),
1802
+ /* @__PURE__ */ jsx(CopyIcon, { size: 16, color: COLOR.neutral700 }),
1705
1803
  /* @__PURE__ */ jsx("span", { children: "Copy text" })
1706
1804
  ]
1707
1805
  }
@@ -1724,7 +1822,7 @@ function MessageActionsMenu({
1724
1822
  "aria-expanded": isOpen ? "true" : "false",
1725
1823
  title: "Message actions",
1726
1824
  style: styles4.trigger,
1727
- children: /* @__PURE__ */ jsx(MoreIcon, { size: 18, color: "#4b5563" })
1825
+ children: /* @__PURE__ */ jsx(MoreIcon, { size: 18, color: COLOR.neutral600 })
1728
1826
  }
1729
1827
  ),
1730
1828
  menu && typeof document !== "undefined" ? createPortal(menu, document.body) : null
@@ -1736,45 +1834,45 @@ var styles4 = {
1736
1834
  display: "inline-block"
1737
1835
  },
1738
1836
  trigger: {
1739
- width: "36px",
1740
- height: "36px",
1837
+ width: SIZE.controlIcon,
1838
+ height: SIZE.controlIcon,
1741
1839
  display: "flex",
1742
1840
  alignItems: "center",
1743
1841
  justifyContent: "center",
1744
1842
  backgroundColor: "transparent",
1745
1843
  border: "none",
1746
- borderRadius: "50%",
1844
+ borderRadius: RADIUS.full,
1747
1845
  cursor: "pointer",
1748
- color: "#4b5563"
1846
+ color: COLOR.neutral600
1749
1847
  },
1750
1848
  menu: {
1751
1849
  position: "fixed",
1752
1850
  minWidth: "160px",
1753
- backgroundColor: "#ffffff",
1754
- border: "1px solid #e5e7eb",
1755
- borderRadius: "10px",
1756
- boxShadow: "0 6px 18px rgba(0, 0, 0, 0.12)",
1757
- padding: "4px",
1758
- // Above the floating popup (z-index 9999) but below any future modal.
1759
- zIndex: 1e4
1851
+ backgroundColor: COLOR.white,
1852
+ border: `1px solid ${COLOR.neutral200}`,
1853
+ borderRadius: RADIUS.md,
1854
+ boxShadow: SHADOW.popover,
1855
+ padding: SPACE.S1,
1856
+ // Above the floating popup (z-index dialog) but below any future modal.
1857
+ zIndex: Z_INDEX.menu
1760
1858
  },
1761
1859
  item: {
1762
1860
  display: "flex",
1763
1861
  alignItems: "center",
1764
- gap: "10px",
1862
+ gap: SPACE.S3,
1765
1863
  width: "100%",
1766
- minHeight: "40px",
1767
- padding: "8px 12px",
1768
- fontSize: "14px",
1769
- color: "#111827",
1864
+ minHeight: SIZE.control,
1865
+ padding: `${SPACE.S2} ${SPACE.S3}`,
1866
+ fontSize: FONT_SIZE.sm,
1867
+ color: COLOR.neutral900,
1770
1868
  backgroundColor: "transparent",
1771
1869
  border: "none",
1772
- borderRadius: "6px",
1870
+ borderRadius: RADIUS.sm,
1773
1871
  cursor: "pointer",
1774
1872
  textAlign: "left"
1775
1873
  },
1776
1874
  itemDisabled: {
1777
- color: "#9ca3af",
1875
+ color: COLOR.neutral400,
1778
1876
  cursor: "not-allowed"
1779
1877
  }
1780
1878
  };
@@ -1806,7 +1904,7 @@ function AlertIcon({ size = 14, color = "currentColor" }) {
1806
1904
  }
1807
1905
  );
1808
1906
  }
1809
- function Spinner({ size = 16, color = "#6b7280", thickness = 2 }) {
1907
+ function Spinner({ size = 16, color = COLOR.neutral500, thickness = 2 }) {
1810
1908
  return /* @__PURE__ */ jsx(
1811
1909
  "span",
1812
1910
  {
@@ -2044,10 +2142,10 @@ var styles5 = {
2044
2142
  wrapper: {
2045
2143
  display: "flex",
2046
2144
  alignItems: "flex-end",
2047
- gap: "4px",
2048
- marginBottom: "8px",
2049
- paddingLeft: "16px",
2050
- paddingRight: "16px"
2145
+ gap: SPACE.S1,
2146
+ marginBottom: SPACE.S2,
2147
+ paddingLeft: SPACE.S4,
2148
+ paddingRight: SPACE.S4
2051
2149
  },
2052
2150
  bubbleWrapper: {
2053
2151
  position: "relative",
@@ -2058,64 +2156,64 @@ var styles5 = {
2058
2156
  alignSelf: "flex-end"
2059
2157
  },
2060
2158
  bubble: {
2061
- padding: "10px 14px",
2062
- borderRadius: "12px",
2159
+ padding: `${SPACE.S3} ${SPACE.S4}`,
2160
+ borderRadius: RADIUS.lg,
2063
2161
  wordBreak: "break-word"
2064
2162
  },
2065
2163
  ownBubble: {
2066
- backgroundColor: "#2563eb",
2067
- color: "#ffffff",
2068
- borderBottomRightRadius: "4px"
2164
+ backgroundColor: COLOR.primary,
2165
+ color: COLOR.white,
2166
+ borderBottomRightRadius: RADIUS.sm
2069
2167
  },
2070
2168
  otherBubble: {
2071
- backgroundColor: "#f3f4f6",
2072
- color: "#111827",
2073
- borderBottomLeftRadius: "4px"
2169
+ backgroundColor: COLOR.neutral100,
2170
+ color: COLOR.neutral900,
2171
+ borderBottomLeftRadius: RADIUS.sm
2074
2172
  },
2075
2173
  pinnedBadge: {
2076
2174
  display: "inline-flex",
2077
2175
  alignItems: "center",
2078
- gap: "4px",
2079
- fontSize: "12px",
2080
- fontWeight: 600,
2081
- marginBottom: "4px",
2082
- color: "#6b7280"
2176
+ gap: SPACE.S1,
2177
+ fontSize: FONT_SIZE.xs,
2178
+ fontWeight: FONT_WEIGHT.semibold,
2179
+ marginBottom: SPACE.S1,
2180
+ color: COLOR.neutral500
2083
2181
  },
2084
2182
  senderRow: {
2085
2183
  display: "flex",
2086
2184
  alignItems: "center",
2087
- gap: "6px",
2088
- marginBottom: "4px"
2185
+ gap: SPACE.S2,
2186
+ marginBottom: SPACE.S1
2089
2187
  },
2090
2188
  senderName: {
2091
- fontSize: "13px",
2092
- fontWeight: 600,
2093
- color: "#374151"
2189
+ fontSize: FONT_SIZE.sm,
2190
+ fontWeight: FONT_WEIGHT.semibold,
2191
+ color: COLOR.neutral700
2094
2192
  },
2095
2193
  roleBadge: {
2096
- fontSize: "11px",
2097
- fontWeight: 600,
2098
- padding: "2px 8px",
2099
- borderRadius: "4px"
2194
+ fontSize: FONT_SIZE.xs,
2195
+ fontWeight: FONT_WEIGHT.semibold,
2196
+ padding: `2px ${SPACE.S2}`,
2197
+ borderRadius: RADIUS.sm
2100
2198
  },
2101
2199
  textBody: {
2102
2200
  margin: 0,
2103
- fontSize: "15px",
2104
- lineHeight: "1.45"
2201
+ fontSize: FONT_SIZE.md,
2202
+ lineHeight: LINE_HEIGHT.normal
2105
2203
  },
2106
2204
  timestamp: {
2107
- fontSize: "12px",
2205
+ fontSize: FONT_SIZE.xs,
2108
2206
  color: "inherit",
2109
2207
  opacity: 0.8,
2110
- marginTop: "4px",
2208
+ marginTop: SPACE.S1,
2111
2209
  textAlign: "right"
2112
2210
  },
2113
2211
  statusRow: {
2114
2212
  display: "flex",
2115
2213
  alignItems: "center",
2116
- gap: "6px",
2117
- marginTop: "4px",
2118
- fontSize: "12px",
2214
+ gap: SPACE.S2,
2215
+ marginTop: SPACE.S1,
2216
+ fontSize: FONT_SIZE.xs,
2119
2217
  justifyContent: "flex-end",
2120
2218
  color: "rgba(255, 255, 255, 0.9)"
2121
2219
  },
@@ -2125,48 +2223,48 @@ var styles5 = {
2125
2223
  retryButton: {
2126
2224
  background: "transparent",
2127
2225
  border: "none",
2128
- color: "#ffffff",
2129
- fontWeight: 600,
2130
- fontSize: "12px",
2226
+ color: COLOR.white,
2227
+ fontWeight: FONT_WEIGHT.semibold,
2228
+ fontSize: FONT_SIZE.xs,
2131
2229
  textDecoration: "underline",
2132
2230
  cursor: "pointer",
2133
- padding: "0 2px"
2231
+ padding: `0 ${SPACE.S1}`
2134
2232
  },
2135
2233
  audioContainer: {
2136
2234
  display: "flex",
2137
2235
  alignItems: "center",
2138
- gap: "8px"
2236
+ gap: SPACE.S2
2139
2237
  },
2140
2238
  audioPlayer: {
2141
2239
  height: "32px",
2142
2240
  maxWidth: "220px"
2143
2241
  },
2144
2242
  audioDuration: {
2145
- fontSize: "12px",
2243
+ fontSize: FONT_SIZE.xs,
2146
2244
  opacity: 0.7,
2147
2245
  whiteSpace: "nowrap"
2148
2246
  },
2149
2247
  imagePreview: {
2150
2248
  maxWidth: "240px",
2151
2249
  maxHeight: "180px",
2152
- borderRadius: "8px",
2250
+ borderRadius: RADIUS.md,
2153
2251
  objectFit: "cover",
2154
2252
  cursor: "pointer"
2155
2253
  },
2156
2254
  fileLink: {
2157
2255
  display: "flex",
2158
2256
  alignItems: "center",
2159
- gap: "6px",
2257
+ gap: SPACE.S2,
2160
2258
  textDecoration: "none",
2161
2259
  color: "inherit",
2162
- padding: "6px 0"
2260
+ padding: `${SPACE.S1} 0`
2163
2261
  },
2164
2262
  fileName: {
2165
- fontSize: "13px",
2263
+ fontSize: FONT_SIZE.sm,
2166
2264
  textDecoration: "underline"
2167
2265
  },
2168
2266
  deepLink: {
2169
- color: "#3b82f6",
2267
+ color: COLOR.primary,
2170
2268
  textDecoration: "underline",
2171
2269
  cursor: "pointer"
2172
2270
  },
@@ -2174,34 +2272,34 @@ var styles5 = {
2174
2272
  display: "flex",
2175
2273
  flexDirection: "column",
2176
2274
  gap: "2px",
2177
- padding: "8px",
2178
- backgroundColor: "#eff6ff",
2179
- borderRadius: "8px",
2180
- border: "1px solid #bfdbfe",
2275
+ padding: SPACE.S2,
2276
+ backgroundColor: COLOR.primaryBg,
2277
+ borderRadius: RADIUS.md,
2278
+ border: `1px solid ${COLOR.primaryBg}`,
2181
2279
  cursor: "pointer"
2182
2280
  },
2183
2281
  deepLinkLabel: {
2184
- fontSize: "13px",
2185
- fontWeight: 500,
2186
- color: "#1d4ed8"
2282
+ fontSize: FONT_SIZE.sm,
2283
+ fontWeight: FONT_WEIGHT.medium,
2284
+ color: COLOR.primaryFg
2187
2285
  },
2188
2286
  deepLinkPath: {
2189
- fontSize: "11px",
2190
- color: "#6b7280",
2287
+ fontSize: FONT_SIZE.xs,
2288
+ color: COLOR.neutral500,
2191
2289
  fontFamily: "monospace"
2192
2290
  },
2193
2291
  systemMessage: {
2194
2292
  display: "flex",
2195
2293
  justifyContent: "center",
2196
2294
  alignItems: "center",
2197
- gap: "8px",
2198
- padding: "6px 16px",
2199
- fontSize: "13px",
2200
- color: "#6b7280"
2295
+ gap: SPACE.S2,
2296
+ padding: `${SPACE.S1} ${SPACE.S4}`,
2297
+ fontSize: FONT_SIZE.sm,
2298
+ color: COLOR.neutral500
2201
2299
  },
2202
2300
  systemTime: {
2203
- fontSize: "12px",
2204
- color: "#9ca3af"
2301
+ fontSize: FONT_SIZE.xs,
2302
+ color: COLOR.neutral400
2205
2303
  }
2206
2304
  };
2207
2305
  function ChatIllustration({ size = 96 }) {
@@ -2456,34 +2554,34 @@ var styles6 = {
2456
2554
  container: {
2457
2555
  flex: 1,
2458
2556
  overflowY: "auto",
2459
- paddingTop: "12px",
2460
- paddingBottom: "8px"
2557
+ paddingTop: SPACE.S3,
2558
+ paddingBottom: SPACE.S2
2461
2559
  },
2462
2560
  loadingMore: {
2463
2561
  display: "flex",
2464
2562
  alignItems: "center",
2465
2563
  justifyContent: "center",
2466
- gap: "8px",
2467
- padding: "12px",
2468
- fontSize: "14px",
2469
- color: "#6b7280"
2564
+ gap: SPACE.S2,
2565
+ padding: SPACE.S3,
2566
+ fontSize: FONT_SIZE.sm,
2567
+ color: COLOR.neutral500
2470
2568
  },
2471
2569
  firstLoad: {
2472
2570
  display: "flex",
2473
2571
  alignItems: "center",
2474
2572
  justifyContent: "center",
2475
- padding: "48px 16px"
2573
+ padding: `${SPACE.S12} ${SPACE.S4}`
2476
2574
  },
2477
2575
  loadMoreButton: {
2478
2576
  display: "block",
2479
- margin: "0 auto 12px",
2577
+ margin: `0 auto ${SPACE.S3}`,
2480
2578
  minHeight: "36px",
2481
- padding: "8px 18px",
2482
- fontSize: "13px",
2483
- color: "#374151",
2579
+ padding: `${SPACE.S2} ${SPACE.S5}`,
2580
+ fontSize: FONT_SIZE.sm,
2581
+ color: COLOR.neutral700,
2484
2582
  backgroundColor: "transparent",
2485
- border: "1px solid #d1d5db",
2486
- borderRadius: "18px",
2583
+ border: `1px solid ${COLOR.neutral300}`,
2584
+ borderRadius: RADIUS.pill,
2487
2585
  cursor: "pointer"
2488
2586
  },
2489
2587
  empty: {
@@ -2491,47 +2589,47 @@ var styles6 = {
2491
2589
  flexDirection: "column",
2492
2590
  alignItems: "center",
2493
2591
  justifyContent: "center",
2494
- padding: "48px 16px",
2495
- color: "#6b7280"
2592
+ padding: `${SPACE.S12} ${SPACE.S4}`,
2593
+ color: COLOR.neutral500
2496
2594
  },
2497
2595
  emptyTitle: {
2498
- fontSize: "16px",
2499
- fontWeight: 600,
2500
- color: "#374151",
2501
- margin: "14px 0 4px"
2596
+ fontSize: FONT_SIZE.lg,
2597
+ fontWeight: FONT_WEIGHT.semibold,
2598
+ color: COLOR.neutral700,
2599
+ margin: `${SPACE.S3} 0 ${SPACE.S1}`
2502
2600
  },
2503
2601
  emptySubtitle: {
2504
- fontSize: "14px",
2602
+ fontSize: FONT_SIZE.sm,
2505
2603
  margin: 0,
2506
2604
  maxWidth: "280px",
2507
- lineHeight: 1.45,
2605
+ lineHeight: LINE_HEIGHT.normal,
2508
2606
  textAlign: "center"
2509
2607
  },
2510
2608
  typingIndicator: {
2511
- padding: "4px 16px 8px",
2512
- fontSize: "13px",
2513
- color: "#6b7280",
2609
+ padding: `${SPACE.S1} ${SPACE.S4} ${SPACE.S2}`,
2610
+ fontSize: FONT_SIZE.sm,
2611
+ color: COLOR.neutral500,
2514
2612
  fontStyle: "italic"
2515
2613
  },
2516
2614
  dayDivider: {
2517
2615
  display: "flex",
2518
2616
  justifyContent: "center",
2519
- margin: "12px 0 8px",
2617
+ margin: `${SPACE.S3} 0 ${SPACE.S2}`,
2520
2618
  position: "sticky",
2521
- top: "4px",
2522
- zIndex: 1,
2619
+ top: SPACE.S1,
2620
+ zIndex: Z_INDEX.sticky,
2523
2621
  pointerEvents: "none"
2524
2622
  },
2525
2623
  dayDividerPill: {
2526
2624
  display: "inline-block",
2527
- padding: "5px 14px",
2528
- fontSize: "13px",
2529
- fontWeight: 500,
2530
- color: "#334155",
2531
- backgroundColor: "#e2e8f0",
2532
- borderRadius: "12px",
2625
+ padding: `${SPACE.S1} ${SPACE.S3}`,
2626
+ fontSize: FONT_SIZE.sm,
2627
+ fontWeight: FONT_WEIGHT.medium,
2628
+ color: COLOR.slate700,
2629
+ backgroundColor: COLOR.slate200,
2630
+ borderRadius: RADIUS.lg,
2533
2631
  letterSpacing: "0.2px",
2534
- boxShadow: "0 1px 2px rgba(0, 0, 0, 0.04)"
2632
+ boxShadow: SHADOW.subtle
2535
2633
  },
2536
2634
  bubbleSlot: {
2537
2635
  animation: "natoe-colab-message-in 180ms ease-out"
@@ -2574,14 +2672,14 @@ var styles7 = {
2574
2672
  container: {
2575
2673
  display: "flex",
2576
2674
  alignItems: "stretch",
2577
- gap: "8px",
2578
- padding: "8px 12px",
2579
- backgroundColor: "#f9fafb",
2580
- borderTop: "1px solid #e5e7eb"
2675
+ gap: SPACE.S2,
2676
+ padding: `${SPACE.S2} ${SPACE.S3}`,
2677
+ backgroundColor: COLOR.neutral50,
2678
+ borderTop: `1px solid ${COLOR.neutral200}`
2581
2679
  },
2582
2680
  bar: {
2583
2681
  width: "3px",
2584
- backgroundColor: "#2563eb",
2682
+ backgroundColor: COLOR.primary,
2585
2683
  borderRadius: "2px",
2586
2684
  flexShrink: 0
2587
2685
  },
@@ -2595,20 +2693,20 @@ var styles7 = {
2595
2693
  senderLine: {
2596
2694
  display: "flex",
2597
2695
  alignItems: "center",
2598
- gap: "4px"
2696
+ gap: SPACE.S1
2599
2697
  },
2600
2698
  senderIcon: {
2601
- fontSize: "11px",
2602
- color: "#2563eb"
2699
+ fontSize: FONT_SIZE.xs,
2700
+ color: COLOR.primary
2603
2701
  },
2604
2702
  senderName: {
2605
- fontSize: "12px",
2606
- fontWeight: 600,
2607
- color: "#2563eb"
2703
+ fontSize: FONT_SIZE.xs,
2704
+ fontWeight: FONT_WEIGHT.semibold,
2705
+ color: COLOR.primary
2608
2706
  },
2609
2707
  preview: {
2610
- fontSize: "12px",
2611
- color: "#6b7280",
2708
+ fontSize: FONT_SIZE.xs,
2709
+ color: COLOR.neutral500,
2612
2710
  overflow: "hidden",
2613
2711
  textOverflow: "ellipsis",
2614
2712
  whiteSpace: "nowrap"
@@ -2620,12 +2718,12 @@ var styles7 = {
2620
2718
  display: "flex",
2621
2719
  alignItems: "center",
2622
2720
  justifyContent: "center",
2623
- color: "#6b7280",
2721
+ color: COLOR.neutral500,
2624
2722
  backgroundColor: "transparent",
2625
2723
  border: "none",
2626
- borderRadius: "4px",
2724
+ borderRadius: RADIUS.sm,
2627
2725
  cursor: "pointer",
2628
- fontSize: "12px",
2726
+ fontSize: FONT_SIZE.xs,
2629
2727
  flexShrink: 0
2630
2728
  }
2631
2729
  };
@@ -2840,7 +2938,7 @@ function MessageInput({
2840
2938
  opacity: text.trim() ? 1 : 0.4
2841
2939
  },
2842
2940
  type: "button",
2843
- children: /* @__PURE__ */ jsx(SendIcon, { size: 20, color: "#ffffff" })
2941
+ children: /* @__PURE__ */ jsx(SendIcon, { size: 20, color: COLOR.white })
2844
2942
  }
2845
2943
  )
2846
2944
  ] })
@@ -2848,26 +2946,26 @@ function MessageInput({
2848
2946
  }
2849
2947
  var styles8 = {
2850
2948
  container: {
2851
- borderTop: "1px solid #e5e7eb",
2852
- backgroundColor: "#ffffff"
2949
+ borderTop: `1px solid ${COLOR.neutral200}`,
2950
+ backgroundColor: COLOR.white
2853
2951
  },
2854
2952
  uploadBanner: {
2855
2953
  display: "flex",
2856
2954
  alignItems: "center",
2857
- gap: "8px",
2858
- padding: "6px 14px",
2859
- fontSize: "12px",
2860
- color: "#6b7280",
2861
- backgroundColor: "#f9fafb",
2862
- borderBottom: "1px solid #e5e7eb"
2955
+ gap: SPACE.S2,
2956
+ padding: `${SPACE.S1} ${SPACE.S4}`,
2957
+ fontSize: FONT_SIZE.xs,
2958
+ color: COLOR.neutral500,
2959
+ backgroundColor: COLOR.neutral50,
2960
+ borderBottom: `1px solid ${COLOR.neutral200}`
2863
2961
  },
2864
2962
  uploadSpinner: {
2865
2963
  display: "inline-block",
2866
2964
  width: "12px",
2867
2965
  height: "12px",
2868
- border: "2px solid #d1d5db",
2869
- borderTopColor: "#7c3aed",
2870
- borderRadius: "50%",
2966
+ border: `2px solid ${COLOR.neutral300}`,
2967
+ borderTopColor: COLOR.primary,
2968
+ borderRadius: RADIUS.full,
2871
2969
  animation: "natoe-colab-spin 0.7s linear infinite",
2872
2970
  flexShrink: 0
2873
2971
  },
@@ -2875,12 +2973,12 @@ var styles8 = {
2875
2973
  display: "flex",
2876
2974
  alignItems: "center",
2877
2975
  justifyContent: "space-between",
2878
- gap: "8px",
2879
- padding: "8px 12px 8px 16px",
2880
- fontSize: "13px",
2881
- color: "#b91c1c",
2882
- backgroundColor: "#fef2f2",
2883
- borderTop: "1px solid #fecaca"
2976
+ gap: SPACE.S2,
2977
+ padding: `${SPACE.S2} ${SPACE.S3} ${SPACE.S2} ${SPACE.S4}`,
2978
+ fontSize: FONT_SIZE.sm,
2979
+ color: COLOR.dangerFg,
2980
+ backgroundColor: COLOR.dangerBg,
2981
+ borderTop: `1px solid ${COLOR.dangerBorder}`
2884
2982
  },
2885
2983
  errorText: {
2886
2984
  flex: 1,
@@ -2894,52 +2992,52 @@ var styles8 = {
2894
2992
  justifyContent: "center",
2895
2993
  backgroundColor: "transparent",
2896
2994
  border: "none",
2897
- color: "#b91c1c",
2898
- borderRadius: "4px",
2995
+ color: COLOR.dangerFg,
2996
+ borderRadius: RADIUS.sm,
2899
2997
  cursor: "pointer",
2900
2998
  flexShrink: 0
2901
2999
  },
2902
3000
  inputBar: {
2903
3001
  display: "flex",
2904
3002
  alignItems: "flex-end",
2905
- gap: "6px",
2906
- padding: "10px 12px"
3003
+ gap: SPACE.S2,
3004
+ padding: `${SPACE.S3} ${SPACE.S3}`
2907
3005
  },
2908
3006
  iconButton: {
2909
- width: "44px",
2910
- height: "44px",
3007
+ width: SIZE.controlPrimary,
3008
+ height: SIZE.controlPrimary,
2911
3009
  display: "flex",
2912
3010
  alignItems: "center",
2913
3011
  justifyContent: "center",
2914
3012
  backgroundColor: "transparent",
2915
3013
  border: "none",
2916
- borderRadius: "50%",
3014
+ borderRadius: RADIUS.full,
2917
3015
  cursor: "pointer",
2918
3016
  flexShrink: 0
2919
3017
  },
2920
3018
  textarea: {
2921
3019
  flex: 1,
2922
- padding: "10px 14px",
2923
- fontSize: "15px",
2924
- lineHeight: "1.45",
2925
- border: "1px solid #d1d5db",
2926
- borderRadius: "22px",
3020
+ padding: `${SPACE.S3} ${SPACE.S4}`,
3021
+ fontSize: FONT_SIZE.md,
3022
+ lineHeight: LINE_HEIGHT.normal,
3023
+ border: `1px solid ${COLOR.neutral300}`,
3024
+ borderRadius: RADIUS.pill,
2927
3025
  resize: "none",
2928
3026
  outline: "none",
2929
3027
  fontFamily: "inherit",
2930
3028
  maxHeight: "120px",
2931
- minHeight: "44px"
3029
+ minHeight: SIZE.controlPrimary
2932
3030
  },
2933
3031
  sendButton: {
2934
- width: "44px",
2935
- height: "44px",
3032
+ width: SIZE.controlPrimary,
3033
+ height: SIZE.controlPrimary,
2936
3034
  display: "flex",
2937
3035
  alignItems: "center",
2938
3036
  justifyContent: "center",
2939
- backgroundColor: "#2563eb",
2940
- color: "#ffffff",
3037
+ backgroundColor: COLOR.primary,
3038
+ color: COLOR.white,
2941
3039
  border: "none",
2942
- borderRadius: "50%",
3040
+ borderRadius: RADIUS.full,
2943
3041
  cursor: "pointer",
2944
3042
  flexShrink: 0
2945
3043
  }};
@@ -2958,7 +3056,7 @@ function ParticipantsList({
2958
3056
  {
2959
3057
  style: {
2960
3058
  ...styles9.statusDot,
2961
- backgroundColor: participant.isOnline ? "#22c55e" : "#d1d5db"
3059
+ backgroundColor: participant.isOnline ? COLOR.success : COLOR.neutral300
2962
3060
  }
2963
3061
  }
2964
3062
  )
@@ -3014,9 +3112,9 @@ var styles9 = {
3014
3112
  item: {
3015
3113
  display: "flex",
3016
3114
  alignItems: "center",
3017
- gap: "10px",
3018
- padding: "8px 0",
3019
- borderBottom: "1px solid #f9fafb"
3115
+ gap: SPACE.S3,
3116
+ padding: `${SPACE.S2} 0`,
3117
+ borderBottom: `1px solid ${COLOR.neutral50}`
3020
3118
  },
3021
3119
  avatar: {
3022
3120
  position: "relative",
@@ -3027,55 +3125,55 @@ var styles9 = {
3027
3125
  avatarImg: {
3028
3126
  width: "32px",
3029
3127
  height: "32px",
3030
- borderRadius: "50%",
3128
+ borderRadius: RADIUS.full,
3031
3129
  objectFit: "cover"
3032
3130
  },
3033
3131
  avatarFallback: {
3034
3132
  width: "32px",
3035
3133
  height: "32px",
3036
- borderRadius: "50%",
3037
- backgroundColor: "#e5e7eb",
3134
+ borderRadius: RADIUS.full,
3135
+ backgroundColor: COLOR.neutral200,
3038
3136
  display: "flex",
3039
3137
  alignItems: "center",
3040
3138
  justifyContent: "center",
3041
- fontSize: "13px",
3042
- fontWeight: 600,
3043
- color: "#6b7280"
3139
+ fontSize: FONT_SIZE.sm,
3140
+ fontWeight: FONT_WEIGHT.semibold,
3141
+ color: COLOR.neutral500
3044
3142
  },
3045
3143
  statusDot: {
3046
3144
  position: "absolute",
3047
3145
  bottom: "0",
3048
3146
  right: "0",
3049
- width: "8px",
3050
- height: "8px",
3051
- borderRadius: "50%",
3052
- border: "2px solid #ffffff"
3147
+ width: SPACE.S2,
3148
+ height: SPACE.S2,
3149
+ borderRadius: RADIUS.full,
3150
+ border: `2px solid ${COLOR.white}`
3053
3151
  },
3054
3152
  info: {
3055
3153
  display: "flex",
3056
3154
  alignItems: "center",
3057
- gap: "6px",
3155
+ gap: SPACE.S2,
3058
3156
  flex: 1,
3059
3157
  minWidth: 0
3060
3158
  },
3061
3159
  name: {
3062
- fontSize: "13px",
3063
- fontWeight: 500,
3064
- color: "#111827",
3160
+ fontSize: FONT_SIZE.sm,
3161
+ fontWeight: FONT_WEIGHT.medium,
3162
+ color: COLOR.neutral900,
3065
3163
  overflow: "hidden",
3066
3164
  textOverflow: "ellipsis",
3067
3165
  whiteSpace: "nowrap"
3068
3166
  },
3069
3167
  youBadge: {
3070
- fontSize: "11px",
3071
- fontWeight: 400,
3072
- color: "#9ca3af"
3168
+ fontSize: FONT_SIZE.xs,
3169
+ fontWeight: FONT_WEIGHT.regular,
3170
+ color: COLOR.neutral400
3073
3171
  },
3074
3172
  roleBadge: {
3075
- fontSize: "10px",
3076
- fontWeight: 500,
3077
- padding: "1px 6px",
3078
- borderRadius: "4px",
3173
+ fontSize: FONT_SIZE.xs,
3174
+ fontWeight: FONT_WEIGHT.medium,
3175
+ padding: `2px ${SPACE.S2}`,
3176
+ borderRadius: RADIUS.sm,
3079
3177
  whiteSpace: "nowrap"
3080
3178
  },
3081
3179
  removeButton: {
@@ -3086,10 +3184,10 @@ var styles9 = {
3086
3184
  justifyContent: "center",
3087
3185
  backgroundColor: "transparent",
3088
3186
  border: "none",
3089
- borderRadius: "4px",
3187
+ borderRadius: RADIUS.sm,
3090
3188
  cursor: "pointer",
3091
- fontSize: "11px",
3092
- color: "#9ca3af",
3189
+ fontSize: FONT_SIZE.xs,
3190
+ color: COLOR.neutral400,
3093
3191
  flexShrink: 0
3094
3192
  }
3095
3193
  };
@@ -3241,19 +3339,19 @@ var styles10 = {
3241
3339
  display: "flex",
3242
3340
  flexDirection: "column",
3243
3341
  height: "100%",
3244
- backgroundColor: "#ffffff"
3342
+ backgroundColor: COLOR.white
3245
3343
  },
3246
3344
  header: {
3247
3345
  display: "flex",
3248
3346
  justifyContent: "space-between",
3249
3347
  alignItems: "center",
3250
- padding: "12px 16px",
3251
- borderBottom: "1px solid #e5e7eb"
3348
+ padding: `${SPACE.S3} ${SPACE.S4}`,
3349
+ borderBottom: `1px solid ${COLOR.neutral200}`
3252
3350
  },
3253
3351
  title: {
3254
3352
  margin: 0,
3255
- fontSize: "16px",
3256
- fontWeight: 600
3353
+ fontSize: FONT_SIZE.lg,
3354
+ fontWeight: FONT_WEIGHT.semibold
3257
3355
  },
3258
3356
  closeButton: {
3259
3357
  width: "28px",
@@ -3263,139 +3361,139 @@ var styles10 = {
3263
3361
  justifyContent: "center",
3264
3362
  backgroundColor: "transparent",
3265
3363
  border: "none",
3266
- borderRadius: "4px",
3364
+ borderRadius: RADIUS.sm,
3267
3365
  cursor: "pointer",
3268
- fontSize: "14px",
3269
- color: "#6b7280"
3366
+ fontSize: FONT_SIZE.sm,
3367
+ color: COLOR.neutral500
3270
3368
  },
3271
3369
  error: {
3272
- padding: "8px 16px",
3273
- fontSize: "13px",
3274
- color: "#dc2626",
3275
- backgroundColor: "#fef2f2"
3370
+ padding: `${SPACE.S2} ${SPACE.S4}`,
3371
+ fontSize: FONT_SIZE.sm,
3372
+ color: COLOR.danger,
3373
+ backgroundColor: COLOR.dangerBg
3276
3374
  },
3277
3375
  section: {
3278
- padding: "16px",
3279
- borderBottom: "1px solid #f3f4f6"
3376
+ padding: SPACE.S4,
3377
+ borderBottom: `1px solid ${COLOR.neutral100}`
3280
3378
  },
3281
3379
  sectionHeader: {
3282
3380
  display: "flex",
3283
3381
  justifyContent: "space-between",
3284
3382
  alignItems: "center",
3285
- marginBottom: "8px"
3383
+ marginBottom: SPACE.S2
3286
3384
  },
3287
3385
  label: {
3288
- fontSize: "12px",
3289
- fontWeight: 600,
3290
- color: "#6b7280",
3386
+ fontSize: FONT_SIZE.xs,
3387
+ fontWeight: FONT_WEIGHT.semibold,
3388
+ color: COLOR.neutral500,
3291
3389
  textTransform: "uppercase",
3292
3390
  letterSpacing: "0.05em"
3293
3391
  },
3294
3392
  channelName: {
3295
- fontSize: "14px",
3296
- color: "#111827"
3393
+ fontSize: FONT_SIZE.sm,
3394
+ color: COLOR.neutral900
3297
3395
  },
3298
3396
  editRow: {
3299
3397
  display: "flex",
3300
3398
  alignItems: "center",
3301
- gap: "8px",
3302
- marginTop: "6px"
3399
+ gap: SPACE.S2,
3400
+ marginTop: SPACE.S2
3303
3401
  },
3304
3402
  input: {
3305
- padding: "6px 10px",
3306
- fontSize: "13px",
3307
- border: "1px solid #d1d5db",
3308
- borderRadius: "6px",
3403
+ padding: `${SPACE.S2} ${SPACE.S3}`,
3404
+ fontSize: FONT_SIZE.sm,
3405
+ border: `1px solid ${COLOR.neutral300}`,
3406
+ borderRadius: RADIUS.md,
3309
3407
  outline: "none",
3310
3408
  width: "100%"
3311
3409
  },
3312
3410
  editButton: {
3313
- padding: "4px 10px",
3314
- fontSize: "12px",
3315
- color: "#2563eb",
3411
+ padding: `${SPACE.S1} ${SPACE.S3}`,
3412
+ fontSize: FONT_SIZE.xs,
3413
+ color: COLOR.primary,
3316
3414
  backgroundColor: "transparent",
3317
3415
  border: "none",
3318
3416
  cursor: "pointer"
3319
3417
  },
3320
3418
  saveButton: {
3321
- padding: "6px 12px",
3322
- fontSize: "12px",
3323
- fontWeight: 500,
3324
- color: "#ffffff",
3325
- backgroundColor: "#2563eb",
3419
+ padding: `${SPACE.S2} ${SPACE.S3}`,
3420
+ fontSize: FONT_SIZE.xs,
3421
+ fontWeight: FONT_WEIGHT.medium,
3422
+ color: COLOR.white,
3423
+ backgroundColor: COLOR.primary,
3326
3424
  border: "none",
3327
- borderRadius: "6px",
3425
+ borderRadius: RADIUS.md,
3328
3426
  cursor: "pointer",
3329
3427
  whiteSpace: "nowrap"
3330
3428
  },
3331
3429
  cancelButton: {
3332
- padding: "6px 12px",
3333
- fontSize: "12px",
3334
- color: "#6b7280",
3430
+ padding: `${SPACE.S2} ${SPACE.S3}`,
3431
+ fontSize: FONT_SIZE.xs,
3432
+ color: COLOR.neutral500,
3335
3433
  backgroundColor: "transparent",
3336
- border: "1px solid #d1d5db",
3337
- borderRadius: "6px",
3434
+ border: `1px solid ${COLOR.neutral300}`,
3435
+ borderRadius: RADIUS.md,
3338
3436
  cursor: "pointer",
3339
3437
  whiteSpace: "nowrap"
3340
3438
  },
3341
3439
  addButton: {
3342
- padding: "4px 10px",
3343
- fontSize: "12px",
3344
- fontWeight: 500,
3345
- color: "#2563eb",
3346
- backgroundColor: "#eff6ff",
3440
+ padding: `${SPACE.S1} ${SPACE.S3}`,
3441
+ fontSize: FONT_SIZE.xs,
3442
+ fontWeight: FONT_WEIGHT.medium,
3443
+ color: COLOR.primary,
3444
+ backgroundColor: COLOR.primaryBg,
3347
3445
  border: "none",
3348
- borderRadius: "4px",
3446
+ borderRadius: RADIUS.sm,
3349
3447
  cursor: "pointer"
3350
3448
  },
3351
3449
  inviteForm: {
3352
3450
  display: "flex",
3353
3451
  flexDirection: "column",
3354
- gap: "8px",
3355
- padding: "12px",
3356
- marginBottom: "12px",
3357
- backgroundColor: "#f9fafb",
3358
- borderRadius: "8px"
3452
+ gap: SPACE.S2,
3453
+ padding: SPACE.S3,
3454
+ marginBottom: SPACE.S3,
3455
+ backgroundColor: COLOR.neutral50,
3456
+ borderRadius: RADIUS.md
3359
3457
  },
3360
3458
  inviteActions: {
3361
3459
  display: "flex",
3362
- gap: "8px"
3460
+ gap: SPACE.S2
3363
3461
  },
3364
3462
  dangerZone: {
3365
- padding: "16px",
3463
+ padding: SPACE.S4,
3366
3464
  marginTop: "auto",
3367
3465
  display: "flex",
3368
3466
  flexDirection: "column",
3369
- gap: "8px"
3467
+ gap: SPACE.S2
3370
3468
  },
3371
3469
  leaveButton: {
3372
- padding: "8px",
3373
- fontSize: "13px",
3374
- fontWeight: 500,
3375
- color: "#b45309",
3470
+ padding: SPACE.S2,
3471
+ fontSize: FONT_SIZE.sm,
3472
+ fontWeight: FONT_WEIGHT.medium,
3473
+ color: COLOR.warning,
3376
3474
  backgroundColor: "#fffbeb",
3377
3475
  border: "1px solid #fde68a",
3378
- borderRadius: "6px",
3476
+ borderRadius: RADIUS.md,
3379
3477
  cursor: "pointer"
3380
3478
  },
3381
3479
  deleteButton: {
3382
- padding: "8px",
3383
- fontSize: "13px",
3384
- fontWeight: 500,
3385
- color: "#dc2626",
3386
- backgroundColor: "#fef2f2",
3387
- border: "1px solid #fecaca",
3388
- borderRadius: "6px",
3480
+ padding: SPACE.S2,
3481
+ fontSize: FONT_SIZE.sm,
3482
+ fontWeight: FONT_WEIGHT.medium,
3483
+ color: COLOR.danger,
3484
+ backgroundColor: COLOR.dangerBg,
3485
+ border: `1px solid ${COLOR.dangerBorder}`,
3486
+ borderRadius: RADIUS.md,
3389
3487
  cursor: "pointer"
3390
3488
  },
3391
3489
  confirmDeleteButton: {
3392
- padding: "8px",
3393
- fontSize: "13px",
3394
- fontWeight: 600,
3395
- color: "#ffffff",
3396
- backgroundColor: "#dc2626",
3490
+ padding: SPACE.S2,
3491
+ fontSize: FONT_SIZE.sm,
3492
+ fontWeight: FONT_WEIGHT.semibold,
3493
+ color: COLOR.white,
3494
+ backgroundColor: COLOR.danger,
3397
3495
  border: "none",
3398
- borderRadius: "6px",
3496
+ borderRadius: RADIUS.md,
3399
3497
  cursor: "pointer"
3400
3498
  }
3401
3499
  };
@@ -3418,13 +3516,13 @@ function PinnedMessagesBar({
3418
3516
  };
3419
3517
  return /* @__PURE__ */ jsxs("div", { className, style: styles11.container, children: [
3420
3518
  /* @__PURE__ */ jsxs("div", { style: styles11.indicator, children: [
3421
- /* @__PURE__ */ jsx("span", { style: styles11.pinIcon, children: "\u{1F4CC}" }),
3519
+ /* @__PURE__ */ jsx(PinIcon, { size: 14, color: COLOR.primary }),
3422
3520
  pinnedMessages.length > 1 && /* @__PURE__ */ jsx("div", { style: styles11.segments, children: pinnedMessages.map((_, i) => /* @__PURE__ */ jsx(
3423
3521
  "span",
3424
3522
  {
3425
3523
  style: {
3426
3524
  ...styles11.segment,
3427
- backgroundColor: i === safeIndex ? "#2563eb" : "#d1d5db"
3525
+ backgroundColor: i === safeIndex ? COLOR.primary : COLOR.neutral300
3428
3526
  }
3429
3527
  },
3430
3528
  i
@@ -3488,20 +3586,17 @@ var styles11 = {
3488
3586
  container: {
3489
3587
  display: "flex",
3490
3588
  alignItems: "center",
3491
- gap: "8px",
3492
- padding: "6px 12px",
3493
- backgroundColor: "#eff6ff",
3494
- borderBottom: "1px solid #dbeafe"
3589
+ gap: SPACE.S2,
3590
+ padding: `${SPACE.S1} ${SPACE.S3}`,
3591
+ backgroundColor: COLOR.primaryBg,
3592
+ borderBottom: `1px solid ${COLOR.primaryBg}`
3495
3593
  },
3496
3594
  indicator: {
3497
3595
  display: "flex",
3498
3596
  alignItems: "center",
3499
- gap: "4px",
3597
+ gap: SPACE.S1,
3500
3598
  flexShrink: 0
3501
3599
  },
3502
- pinIcon: {
3503
- fontSize: "13px"
3504
- },
3505
3600
  segments: {
3506
3601
  display: "flex",
3507
3602
  flexDirection: "column",
@@ -3526,19 +3621,19 @@ var styles11 = {
3526
3621
  overflow: "hidden"
3527
3622
  },
3528
3623
  label: {
3529
- fontSize: "11px",
3530
- fontWeight: 600,
3531
- color: "#2563eb"
3624
+ fontSize: FONT_SIZE.xs,
3625
+ fontWeight: FONT_WEIGHT.semibold,
3626
+ color: COLOR.primary
3532
3627
  },
3533
3628
  preview: {
3534
- fontSize: "12px",
3535
- color: "#374151",
3629
+ fontSize: FONT_SIZE.xs,
3630
+ color: COLOR.neutral700,
3536
3631
  overflow: "hidden",
3537
3632
  textOverflow: "ellipsis",
3538
3633
  whiteSpace: "nowrap"
3539
3634
  },
3540
3635
  sender: {
3541
- fontWeight: 600
3636
+ fontWeight: FONT_WEIGHT.semibold
3542
3637
  },
3543
3638
  unpinButton: {
3544
3639
  width: "24px",
@@ -3546,12 +3641,12 @@ var styles11 = {
3546
3641
  display: "flex",
3547
3642
  alignItems: "center",
3548
3643
  justifyContent: "center",
3549
- color: "#6b7280",
3644
+ color: COLOR.neutral500,
3550
3645
  backgroundColor: "transparent",
3551
3646
  border: "none",
3552
- borderRadius: "4px",
3647
+ borderRadius: RADIUS.sm,
3553
3648
  cursor: "pointer",
3554
- fontSize: "11px",
3649
+ fontSize: FONT_SIZE.xs,
3555
3650
  flexShrink: 0
3556
3651
  }
3557
3652
  };
@@ -3586,15 +3681,15 @@ var styles12 = {
3586
3681
  transform: "translateX(-50%)",
3587
3682
  display: "flex",
3588
3683
  alignItems: "center",
3589
- gap: "12px",
3590
- padding: "10px 14px",
3591
- backgroundColor: "#1e293b",
3592
- color: "#ffffff",
3593
- borderRadius: "8px",
3594
- boxShadow: "0 4px 12px rgba(0, 0, 0, 0.18)",
3595
- fontSize: "14px",
3684
+ gap: SPACE.S3,
3685
+ padding: `${SPACE.S3} ${SPACE.S4}`,
3686
+ backgroundColor: COLOR.slate800,
3687
+ color: COLOR.white,
3688
+ borderRadius: RADIUS.md,
3689
+ boxShadow: SHADOW.toast,
3690
+ fontSize: FONT_SIZE.sm,
3596
3691
  maxWidth: "90%",
3597
- zIndex: 20
3692
+ zIndex: Z_INDEX.toast
3598
3693
  },
3599
3694
  message: {
3600
3695
  whiteSpace: "nowrap",
@@ -3604,11 +3699,11 @@ var styles12 = {
3604
3699
  action: {
3605
3700
  background: "transparent",
3606
3701
  border: "none",
3607
- color: "#93c5fd",
3608
- fontWeight: 600,
3609
- fontSize: "14px",
3702
+ color: COLOR.primaryBg,
3703
+ fontWeight: FONT_WEIGHT.semibold,
3704
+ fontSize: FONT_SIZE.sm,
3610
3705
  cursor: "pointer",
3611
- padding: "4px 6px",
3706
+ padding: `${SPACE.S1} ${SPACE.S2}`,
3612
3707
  textTransform: "uppercase",
3613
3708
  letterSpacing: "0.4px"
3614
3709
  }
@@ -3659,6 +3754,7 @@ function CollabPanel({
3659
3754
  participantIds,
3660
3755
  showSeenBy = true,
3661
3756
  onBack,
3757
+ hidePatientName = false,
3662
3758
  className,
3663
3759
  style
3664
3760
  }) {
@@ -3767,7 +3863,9 @@ function CollabPanel({
3767
3863
  participants,
3768
3864
  onOpenDicom: handleOpenDicom,
3769
3865
  onOpenSettings: () => setShowSettings(true),
3770
- onBack
3866
+ onBack,
3867
+ hideName: hidePatientName,
3868
+ displayName: conversation?.name
3771
3869
  }
3772
3870
  ),
3773
3871
  pinnedMessages.length > 0 && /* @__PURE__ */ jsx(
@@ -3821,10 +3919,10 @@ var panelStyles = {
3821
3919
  display: "flex",
3822
3920
  flexDirection: "column",
3823
3921
  height: "100%",
3824
- backgroundColor: "#ffffff",
3825
- borderRadius: "8px",
3922
+ backgroundColor: COLOR.white,
3923
+ borderRadius: RADIUS.md,
3826
3924
  overflow: "hidden",
3827
- border: "1px solid #e5e7eb",
3925
+ border: `1px solid ${COLOR.neutral200}`,
3828
3926
  fontFamily: FONT_STACK
3829
3927
  },
3830
3928
  loadingState: {
@@ -3832,8 +3930,8 @@ var panelStyles = {
3832
3930
  alignItems: "center",
3833
3931
  justifyContent: "center",
3834
3932
  height: "100%",
3835
- fontSize: "14px",
3836
- color: "#9ca3af"
3933
+ fontSize: FONT_SIZE.sm,
3934
+ color: COLOR.neutral500
3837
3935
  },
3838
3936
  errorState: {
3839
3937
  display: "flex",
@@ -3841,18 +3939,18 @@ var panelStyles = {
3841
3939
  alignItems: "center",
3842
3940
  justifyContent: "center",
3843
3941
  height: "100%",
3844
- padding: "24px",
3942
+ padding: SPACE.S6,
3845
3943
  textAlign: "center"
3846
3944
  },
3847
3945
  errorTitle: {
3848
- fontSize: "15px",
3849
- fontWeight: 500,
3850
- color: "#dc2626",
3851
- margin: "0 0 4px"
3946
+ fontSize: FONT_SIZE.md,
3947
+ fontWeight: FONT_WEIGHT.medium,
3948
+ color: COLOR.danger,
3949
+ margin: `0 0 ${SPACE.S1}`
3852
3950
  },
3853
3951
  errorMessage: {
3854
- fontSize: "13px",
3855
- color: "#6b7280",
3952
+ fontSize: FONT_SIZE.sm,
3953
+ color: COLOR.neutral500,
3856
3954
  margin: 0
3857
3955
  }
3858
3956
  };
@@ -4023,7 +4121,7 @@ function CollabPopup({
4023
4121
  "aria-label": isMinimized ? "Expand chat" : "Minimize chat",
4024
4122
  title: isMinimized ? "Expand" : "Minimize",
4025
4123
  type: "button",
4026
- children: isMinimized ? /* @__PURE__ */ jsx(ExpandIcon, { size: 16, color: "#cbd5e1" }) : /* @__PURE__ */ jsx(MinimizeIcon, { size: 16, color: "#cbd5e1" })
4124
+ children: isMinimized ? /* @__PURE__ */ jsx(ExpandIcon, { size: 16, color: COLOR.slate200 }) : /* @__PURE__ */ jsx(MinimizeIcon, { size: 16, color: COLOR.slate200 })
4027
4125
  }
4028
4126
  ),
4029
4127
  /* @__PURE__ */ jsx(
@@ -4034,12 +4132,12 @@ function CollabPopup({
4034
4132
  "aria-label": "Close chat",
4035
4133
  title: "Close",
4036
4134
  type: "button",
4037
- children: /* @__PURE__ */ jsx(CloseIcon, { size: 16, color: "#cbd5e1" })
4135
+ children: /* @__PURE__ */ jsx(CloseIcon, { size: 16, color: COLOR.slate200 })
4038
4136
  }
4039
4137
  )
4040
4138
  ] })
4041
4139
  ] }),
4042
- !isMinimized && /* @__PURE__ */ jsx("div", { style: styles13.panelWrapper, children: /* @__PURE__ */ jsx(CollabPanel, { orderId, patientData, participantIds }) })
4140
+ !isMinimized && /* @__PURE__ */ jsx("div", { style: styles13.panelWrapper, children: /* @__PURE__ */ jsx(CollabPanel, { orderId, patientData, participantIds, hidePatientName: true }) })
4043
4141
  ]
4044
4142
  }
4045
4143
  );
@@ -4047,14 +4145,14 @@ function CollabPopup({
4047
4145
  var styles13 = {
4048
4146
  container: {
4049
4147
  position: "fixed",
4050
- zIndex: 9999,
4051
- borderRadius: "12px",
4052
- boxShadow: "0 8px 30px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.08)",
4148
+ zIndex: Z_INDEX.dialog,
4149
+ borderRadius: RADIUS.lg,
4150
+ boxShadow: SHADOW.dialog,
4053
4151
  overflow: "hidden",
4054
4152
  display: "flex",
4055
4153
  flexDirection: "column",
4056
- backgroundColor: "#ffffff",
4057
- border: "1px solid #e5e7eb",
4154
+ backgroundColor: COLOR.white,
4155
+ border: `1px solid ${COLOR.neutral200}`,
4058
4156
  transition: "height 0.2s ease",
4059
4157
  fontFamily: FONT_STACK
4060
4158
  },
@@ -4062,37 +4160,37 @@ var styles13 = {
4062
4160
  display: "flex",
4063
4161
  justifyContent: "space-between",
4064
4162
  alignItems: "center",
4065
- padding: "0 8px 0 14px",
4163
+ padding: `0 ${SPACE.S2} 0 ${SPACE.S4}`,
4066
4164
  height: "52px",
4067
- backgroundColor: "#1e293b",
4165
+ backgroundColor: COLOR.slate800,
4068
4166
  cursor: "grab",
4069
4167
  userSelect: "none",
4070
4168
  flexShrink: 0
4071
4169
  },
4072
4170
  titleText: {
4073
- fontSize: "15px",
4074
- fontWeight: 500,
4075
- color: "#ffffff",
4171
+ fontSize: FONT_SIZE.md,
4172
+ fontWeight: FONT_WEIGHT.medium,
4173
+ color: COLOR.white,
4076
4174
  overflow: "hidden",
4077
4175
  textOverflow: "ellipsis",
4078
4176
  whiteSpace: "nowrap"
4079
4177
  },
4080
4178
  titleActions: {
4081
4179
  display: "flex",
4082
- gap: "4px",
4180
+ gap: SPACE.S1,
4083
4181
  flexShrink: 0
4084
4182
  },
4085
4183
  titleButton: {
4086
- width: "40px",
4087
- height: "40px",
4184
+ width: SIZE.control,
4185
+ height: SIZE.control,
4088
4186
  display: "flex",
4089
4187
  alignItems: "center",
4090
4188
  justifyContent: "center",
4091
4189
  backgroundColor: "transparent",
4092
4190
  border: "none",
4093
- borderRadius: "6px",
4191
+ borderRadius: RADIUS.md,
4094
4192
  cursor: "pointer",
4095
- color: "#cbd5e1"
4193
+ color: COLOR.slate200
4096
4194
  },
4097
4195
  panelWrapper: {
4098
4196
  flex: 1,
@@ -4565,55 +4663,55 @@ var styles14 = {
4565
4663
  display: "flex",
4566
4664
  flexDirection: "column",
4567
4665
  width: "100%",
4568
- padding: "6px 8px",
4569
- backgroundColor: "#ffffff",
4570
- border: "1px solid #e5e7eb",
4571
- borderRadius: "8px",
4666
+ padding: `${SPACE.S1} ${SPACE.S2}`,
4667
+ backgroundColor: COLOR.white,
4668
+ border: `1px solid ${COLOR.neutral200}`,
4669
+ borderRadius: RADIUS.md,
4572
4670
  fontFamily: FONT_STACK
4573
4671
  },
4574
4672
  loadingState: {
4575
- padding: "8px",
4576
- fontSize: "12px",
4577
- color: "#9ca3af",
4673
+ padding: SPACE.S2,
4674
+ fontSize: FONT_SIZE.xs,
4675
+ color: COLOR.neutral500,
4578
4676
  textAlign: "center"
4579
4677
  },
4580
4678
  error: {
4581
- padding: "4px 8px",
4582
- marginBottom: "4px",
4583
- fontSize: "11px",
4584
- color: "#dc2626",
4585
- backgroundColor: "#fef2f2",
4586
- borderRadius: "4px"
4679
+ padding: `${SPACE.S1} ${SPACE.S2}`,
4680
+ marginBottom: SPACE.S1,
4681
+ fontSize: FONT_SIZE.xs,
4682
+ color: COLOR.danger,
4683
+ backgroundColor: COLOR.dangerBg,
4684
+ borderRadius: RADIUS.sm
4587
4685
  },
4588
4686
  preview: {
4589
4687
  display: "flex",
4590
4688
  flexDirection: "column",
4591
4689
  gap: "2px",
4592
- marginBottom: "6px",
4593
- paddingBottom: "6px",
4594
- borderBottom: "1px solid #f3f4f6"
4690
+ marginBottom: SPACE.S1,
4691
+ paddingBottom: SPACE.S1,
4692
+ borderBottom: `1px solid ${COLOR.neutral100}`
4595
4693
  },
4596
4694
  messageRow: {
4597
4695
  display: "flex",
4598
4696
  alignItems: "center",
4599
- gap: "6px",
4600
- fontSize: "12px",
4601
- lineHeight: "1.4",
4697
+ gap: SPACE.S2,
4698
+ fontSize: FONT_SIZE.xs,
4699
+ lineHeight: LINE_HEIGHT.normal,
4602
4700
  overflow: "hidden"
4603
4701
  },
4604
4702
  roleDot: {
4605
4703
  flexShrink: 0,
4606
4704
  width: "6px",
4607
4705
  height: "6px",
4608
- borderRadius: "50%"
4706
+ borderRadius: RADIUS.full
4609
4707
  },
4610
4708
  senderName: {
4611
4709
  flexShrink: 0,
4612
- fontWeight: 600,
4613
- color: "#374151"
4710
+ fontWeight: FONT_WEIGHT.semibold,
4711
+ color: COLOR.neutral700
4614
4712
  },
4615
4713
  messageText: {
4616
- color: "#4b5563",
4714
+ color: COLOR.neutral600,
4617
4715
  overflow: "hidden",
4618
4716
  textOverflow: "ellipsis",
4619
4717
  whiteSpace: "nowrap",
@@ -4621,8 +4719,8 @@ var styles14 = {
4621
4719
  flex: 1
4622
4720
  },
4623
4721
  systemRow: {
4624
- fontSize: "11px",
4625
- color: "#9ca3af",
4722
+ fontSize: FONT_SIZE.xs,
4723
+ color: COLOR.neutral400,
4626
4724
  fontStyle: "italic",
4627
4725
  textAlign: "center",
4628
4726
  padding: "2px 0"
@@ -4634,11 +4732,11 @@ var styles14 = {
4634
4732
  audioPlayer: {
4635
4733
  display: "inline-flex",
4636
4734
  alignItems: "center",
4637
- gap: "6px",
4638
- padding: "2px 8px",
4639
- borderRadius: "12px",
4640
- backgroundColor: "#eff6ff",
4641
- border: "1px solid #dbeafe",
4735
+ gap: SPACE.S2,
4736
+ padding: `2px ${SPACE.S2}`,
4737
+ borderRadius: RADIUS.lg,
4738
+ backgroundColor: COLOR.primaryBg,
4739
+ border: `1px solid ${COLOR.primaryBg}`,
4642
4740
  flex: 1,
4643
4741
  minWidth: 0
4644
4742
  },
@@ -4648,11 +4746,11 @@ var styles14 = {
4648
4746
  display: "flex",
4649
4747
  alignItems: "center",
4650
4748
  justifyContent: "center",
4651
- fontSize: "10px",
4652
- color: "#ffffff",
4653
- backgroundColor: "#2563eb",
4749
+ fontSize: FONT_SIZE.xs,
4750
+ color: COLOR.white,
4751
+ backgroundColor: COLOR.primary,
4654
4752
  border: "none",
4655
- borderRadius: "50%",
4753
+ borderRadius: RADIUS.full,
4656
4754
  cursor: "pointer",
4657
4755
  flexShrink: 0
4658
4756
  },
@@ -4660,7 +4758,7 @@ var styles14 = {
4660
4758
  display: "inline-flex",
4661
4759
  alignItems: "center",
4662
4760
  gap: "2px",
4663
- height: "16px",
4761
+ height: SPACE.S4,
4664
4762
  flex: 1,
4665
4763
  minWidth: 0
4666
4764
  },
@@ -4668,27 +4766,27 @@ var styles14 = {
4668
4766
  display: "inline-block",
4669
4767
  width: "2px",
4670
4768
  borderRadius: "1px",
4671
- backgroundColor: "#60a5fa"
4769
+ backgroundColor: COLOR.primary
4672
4770
  },
4673
4771
  audioDuration: {
4674
- fontSize: "11px",
4675
- color: "#2563eb",
4772
+ fontSize: FONT_SIZE.xs,
4773
+ color: COLOR.primary,
4676
4774
  fontVariantNumeric: "tabular-nums",
4677
- fontWeight: 500,
4775
+ fontWeight: FONT_WEIGHT.medium,
4678
4776
  flexShrink: 0
4679
4777
  },
4680
4778
  // ── Input bar ──
4681
4779
  inputBar: {
4682
4780
  display: "flex",
4683
4781
  alignItems: "center",
4684
- gap: "6px"
4782
+ gap: SPACE.S2
4685
4783
  },
4686
4784
  input: {
4687
4785
  flex: 1,
4688
- padding: "6px 10px",
4689
- fontSize: "13px",
4690
- border: "1px solid #e5e7eb",
4691
- borderRadius: "16px",
4786
+ padding: `${SPACE.S2} ${SPACE.S3}`,
4787
+ fontSize: FONT_SIZE.sm,
4788
+ border: `1px solid ${COLOR.neutral200}`,
4789
+ borderRadius: RADIUS.pill,
4692
4790
  outline: "none",
4693
4791
  fontFamily: "inherit",
4694
4792
  minWidth: 0
@@ -4697,12 +4795,12 @@ var styles14 = {
4697
4795
  flexShrink: 0,
4698
4796
  minWidth: "18px",
4699
4797
  height: "18px",
4700
- padding: "0 5px",
4701
- fontSize: "10px",
4702
- fontWeight: 600,
4703
- color: "#ffffff",
4704
- backgroundColor: "#dc2626",
4705
- borderRadius: "10px",
4798
+ padding: `0 ${SPACE.S1}`,
4799
+ fontSize: FONT_SIZE.xs,
4800
+ fontWeight: FONT_WEIGHT.semibold,
4801
+ color: COLOR.white,
4802
+ backgroundColor: COLOR.danger,
4803
+ borderRadius: RADIUS.pill,
4706
4804
  display: "flex",
4707
4805
  alignItems: "center",
4708
4806
  justifyContent: "center"
@@ -4711,8 +4809,8 @@ var styles14 = {
4711
4809
  flexShrink: 0,
4712
4810
  width: "6px",
4713
4811
  height: "6px",
4714
- borderRadius: "50%",
4715
- backgroundColor: "#22c55e"
4812
+ borderRadius: RADIUS.full,
4813
+ backgroundColor: COLOR.success
4716
4814
  },
4717
4815
  sendButton: {
4718
4816
  flexShrink: 0,
@@ -4721,11 +4819,11 @@ var styles14 = {
4721
4819
  display: "flex",
4722
4820
  alignItems: "center",
4723
4821
  justifyContent: "center",
4724
- fontSize: "13px",
4725
- color: "#ffffff",
4726
- backgroundColor: "#2563eb",
4822
+ fontSize: FONT_SIZE.sm,
4823
+ color: COLOR.white,
4824
+ backgroundColor: COLOR.primary,
4727
4825
  border: "none",
4728
- borderRadius: "50%",
4826
+ borderRadius: RADIUS.full,
4729
4827
  cursor: "pointer"
4730
4828
  },
4731
4829
  expandButton: {
@@ -4735,11 +4833,11 @@ var styles14 = {
4735
4833
  display: "flex",
4736
4834
  alignItems: "center",
4737
4835
  justifyContent: "center",
4738
- fontSize: "12px",
4739
- color: "#6b7280",
4836
+ fontSize: FONT_SIZE.xs,
4837
+ color: COLOR.neutral500,
4740
4838
  backgroundColor: "transparent",
4741
- border: "1px solid #e5e7eb",
4742
- borderRadius: "50%",
4839
+ border: `1px solid ${COLOR.neutral200}`,
4840
+ borderRadius: RADIUS.full,
4743
4841
  cursor: "pointer"
4744
4842
  }};
4745
4843
  function useConversationList(options) {
@@ -4903,52 +5001,52 @@ var styles15 = {
4903
5001
  container: {
4904
5002
  display: "flex",
4905
5003
  alignItems: "center",
4906
- gap: "12px",
4907
- padding: "10px 12px",
5004
+ gap: SPACE.S3,
5005
+ padding: `${SPACE.S3} ${SPACE.S3}`,
4908
5006
  width: "100%",
4909
5007
  backgroundColor: "transparent",
4910
5008
  border: "none",
4911
- borderBottom: "1px solid #f3f4f6",
5009
+ borderBottom: `1px solid ${COLOR.neutral100}`,
4912
5010
  cursor: "pointer",
4913
5011
  textAlign: "left"
4914
5012
  },
4915
5013
  selected: {
4916
- backgroundColor: "#eff6ff"
5014
+ backgroundColor: COLOR.primaryBg
4917
5015
  },
4918
5016
  unread: {},
4919
5017
  avatarWrapper: {
4920
5018
  position: "relative",
4921
- width: "40px",
4922
- height: "40px",
5019
+ width: SIZE.avatar,
5020
+ height: SIZE.avatar,
4923
5021
  flexShrink: 0
4924
5022
  },
4925
5023
  avatar: {
4926
- width: "40px",
4927
- height: "40px",
4928
- borderRadius: "50%",
5024
+ width: SIZE.avatar,
5025
+ height: SIZE.avatar,
5026
+ borderRadius: RADIUS.full,
4929
5027
  objectFit: "cover"
4930
5028
  },
4931
5029
  avatarFallback: {
4932
- width: "40px",
4933
- height: "40px",
4934
- borderRadius: "50%",
4935
- backgroundColor: "#e5e7eb",
5030
+ width: SIZE.avatar,
5031
+ height: SIZE.avatar,
5032
+ borderRadius: RADIUS.full,
5033
+ backgroundColor: COLOR.neutral200,
4936
5034
  display: "flex",
4937
5035
  alignItems: "center",
4938
5036
  justifyContent: "center",
4939
- fontSize: "15px",
4940
- fontWeight: 600,
4941
- color: "#6b7280"
5037
+ fontSize: FONT_SIZE.md,
5038
+ fontWeight: FONT_WEIGHT.semibold,
5039
+ color: COLOR.neutral500
4942
5040
  },
4943
5041
  unreadDot: {
4944
5042
  position: "absolute",
4945
5043
  top: "0",
4946
5044
  left: "0",
4947
- width: "10px",
4948
- height: "10px",
4949
- borderRadius: "50%",
4950
- backgroundColor: "#2563eb",
4951
- border: "2px solid #ffffff"
5045
+ width: SIZE.dot,
5046
+ height: SIZE.dot,
5047
+ borderRadius: RADIUS.full,
5048
+ backgroundColor: COLOR.primary,
5049
+ border: `2px solid ${COLOR.white}`
4952
5050
  },
4953
5051
  content: {
4954
5052
  flex: 1,
@@ -4961,12 +5059,12 @@ var styles15 = {
4961
5059
  display: "flex",
4962
5060
  justifyContent: "space-between",
4963
5061
  alignItems: "baseline",
4964
- gap: "8px"
5062
+ gap: SPACE.S2
4965
5063
  },
4966
5064
  name: {
4967
- fontSize: "15px",
4968
- fontWeight: 500,
4969
- color: "#111827",
5065
+ fontSize: FONT_SIZE.md,
5066
+ fontWeight: FONT_WEIGHT.medium,
5067
+ color: COLOR.neutral900,
4970
5068
  overflow: "hidden",
4971
5069
  textOverflow: "ellipsis",
4972
5070
  whiteSpace: "nowrap",
@@ -4974,26 +5072,26 @@ var styles15 = {
4974
5072
  minWidth: 0
4975
5073
  },
4976
5074
  nameUnread: {
4977
- fontWeight: 700
5075
+ fontWeight: FONT_WEIGHT.bold
4978
5076
  },
4979
5077
  time: {
4980
- fontSize: "12px",
4981
- color: "#6b7280",
5078
+ fontSize: FONT_SIZE.xs,
5079
+ color: COLOR.neutral500,
4982
5080
  flexShrink: 0
4983
5081
  },
4984
5082
  timeUnread: {
4985
- color: "#2563eb",
4986
- fontWeight: 600
5083
+ color: COLOR.primary,
5084
+ fontWeight: FONT_WEIGHT.semibold
4987
5085
  },
4988
5086
  bottomRow: {
4989
5087
  display: "flex",
4990
5088
  justifyContent: "space-between",
4991
5089
  alignItems: "center",
4992
- gap: "8px"
5090
+ gap: SPACE.S2
4993
5091
  },
4994
5092
  preview: {
4995
- fontSize: "14px",
4996
- color: "#4b5563",
5093
+ fontSize: FONT_SIZE.sm,
5094
+ color: COLOR.neutral600,
4997
5095
  overflow: "hidden",
4998
5096
  textOverflow: "ellipsis",
4999
5097
  whiteSpace: "nowrap",
@@ -5001,18 +5099,18 @@ var styles15 = {
5001
5099
  minWidth: 0
5002
5100
  },
5003
5101
  previewUnread: {
5004
- color: "#111827",
5005
- fontWeight: 500
5102
+ color: COLOR.neutral900,
5103
+ fontWeight: FONT_WEIGHT.medium
5006
5104
  },
5007
5105
  badge: {
5008
5106
  minWidth: "20px",
5009
5107
  height: "20px",
5010
- padding: "0 6px",
5011
- fontSize: "11px",
5012
- fontWeight: 600,
5013
- color: "#ffffff",
5014
- backgroundColor: "#2563eb",
5015
- borderRadius: "10px",
5108
+ padding: `0 ${SPACE.S2}`,
5109
+ fontSize: FONT_SIZE.xs,
5110
+ fontWeight: FONT_WEIGHT.semibold,
5111
+ color: COLOR.white,
5112
+ backgroundColor: COLOR.primary,
5113
+ borderRadius: RADIUS.pill,
5016
5114
  display: "flex",
5017
5115
  alignItems: "center",
5018
5116
  justifyContent: "center",
@@ -5113,89 +5211,89 @@ var styles16 = {
5113
5211
  display: "flex",
5114
5212
  flexDirection: "column",
5115
5213
  height: "100%",
5116
- backgroundColor: "#ffffff",
5117
- borderRight: "1px solid #e5e7eb"
5214
+ backgroundColor: COLOR.white,
5215
+ borderRight: `1px solid ${COLOR.neutral200}`
5118
5216
  },
5119
5217
  header: {
5120
- padding: "12px",
5121
- borderBottom: "1px solid #e5e7eb",
5122
- backgroundColor: "#f9fafb",
5218
+ padding: SPACE.S3,
5219
+ borderBottom: `1px solid ${COLOR.neutral200}`,
5220
+ backgroundColor: COLOR.neutral50,
5123
5221
  flexShrink: 0
5124
5222
  },
5125
5223
  titleRow: {
5126
5224
  display: "flex",
5127
5225
  alignItems: "center",
5128
- gap: "8px",
5129
- marginBottom: "8px"
5226
+ gap: SPACE.S2,
5227
+ marginBottom: SPACE.S2
5130
5228
  },
5131
5229
  title: {
5132
5230
  margin: 0,
5133
- fontSize: "15px",
5134
- fontWeight: 600,
5135
- color: "#111827"
5231
+ fontSize: FONT_SIZE.md,
5232
+ fontWeight: FONT_WEIGHT.semibold,
5233
+ color: COLOR.neutral900
5136
5234
  },
5137
5235
  totalBadge: {
5138
5236
  minWidth: "20px",
5139
5237
  height: "20px",
5140
- padding: "0 6px",
5141
- fontSize: "11px",
5142
- fontWeight: 600,
5143
- color: "#ffffff",
5144
- backgroundColor: "#2563eb",
5145
- borderRadius: "10px",
5238
+ padding: `0 ${SPACE.S2}`,
5239
+ fontSize: FONT_SIZE.xs,
5240
+ fontWeight: FONT_WEIGHT.semibold,
5241
+ color: COLOR.white,
5242
+ backgroundColor: COLOR.primary,
5243
+ borderRadius: RADIUS.pill,
5146
5244
  display: "flex",
5147
5245
  alignItems: "center",
5148
5246
  justifyContent: "center"
5149
5247
  },
5150
5248
  searchRow: {
5151
- marginBottom: "8px"
5249
+ marginBottom: SPACE.S2
5152
5250
  },
5153
5251
  searchInput: {
5154
5252
  width: "100%",
5155
- padding: "6px 10px",
5156
- fontSize: "13px",
5157
- border: "1px solid #e5e7eb",
5158
- borderRadius: "6px",
5253
+ padding: `${SPACE.S2} ${SPACE.S3}`,
5254
+ fontSize: FONT_SIZE.sm,
5255
+ border: `1px solid ${COLOR.neutral200}`,
5256
+ borderRadius: RADIUS.md,
5159
5257
  outline: "none",
5160
5258
  fontFamily: "inherit"
5161
5259
  },
5162
5260
  filterRow: {
5163
5261
  display: "flex",
5164
- gap: "4px"
5262
+ gap: SPACE.S1
5165
5263
  },
5166
5264
  filterButton: {
5167
5265
  flex: 1,
5168
- padding: "5px 8px",
5169
- fontSize: "12px",
5170
- color: "#6b7280",
5171
- backgroundColor: "#ffffff",
5172
- border: "1px solid #e5e7eb",
5173
- borderRadius: "6px",
5266
+ padding: `${SPACE.S1} ${SPACE.S2}`,
5267
+ fontSize: FONT_SIZE.xs,
5268
+ color: COLOR.neutral500,
5269
+ backgroundColor: COLOR.white,
5270
+ border: `1px solid ${COLOR.neutral200}`,
5271
+ borderRadius: RADIUS.md,
5174
5272
  cursor: "pointer"
5175
5273
  },
5176
5274
  filterButtonActive: {
5177
- color: "#ffffff",
5178
- backgroundColor: "#2563eb",
5179
- borderColor: "#2563eb",
5180
- fontWeight: 500
5275
+ color: COLOR.white,
5276
+ backgroundColor: COLOR.primary,
5277
+ borderColor: COLOR.primary,
5278
+ fontWeight: FONT_WEIGHT.medium
5181
5279
  },
5182
5280
  list: {
5183
5281
  flex: 1,
5184
5282
  overflowY: "auto"
5185
5283
  },
5186
5284
  state: {
5187
- padding: "24px 16px",
5188
- fontSize: "13px",
5189
- color: "#9ca3af",
5285
+ padding: `${SPACE.S6} ${SPACE.S4}`,
5286
+ fontSize: FONT_SIZE.sm,
5287
+ color: COLOR.neutral500,
5190
5288
  textAlign: "center"
5191
5289
  },
5192
5290
  errorState: {
5193
- padding: "16px",
5194
- fontSize: "13px",
5195
- color: "#dc2626",
5196
- backgroundColor: "#fef2f2",
5197
- margin: "12px",
5198
- borderRadius: "6px",
5291
+ padding: SPACE.S4,
5292
+ fontSize: FONT_SIZE.sm,
5293
+ color: COLOR.danger,
5294
+ backgroundColor: COLOR.dangerBg,
5295
+ margin: SPACE.S3,
5296
+ borderRadius: RADIUS.md,
5199
5297
  textAlign: "center"
5200
5298
  }
5201
5299
  };
@@ -5291,7 +5389,7 @@ var styles17 = {
5291
5389
  display: "flex",
5292
5390
  height: "100%",
5293
5391
  width: "100%",
5294
- backgroundColor: "#ffffff",
5392
+ backgroundColor: COLOR.white,
5295
5393
  fontFamily: FONT_STACK
5296
5394
  },
5297
5395
  sidebar: {
@@ -5312,15 +5410,15 @@ var styles17 = {
5312
5410
  display: "flex",
5313
5411
  flexDirection: "column",
5314
5412
  minWidth: 0,
5315
- padding: "12px",
5316
- backgroundColor: "#f3f4f6"
5413
+ padding: SPACE.S3,
5414
+ backgroundColor: COLOR.neutral100
5317
5415
  },
5318
5416
  mainCompact: {
5319
5417
  flex: 1,
5320
5418
  display: "flex",
5321
5419
  flexDirection: "column",
5322
5420
  minWidth: 0,
5323
- backgroundColor: "#f3f4f6"
5421
+ backgroundColor: COLOR.neutral100
5324
5422
  },
5325
5423
  panel: {
5326
5424
  height: "100%",
@@ -5332,23 +5430,23 @@ var styles17 = {
5332
5430
  flexDirection: "column",
5333
5431
  alignItems: "center",
5334
5432
  justifyContent: "center",
5335
- padding: "48px 24px",
5433
+ padding: `${SPACE.S12} ${SPACE.S6}`,
5336
5434
  textAlign: "center"
5337
5435
  },
5338
5436
  emptyIcon: {
5339
- fontSize: "48px",
5340
- marginBottom: "12px"
5437
+ fontSize: FONT_SIZE.xxl,
5438
+ marginBottom: SPACE.S3
5341
5439
  },
5342
5440
  emptyTitle: {
5343
- margin: "0 0 6px",
5344
- fontSize: "16px",
5345
- fontWeight: 600,
5346
- color: "#374151"
5441
+ margin: `0 0 ${SPACE.S2}`,
5442
+ fontSize: FONT_SIZE.lg,
5443
+ fontWeight: FONT_WEIGHT.semibold,
5444
+ color: COLOR.neutral700
5347
5445
  },
5348
5446
  emptySubtitle: {
5349
5447
  margin: 0,
5350
- fontSize: "13px",
5351
- color: "#6b7280",
5448
+ fontSize: FONT_SIZE.sm,
5449
+ color: COLOR.neutral500,
5352
5450
  maxWidth: "320px"
5353
5451
  }
5354
5452
  };