chordia-ui 3.3.2 → 3.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/README.md +4 -0
  2. package/dist/SmallButton.cjs.js +1 -1
  3. package/dist/SmallButton.cjs.js.map +1 -1
  4. package/dist/SmallButton.es.js +170 -162
  5. package/dist/SmallButton.es.js.map +1 -1
  6. package/dist/components/chat.cjs.js +8 -8
  7. package/dist/components/chat.cjs.js.map +1 -1
  8. package/dist/components/chat.es.js +329 -335
  9. package/dist/components/chat.es.js.map +1 -1
  10. package/dist/components/data.cjs.js +1 -1
  11. package/dist/components/data.cjs.js.map +1 -1
  12. package/dist/components/data.es.js +83 -80
  13. package/dist/components/data.es.js.map +1 -1
  14. package/dist/components/layout.cjs.js +1 -1
  15. package/dist/components/layout.cjs.js.map +1 -1
  16. package/dist/components/layout.es.js +3 -1
  17. package/dist/components/layout.es.js.map +1 -1
  18. package/dist/index.cjs2.js +1 -1
  19. package/dist/index.cjs2.js.map +1 -1
  20. package/dist/index.es2.js +4 -4
  21. package/dist/index.es2.js.map +1 -1
  22. package/dist/pages/interactionDetails.cjs.js +2 -2
  23. package/dist/pages/interactionDetails.cjs.js.map +1 -1
  24. package/dist/pages/interactionDetails.es.js +117 -123
  25. package/dist/pages/interactionDetails.es.js.map +1 -1
  26. package/package.json +1 -1
  27. package/src/components/chat/ChatHistoryPanel.jsx +3 -3
  28. package/src/components/chat/ChatInterface.jsx +14 -14
  29. package/src/components/common/MessageThread.jsx +19 -19
  30. package/src/components/data/DataTable.jsx +18 -15
  31. package/src/components/layout/SplitPane.jsx +2 -0
  32. package/src/components/login/LoginPage.jsx +4 -4
  33. package/src/components/primitives/SmallButton.jsx +14 -6
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chordia-ui",
3
- "version": "3.3.2",
3
+ "version": "3.3.3",
4
4
  "description": "Chordia Design System - UI components, tokens, and Tailwind preset",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs.js",
@@ -101,15 +101,15 @@ export default function ChatHistoryPanel({
101
101
  padding: "4px 10px",
102
102
  fontSize: "11px",
103
103
  fontWeight: 600,
104
- color: "var(--rail-discovery, #5E88B0)",
105
- background: "rgba(94, 136, 176, 0.08)",
104
+ color: "var(--Base-Strong, #0B0B0B)",
105
+ background: "#ECEEF2",
106
106
  border: "1px solid var(--border-subtle, rgba(52,58,64,0.08))",
107
107
  borderRadius: "6px",
108
108
  cursor: "pointer",
109
109
  transition: "all 0.15s ease",
110
110
  }}
111
111
  onMouseEnter={(e) => {
112
- e.currentTarget.style.background = "rgba(94, 136, 176, 0.14)";
112
+ e.currentTarget.style.background = "#ECEEF2";
113
113
  }}
114
114
  onMouseLeave={(e) => {
115
115
  e.currentTarget.style.background = "rgba(94, 136, 176, 0.08)";
@@ -461,12 +461,12 @@ export default function ChatInterface({
461
461
  padding: "10px 16px",
462
462
  background:
463
463
  inputValue.trim() && !isSending
464
- ? "var(--rail-discovery, #5E88B0)"
465
- : "var(--border-subtle, rgba(52,58,64,0.08))",
464
+ ? "var(--Base-Strong, #0B0B0B)"
465
+ : "#ECEEF2",
466
466
  color:
467
467
  inputValue.trim() && !isSending
468
- ? "rgba(255, 255, 255, 0.95)"
469
- : "var(--text-faint, rgba(30,33,37,0.36))",
468
+ ? "white"
469
+ : "var(--text-base)",
470
470
  border: "none",
471
471
  borderRadius: "var(--radius-md, 8px)",
472
472
  cursor:
@@ -479,16 +479,16 @@ export default function ChatInterface({
479
479
  transition: "all 0.15s ease",
480
480
  height: "42px",
481
481
  }}
482
- onMouseEnter={(e) => {
483
- if (inputValue.trim() && !isSending) {
484
- e.currentTarget.style.background = "rgba(94, 136, 176, 1)";
485
- }
486
- }}
487
- onMouseLeave={(e) => {
488
- if (inputValue.trim() && !isSending) {
489
- e.currentTarget.style.background = "var(--rail-discovery, #5E88B0)";
490
- }
491
- }}
482
+ // onMouseEnter={(e) => {
483
+ // if (inputValue.trim() && !isSending) {
484
+ // e.currentTarget.style.background = "var(--Base-Strong, #0B0B0B)";
485
+ // }
486
+ // }}
487
+ // onMouseLeave={(e) => {
488
+ // if (inputValue.trim() && !isSending) {
489
+ // e.currentTarget.style.background = "#ECEEF2";
490
+ // }
491
+ // }}
492
492
  >
493
493
  {isSending ? (
494
494
  <>
@@ -840,8 +840,8 @@ const renderMessageTree = (message, depth = 0) => {
840
840
  ? "white"
841
841
  : "rgba(30, 33, 37, 0.45)",
842
842
  background: editContent?.trim()
843
- ? "#5e88b0"
844
- : "rgba(30, 33, 37, 0.1)",
843
+ ? "var(--Base-Strong, #0B0B0B)"
844
+ : "#ECEEF2",
845
845
  border: "none",
846
846
  borderRadius: "6px",
847
847
  cursor: editContent?.trim() ? "pointer" : "not-allowed",
@@ -850,18 +850,18 @@ const renderMessageTree = (message, depth = 0) => {
850
850
  gap: "6px",
851
851
  transition: "all 0.15s ease",
852
852
  }}
853
- onMouseEnter={(e) => {
854
- if (editContent?.trim()) {
855
- e.currentTarget.style.background = "#4d7290";
856
- }
857
- }}
858
- onMouseLeave={(e) => {
859
- if (editContent?.trim()) {
860
- e.currentTarget.style.background = "#5e88b0";
861
- }
862
- }}
853
+ // onMouseEnter={(e) => {
854
+ // if (editContent?.trim()) {
855
+ // e.currentTarget.style.background = "#4d7290";
856
+ // }
857
+ // }}
858
+ // onMouseLeave={(e) => {
859
+ // if (editContent?.trim()) {
860
+ // e.currentTarget.style.background = "#5e88b0";
861
+ // }
862
+ // }}
863
863
  >
864
- Save
864
+ Edit
865
865
  </button>
866
866
  </div>
867
867
  </div>
@@ -951,8 +951,8 @@ const renderMessageTree = (message, depth = 0) => {
951
951
  : "rgba(30, 33, 37, 0.45)",
952
952
  background:
953
953
  replyDraft.trim() && !isSending
954
- ? "#5e88b0"
955
- : "rgba(30, 33, 37, 0.12)",
954
+ ? "var(--Base-Strong, #0B0B0B)"
955
+ : "#ECEEF2",
956
956
  border: "none",
957
957
  borderRadius: "6px",
958
958
  cursor:
@@ -961,7 +961,7 @@ const renderMessageTree = (message, depth = 0) => {
961
961
  : "not-allowed",
962
962
  }}
963
963
  >
964
- Send
964
+ Reply
965
965
  </button>
966
966
  </div>
967
967
  </div>
@@ -1116,7 +1116,7 @@ const renderMessageTree = (message, depth = 0) => {
1116
1116
  fontSize: "12px",
1117
1117
  fontWeight: 600,
1118
1118
  color: "white",
1119
- background: "#5e88b0",
1119
+ background: "var(--Base-Strong, #0B0B0B)",
1120
1120
  border: "none",
1121
1121
  borderRadius: "6px",
1122
1122
  cursor: "pointer",
@@ -2253,8 +2253,8 @@ const renderMessageTree = (message, depth = 0) => {
2253
2253
  padding: "8px 16px",
2254
2254
  background:
2255
2255
  messageInput.trim() && !isSending
2256
- ? "#5e88b0"
2257
- : "rgba(30, 33, 37, 0.1)",
2256
+ ? "var(--Base-Strong, #0B0B0B)"
2257
+ : "#ECEEF2",
2258
2258
  border: "none",
2259
2259
  borderRadius: "6px",
2260
2260
  color:
@@ -791,8 +791,9 @@ export default function DataTable({
791
791
  style={{
792
792
  width: column.width || "auto",
793
793
  minWidth: column.width || "auto",
794
+ backgroundColor: "var(--primary-foreground)",
794
795
  }}
795
- className="sticky top-[57px] z-10 bg-[var(--paper-elevated)] border-b border-[var(--border-strong)] px-4 py-2 text-left"
796
+ className="sticky top-[57px] z-10 border-b border-[var(--border-strong)] px-4 py-2 text-left"
796
797
  >
797
798
  {isFilterable ? (
798
799
  <div className="relative">
@@ -810,8 +811,8 @@ export default function DataTable({
810
811
  }}
811
812
  onKeyDown={(e) => e.stopPropagation()}
812
813
  onMouseDown={(e) => e.stopPropagation()}
813
- className="w-full pl-7 pr-2 py-1.5 text-xs border border-[var(--border)] rounded bg-[var(--paper)] text-[var(--text-ink)] placeholder:text-[var(--text-faint)] focus:outline-none focus:border-[var(--border-hover)] focus:ring-1 focus:ring-[var(--focus)] transition-colors"
814
- style={{ fontFamily: 'var(--font-sans)' }}
814
+ className="w-full pl-7 pr-2 py-1.5 text-xs border border-[var(--border)] rounded text-[var(--text-ink)] placeholder:text-[var(--text-faint)] focus:outline-none focus:border-[var(--border-hover)] focus:ring-1 focus:ring-[var(--focus)] transition-colors"
815
+ style={{ fontFamily: 'var(--font-sans)', backgroundColor: "var(--primary-foreground)" }}
815
816
  autoComplete="off"
816
817
  />
817
818
  </div>
@@ -839,7 +840,7 @@ export default function DataTable({
839
840
  width: column.width || 'auto',
840
841
  borderRight: '1px solid rgba(52, 58, 64, 0.06)',
841
842
  userSelect: 'none',
842
- background: 'rgba(255, 255, 255, 0.95)',
843
+ background: 'var(--primary-foreground)',
843
844
  borderBottom: '1px solid rgba(52, 58, 64, 0.12)',
844
845
  position: 'sticky',
845
846
  top: 0,
@@ -887,7 +888,7 @@ export default function DataTable({
887
888
  const columnDropdownMenu = isColumnDropdownOpen ? (
888
889
  <div
889
890
  ref={columnDropdownMenuRef}
890
- className="flex flex-col bg-white overflow-auto z-[49] min-w-[220px]"
891
+ className="flex flex-col overflow-auto z-[49] min-w-[220px]"
891
892
  style={{
892
893
  position: "fixed",
893
894
  top: `${columnDropdownPosition.top}px`,
@@ -895,6 +896,7 @@ export default function DataTable({
895
896
  width: columnDropdownPosition.width || 220,
896
897
  maxHeight: `400px`,
897
898
  fontFamily: 'var(--font-sans)',
899
+ backgroundColor: "var(--primary-foreground)",
898
900
  borderRadius: '0 0 8px 8px', // Rounded corners only on bottom
899
901
  boxShadow: '4px 4px 6px 0px #6D70681A, -4px 0px 6px 0px #6D70681A',
900
902
  border: '1px solid rgba(52, 58, 64, 0.12)',
@@ -1046,7 +1048,7 @@ export default function DataTable({
1046
1048
  ) : null;
1047
1049
 
1048
1050
  return (
1049
- <div className="w-full" style={{top:'130px', position: 'sticky', zIndex: 35, backgroundColor: "#F4F1E6"}}>
1051
+ <div className="w-full" style={{top:'130px', position: 'sticky', zIndex: 35, backgroundColor: "var(--primary-foreground)"}}>
1050
1052
  {/* Column Visibility Dropdown and Filters */}
1051
1053
  {columns.length > 0 && (
1052
1054
  <div
@@ -1054,7 +1056,7 @@ export default function DataTable({
1054
1056
  style={{
1055
1057
  position: "sticky",
1056
1058
  zIndex: 35,
1057
- backgroundColor: "#F4F1E6",
1059
+ backgroundColor: "var(--primary-foreground)",
1058
1060
  }}
1059
1061
  >
1060
1062
  <div className="flex items-center gap-3 flex-wrap">
@@ -1066,10 +1068,11 @@ export default function DataTable({
1066
1068
  </div>
1067
1069
  <div
1068
1070
  ref={columnDropdownRef}
1069
- className="inline-flex items-center justify-between gap-2 px-4 py-2.5 bg-white/80 cursor-pointer hover:bg-white transition-colors text-sm font-medium text-gray-900 border border-gray-300 min-w-[220px]"
1071
+ className="inline-flex items-center justify-between gap-2 px-4 py-2.5 cursor-pointer transition-colors text-sm font-medium text-gray-900 border border-gray-300 min-w-[220px]"
1070
1072
  onClick={() => setIsColumnDropdownOpen(!isColumnDropdownOpen)}
1071
1073
  style={{
1072
1074
  fontFamily: 'var(--font-sans)',
1075
+ backgroundColor: "var(--primary-foreground)",
1073
1076
  borderRadius: isColumnDropdownOpen ? '8px 8px 0 0' : '8px', // Rounded top corners when open, all corners when closed
1074
1077
  }}
1075
1078
  >
@@ -1109,9 +1112,9 @@ export default function DataTable({
1109
1112
  >
1110
1113
  <div className="rounded-t-[14px]" style={{
1111
1114
  border: '1px solid rgba(52, 58, 64, 0.12)',
1112
- borderBottom: 'none',
1115
+ borderBottom: '1px solid rgba(52, 58, 64, 0.12)',
1113
1116
  overflow: 'hidden',
1114
- background: 'rgba(255, 255, 255, 0.82)',
1117
+ background: 'var(--primary-foreground)',
1115
1118
  position: 'relative',
1116
1119
  top:'0.5rem'
1117
1120
  }}>
@@ -1181,7 +1184,7 @@ export default function DataTable({
1181
1184
  key={`filter-${columnId}`}
1182
1185
  style={{
1183
1186
  padding: '8px 14px',
1184
- background: 'rgba(244, 241, 230, 0.35)',
1187
+ background: 'var(--primary-foreground)',
1185
1188
  borderBottom: '1px solid rgba(52, 58, 64, 0.10)',
1186
1189
  position: 'sticky',
1187
1190
  top: '41px',
@@ -1208,18 +1211,18 @@ export default function DataTable({
1208
1211
  fontSize: '11.5px',
1209
1212
  border: '1px solid rgba(52, 58, 64, 0.16)',
1210
1213
  borderRadius: '6px',
1211
- background: 'rgba(255, 255, 255, 0.85)',
1214
+ background: 'var(--primary-foreground)',
1212
1215
  color: 'rgba(30, 33, 37, 0.78)',
1213
1216
  outline: 'none',
1214
1217
  fontFamily: 'var(--font-sans)',
1215
1218
  }}
1216
1219
  onFocus={(e) => {
1217
1220
  e.target.style.borderColor = 'rgba(231, 212, 162, 0.65)';
1218
- e.target.style.background = 'rgba(255, 255, 255, 1)';
1221
+ e.target.style.background = 'var(--primary-foreground)';
1219
1222
  }}
1220
1223
  onBlur={(e) => {
1221
1224
  e.target.style.borderColor = 'rgba(52, 58, 64, 0.16)';
1222
- e.target.style.background = 'rgba(255, 255, 255, 0.85)';
1225
+ e.target.style.background = 'var(--primary-foreground)';
1223
1226
  }}
1224
1227
  autoComplete="off"
1225
1228
  />
@@ -1340,7 +1343,7 @@ export default function DataTable({
1340
1343
  ) : null}
1341
1344
 
1342
1345
  {(isServerSidePagination ? totalCount > 0 : sortedData.length > 0) && (
1343
- <div className="border-t border-gray-200 bg-white rounded-b-[14px]">
1346
+ <div className="border-t border-gray-200 rounded-b-[14px]" style={{ backgroundColor: "var(--primary-foreground)" }}>
1344
1347
  <Pagination
1345
1348
  page={page}
1346
1349
  pageSizeOptions={[5,10, 20, 50, 100]}
@@ -174,6 +174,8 @@ export default function SplitPane({
174
174
  overflow: "hidden",
175
175
  transition: dragging ? "none" : "width 0.2s ease",
176
176
  height: "100%",
177
+ border: "1px solid",
178
+ borderColor: "var(--border-subtle)",
177
179
  }}
178
180
  >
179
181
  {!collapsed && left}
@@ -484,7 +484,7 @@ export default function LoginPage({
484
484
  alignItems: 'center', padding: '32px 72px', position: 'relative', background: 'white',
485
485
  overflowY: 'auto', minHeight: 0,
486
486
  }}>
487
- <div style={{ display: 'flex', flexDirection: 'column', alignItems: 'flex-start', width: '100%', maxWidth: 360, gap: 28 }}>
487
+ <div style={{ display: 'flex', flexDirection: 'column', alignItems: 'flex-start', width: '100%', maxWidth: 360, gap: 28, flex: 1 }}>
488
488
 
489
489
  {view === 'signup' ? (
490
490
  /* ── Sign Up ── */
@@ -534,8 +534,8 @@ export default function LoginPage({
534
534
  </Field>
535
535
 
536
536
  {signupError && (
537
- <div style={{ display: 'flex', flexDirection: 'row', alignItems: 'center', padding: 8, gap: 6, width: '100%', boxSizing: 'border-box', background: 'var(--color-error-bg)', borderRadius: 5, fontSize: 15, fontWeight: 400, lineHeight: '22px', color: 'var(--color-text)', fontFamily: FF }}>
538
- <svg width="17" height="17" viewBox="0 0 24 24" fill="var(--color-text)" style={{ flexShrink: 0 }}>
537
+ <div style={{ display: 'flex', flexDirection: 'row', alignItems: 'center', padding: 8, gap: 6, width: '100%', boxSizing: 'border-box', background: 'var(--color-error-bg)', borderRadius: 5, fontSize: 14, fontWeight: 400, lineHeight: '22px', color: 'var(--color-text)', fontFamily: FF }}>
538
+ <svg width="16" height="16" viewBox="0 0 24 24" fill="var(--color-text)" style={{ flexShrink: 0 }}>
539
539
  <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"/>
540
540
  </svg>
541
541
  {signupError}
@@ -808,7 +808,7 @@ export default function LoginPage({
808
808
  </div>
809
809
 
810
810
  <NavRow text="Not a member yet?" linkText="Sign Up" onClick={() => { setView('signup'); onSignUp?.(); }} />
811
- <TermsFooter onTerms={onTerms} onPrivacyPolicy={onPrivacyPolicy} paddingTop={16} />
811
+ <TermsFooter onTerms={onTerms} onPrivacyPolicy={onPrivacyPolicy} paddingTop={0} />
812
812
  </div>
813
813
  </div>
814
814
  )}
@@ -10,24 +10,32 @@ export default function SmallButton({
10
10
  }) {
11
11
  const variantStyles = {
12
12
  primary: {
13
- backgroundColor: 'var(--rail-tone)',
13
+ backgroundColor: 'var(--Base-Strong, #0B0B0B)',
14
14
  color: 'white',
15
- border: 'none'
15
+ border: 'none',
16
+ fontSize: '16px',
17
+ fontWeight: 600,
16
18
  },
17
19
  secondary: {
18
20
  backgroundColor: 'transparent',
19
21
  border: '1px solid var(--border)',
20
- color: 'var(--text-base)'
22
+ color: 'var(--text-base)',
23
+ fontSize: '16px',
24
+ fontWeight: 600,
21
25
  },
22
26
  ghost: {
23
27
  backgroundColor: 'transparent',
24
28
  border: 'none',
25
- color: 'var(--text-muted)'
29
+ color: 'var(--text-muted)',
30
+ fontSize: '16px',
31
+ fontWeight: 600,
26
32
  },
27
33
  danger: {
28
34
  backgroundColor: 'var(--rail-signal-churn)',
29
35
  color: 'white',
30
- border: 'none'
36
+ border: 'none',
37
+ fontSize: '16px',
38
+ fontWeight: 600,
31
39
  }
32
40
  };
33
41
 
@@ -59,7 +67,7 @@ export default function SmallButton({
59
67
  const handleMouseEnter = (e) => {
60
68
  if (disabled) return;
61
69
  if (variant === 'secondary' || variant === 'ghost') {
62
- e.currentTarget.style.backgroundColor = 'var(--hover-warm)';
70
+ e.currentTarget.style.backgroundColor = '#ECEEF2';
63
71
  } else if (variant === 'danger') {
64
72
  e.currentTarget.style.opacity = '0.85';
65
73
  }