@natoe/colab 0.1.8 → 0.1.9

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