codexmate 0.0.17 → 0.0.18

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/web-ui/styles.css CHANGED
@@ -164,7 +164,7 @@ body.force-compact .card {
164
164
  align-items: flex-start;
165
165
  justify-content: flex-start;
166
166
  padding: 12px;
167
- gap: 10px;
167
+ gap: 8px;
168
168
  }
169
169
 
170
170
  body.force-compact .card-leading {
@@ -466,7 +466,7 @@ body::after {
466
466
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 247, 240, 0.95) 100%);
467
467
  color: var(--color-text-secondary);
468
468
  cursor: pointer;
469
- transition: all var(--transition-normal) var(--ease-spring);
469
+ transition: none;
470
470
  display: flex;
471
471
  flex-direction: column;
472
472
  gap: 6px;
@@ -487,6 +487,21 @@ body::after {
487
487
  box-shadow: var(--shadow-float);
488
488
  }
489
489
 
490
+ .side-item.nav-intent-active {
491
+ border-color: var(--color-brand);
492
+ background: linear-gradient(135deg, rgba(201, 94, 75, 0.14), rgba(255, 255, 255, 0.96));
493
+ color: var(--color-text-primary);
494
+ box-shadow: var(--shadow-float);
495
+ }
496
+
497
+ .side-item.nav-intent-inactive,
498
+ .side-item.active.nav-intent-inactive {
499
+ border-color: var(--color-border-soft);
500
+ background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 247, 240, 0.95) 100%);
501
+ color: var(--color-text-secondary);
502
+ box-shadow: var(--shadow-subtle);
503
+ }
504
+
490
505
  .side-item-title {
491
506
  font-size: var(--font-size-body);
492
507
  font-weight: var(--font-weight-secondary);
@@ -959,7 +974,7 @@ body::after {
959
974
  color: var(--color-text-secondary);
960
975
  text-align: center;
961
976
  cursor: pointer;
962
- transition: all var(--transition-normal) var(--ease-spring);
977
+ transition: none;
963
978
  box-shadow: var(--shadow-subtle);
964
979
  }
965
980
 
@@ -976,6 +991,25 @@ body::after {
976
991
  box-shadow: 0 10px 24px rgba(27, 23, 20, 0.08);
977
992
  }
978
993
 
994
+ .top-tab.nav-intent-active {
995
+ border-color: var(--color-brand);
996
+ color: var(--color-text-primary);
997
+ background: linear-gradient(135deg, rgba(201, 94, 75, 0.12), rgba(255, 255, 255, 0.95));
998
+ box-shadow: 0 10px 24px rgba(27, 23, 20, 0.08);
999
+ }
1000
+
1001
+ .top-tab.nav-intent-inactive,
1002
+ .top-tab.active.nav-intent-inactive {
1003
+ border-color: rgba(216, 201, 184, 0.55);
1004
+ color: var(--color-text-secondary);
1005
+ background: rgba(255, 255, 255, 0.96);
1006
+ box-shadow: var(--shadow-subtle);
1007
+ }
1008
+
1009
+ #panel-sessions.session-panel-fast-hidden {
1010
+ display: none !important;
1011
+ }
1012
+
979
1013
  .config-subtabs {
980
1014
  display: flex;
981
1015
  gap: 8px;
@@ -1012,6 +1046,25 @@ body::after {
1012
1046
  box-shadow: var(--shadow-card);
1013
1047
  }
1014
1048
 
1049
+ .settings-subtabs {
1050
+ margin-bottom: var(--spacing-sm);
1051
+ }
1052
+
1053
+ .settings-tab-badge {
1054
+ display: inline-flex;
1055
+ align-items: center;
1056
+ justify-content: center;
1057
+ min-width: 18px;
1058
+ height: 18px;
1059
+ margin-left: 6px;
1060
+ padding: 0 6px;
1061
+ border-radius: 999px;
1062
+ background: rgba(210, 107, 90, 0.14);
1063
+ color: var(--color-text-secondary);
1064
+ font-size: 11px;
1065
+ line-height: 1;
1066
+ }
1067
+
1015
1068
  .content-wrapper {
1016
1069
  background: rgba(255, 255, 255, 0.94);
1017
1070
  border: 1px solid rgba(216, 201, 184, 0.35);
@@ -1448,6 +1501,22 @@ body::after {
1448
1501
  margin-bottom: var(--spacing-xs);
1449
1502
  }
1450
1503
 
1504
+ .settings-tab-header {
1505
+ align-items: flex-start;
1506
+ }
1507
+
1508
+ .settings-tab-actions {
1509
+ display: flex;
1510
+ flex-wrap: wrap;
1511
+ gap: 8px;
1512
+ justify-content: flex-end;
1513
+ }
1514
+
1515
+ .settings-tab-actions .btn-tool,
1516
+ .settings-tab-actions .btn-tool-compact {
1517
+ width: auto;
1518
+ }
1519
+
1451
1520
  .selector-title {
1452
1521
  font-size: var(--font-size-caption);
1453
1522
  font-weight: var(--font-weight-secondary);
@@ -1822,11 +1891,11 @@ body::after {
1822
1891
 
1823
1892
  .session-source {
1824
1893
  font-size: var(--font-size-caption);
1825
- color: var(--color-brand);
1826
- border: 1px solid rgba(210, 107, 90, 0.25);
1894
+ color: var(--color-text-tertiary);
1895
+ border: 1px solid var(--color-border-soft);
1827
1896
  border-radius: 999px;
1828
1897
  padding: 2px 8px;
1829
- background: rgba(210, 107, 90, 0.08);
1898
+ background: var(--color-surface-alt);
1830
1899
  white-space: nowrap;
1831
1900
  }
1832
1901
 
@@ -1847,6 +1916,12 @@ body::after {
1847
1916
  flex-shrink: 0;
1848
1917
  }
1849
1918
 
1919
+ .trash-list-footer {
1920
+ display: flex;
1921
+ justify-content: center;
1922
+ margin-top: var(--spacing-sm);
1923
+ }
1924
+
1850
1925
  .btn-session-export,
1851
1926
  .btn-session-open,
1852
1927
  .btn-session-clone,
@@ -1952,6 +2027,110 @@ body::after {
1952
2027
  box-shadow: inset 0 0 0 6px rgba(255, 255, 255, 0.7);
1953
2028
  }
1954
2029
 
2030
+ .trash-list {
2031
+ display: grid;
2032
+ gap: 12px;
2033
+ margin-top: 12px;
2034
+ }
2035
+
2036
+ .trash-item.session-item {
2037
+ min-height: auto;
2038
+ height: auto;
2039
+ cursor: default;
2040
+ content-visibility: visible;
2041
+ contain-intrinsic-size: auto;
2042
+ }
2043
+
2044
+ .trash-item.session-item:hover,
2045
+ .trash-item.session-item:active {
2046
+ transform: none;
2047
+ border-color: var(--color-border-soft);
2048
+ background: linear-gradient(to bottom, var(--color-surface) 0%, rgba(255, 255, 255, 0.92) 100%);
2049
+ box-shadow: var(--shadow-subtle);
2050
+ }
2051
+
2052
+ .trash-item.session-item::before {
2053
+ background: linear-gradient(180deg, rgba(70, 86, 110, 0.26), rgba(70, 86, 110, 0.08));
2054
+ }
2055
+
2056
+ .trash-item-main {
2057
+ min-width: 0;
2058
+ flex: 1;
2059
+ }
2060
+
2061
+ .trash-item-mainline {
2062
+ display: flex;
2063
+ align-items: flex-start;
2064
+ gap: 8px;
2065
+ }
2066
+
2067
+ .trash-item-title {
2068
+ flex: 1;
2069
+ font-size: var(--font-size-body);
2070
+ font-weight: var(--font-weight-secondary);
2071
+ color: var(--color-text-primary);
2072
+ line-height: 1.4;
2073
+ display: -webkit-box;
2074
+ -webkit-line-clamp: 2;
2075
+ -webkit-box-orient: vertical;
2076
+ white-space: normal;
2077
+ overflow: hidden;
2078
+ overflow-wrap: anywhere;
2079
+ }
2080
+
2081
+ .trash-item-meta {
2082
+ margin-top: 6px;
2083
+ }
2084
+
2085
+ .trash-item-side {
2086
+ display: flex;
2087
+ flex-direction: column;
2088
+ align-items: flex-end;
2089
+ gap: 8px;
2090
+ flex-shrink: 0;
2091
+ min-width: 132px;
2092
+ }
2093
+
2094
+ .trash-item-actions {
2095
+ display: flex;
2096
+ align-self: flex-end;
2097
+ justify-content: flex-end;
2098
+ flex-wrap: wrap;
2099
+ gap: 8px;
2100
+ }
2101
+
2102
+ .trash-item-time {
2103
+ width: 100%;
2104
+ text-align: right;
2105
+ white-space: nowrap;
2106
+ color: var(--color-text-tertiary);
2107
+ }
2108
+
2109
+ .trash-item-path {
2110
+ margin-top: 8px;
2111
+ display: grid;
2112
+ grid-template-columns: 48px minmax(0, 1fr);
2113
+ gap: 8px;
2114
+ align-items: start;
2115
+ white-space: normal;
2116
+ overflow-wrap: anywhere;
2117
+ }
2118
+
2119
+ .trash-item-label {
2120
+ display: inline-block;
2121
+ color: var(--color-text-secondary);
2122
+ font-weight: var(--font-weight-secondary);
2123
+ }
2124
+
2125
+ .trash-item-path span:last-child {
2126
+ min-width: 0;
2127
+ word-break: break-word;
2128
+ }
2129
+
2130
+ .trash-item .session-count-badge {
2131
+ margin-top: 2px;
2132
+ }
2133
+
1955
2134
  .session-layout {
1956
2135
  display: grid;
1957
2136
  grid-template-columns: minmax(260px, 360px) minmax(0, 1fr);
@@ -2040,6 +2219,8 @@ body::after {
2040
2219
  position: relative;
2041
2220
  overflow: hidden;
2042
2221
  min-height: 102px;
2222
+ content-visibility: auto;
2223
+ contain-intrinsic-size: 102px;
2043
2224
  }
2044
2225
 
2045
2226
  .session-item-header {
@@ -2086,6 +2267,16 @@ body::after {
2086
2267
  box-shadow: 0 6px 16px rgba(210, 107, 90, 0.12);
2087
2268
  }
2088
2269
 
2270
+ .session-item.pinned {
2271
+ border-color: rgba(208, 88, 58, 0.42);
2272
+ background: linear-gradient(to bottom, rgba(210, 107, 90, 0.12) 0%, rgba(255, 251, 247, 0.98) 100%);
2273
+ box-shadow: 0 8px 18px rgba(210, 107, 90, 0.10);
2274
+ }
2275
+
2276
+ .session-item.pinned::before {
2277
+ background: linear-gradient(180deg, rgba(201, 94, 75, 0.8), rgba(201, 94, 75, 0.32));
2278
+ }
2279
+
2089
2280
  .session-item.active::before {
2090
2281
  background: linear-gradient(180deg, rgba(201, 94, 75, 0.9), rgba(201, 94, 75, 0.4));
2091
2282
  }
@@ -2144,6 +2335,26 @@ body::after {
2144
2335
  height: 16px;
2145
2336
  }
2146
2337
 
2338
+ .session-item-pin {
2339
+ border-color: rgba(208, 88, 58, 0.24);
2340
+ }
2341
+
2342
+ .session-item-pin .pin-icon,
2343
+ .session-item-pin svg {
2344
+ color: rgba(208, 88, 58, 0.78);
2345
+ }
2346
+
2347
+ .session-item.pinned .session-item-pin {
2348
+ background: rgba(208, 88, 58, 0.16);
2349
+ border-color: rgba(208, 88, 58, 0.46);
2350
+ box-shadow: inset 0 0 0 1px rgba(208, 88, 58, 0.08);
2351
+ }
2352
+
2353
+ .session-item.pinned .session-item-pin .pin-icon,
2354
+ .session-item.pinned .session-item-pin svg {
2355
+ color: var(--color-brand-dark);
2356
+ }
2357
+
2147
2358
  .session-item-sub.session-item-snippet,
2148
2359
  .session-preview-meta,
2149
2360
  .session-preview-title {
@@ -2301,6 +2512,7 @@ body::after {
2301
2512
  display: flex;
2302
2513
  flex-direction: column;
2303
2514
  gap: 10px;
2515
+ contain: layout style;
2304
2516
  }
2305
2517
 
2306
2518
  .session-timeline {
@@ -2340,21 +2552,22 @@ body::after {
2340
2552
  transform: translate(-50%, -50%);
2341
2553
  cursor: pointer;
2342
2554
  padding: 0;
2343
- transition: transform var(--transition-fast) var(--ease-spring), background-color var(--transition-fast) var(--ease-spring), border-color var(--transition-fast) var(--ease-spring), box-shadow var(--transition-fast) var(--ease-spring);
2555
+ transition: none;
2556
+ will-change: auto;
2344
2557
  }
2345
2558
 
2346
2559
  .session-timeline-node:hover {
2347
- transform: translate(-50%, -50%) scale(1.2);
2560
+ transform: translate(-50%, -50%);
2348
2561
  border-color: rgba(201, 94, 75, 0.85);
2349
2562
  background: rgba(255, 255, 255, 1);
2350
- box-shadow: 0 0 0 3px rgba(201, 94, 75, 0.15);
2563
+ box-shadow: none;
2351
2564
  }
2352
2565
 
2353
2566
  .session-timeline-node.active {
2354
- transform: translate(-50%, -50%) scale(1.2);
2567
+ transform: translate(-50%, -50%);
2355
2568
  border-color: rgba(201, 94, 75, 0.95);
2356
2569
  background: rgba(201, 94, 75, 0.95);
2357
- box-shadow: 0 0 0 3px rgba(201, 94, 75, 0.2);
2570
+ box-shadow: none;
2358
2571
  }
2359
2572
 
2360
2573
  .session-timeline-current {
@@ -2378,6 +2591,7 @@ body::after {
2378
2591
  background: rgba(255, 255, 255, 0.75);
2379
2592
  position: relative;
2380
2593
  box-shadow: 0 2px 6px rgba(31, 26, 23, 0.04);
2594
+ contain: layout style paint;
2381
2595
  }
2382
2596
 
2383
2597
  .session-msg.user {
@@ -2549,6 +2763,44 @@ body::after {
2549
2763
  .session-toolbar-group.session-toolbar-actions .btn-tool {
2550
2764
  width: 100%;
2551
2765
  }
2766
+
2767
+ .trash-item-header {
2768
+ flex-direction: column;
2769
+ align-items: stretch;
2770
+ gap: 10px;
2771
+ }
2772
+
2773
+ .trash-item-mainline {
2774
+ flex-direction: column;
2775
+ align-items: flex-start;
2776
+ gap: 6px;
2777
+ }
2778
+
2779
+ .trash-item-side {
2780
+ width: 100%;
2781
+ min-width: 0;
2782
+ align-items: stretch;
2783
+ gap: 10px;
2784
+ }
2785
+
2786
+ .trash-item-actions {
2787
+ display: grid;
2788
+ grid-template-columns: repeat(2, minmax(0, 1fr));
2789
+ justify-content: flex-start;
2790
+ width: 100%;
2791
+ }
2792
+
2793
+ .trash-item-actions .btn-mini {
2794
+ width: 100%;
2795
+ min-height: 40px;
2796
+ display: inline-flex;
2797
+ align-items: center;
2798
+ justify-content: center;
2799
+ }
2800
+
2801
+ .trash-item-time {
2802
+ text-align: right;
2803
+ }
2552
2804
  }
2553
2805
 
2554
2806
  .btn[disabled] {
@@ -2632,6 +2884,22 @@ body::after {
2632
2884
  letter-spacing: -0.01em;
2633
2885
  }
2634
2886
 
2887
+ .confirm-dialog {
2888
+ max-width: 460px;
2889
+ }
2890
+
2891
+ .confirm-dialog-message {
2892
+ font-size: var(--font-size-body);
2893
+ line-height: 1.7;
2894
+ color: var(--color-text-secondary);
2895
+ white-space: pre-wrap;
2896
+ }
2897
+
2898
+ .confirm-dialog-actions {
2899
+ margin-top: var(--spacing-lg);
2900
+ justify-content: flex-end;
2901
+ }
2902
+
2635
2903
  .install-list {
2636
2904
  display: flex;
2637
2905
  flex-direction: column;
@@ -2843,6 +3111,119 @@ body::after {
2843
3111
  line-height: 1.4;
2844
3112
  }
2845
3113
 
3114
+
3115
+ .agents-diff-hint {
3116
+ margin-top: 6px;
3117
+ color: var(--color-text-tertiary);
3118
+ font-size: var(--font-size-caption);
3119
+ }
3120
+
3121
+ .agents-diff-save-alert {
3122
+ margin-bottom: 8px;
3123
+ padding: 8px 10px;
3124
+ border-radius: var(--radius-sm);
3125
+ border: 1px solid rgba(238, 178, 90, 0.45);
3126
+ background: rgba(255, 236, 204, 0.72);
3127
+ color: #8d5b31;
3128
+ font-size: var(--font-size-caption);
3129
+ font-weight: var(--font-weight-secondary);
3130
+ }
3131
+
3132
+ .agents-diff-summary {
3133
+ display: flex;
3134
+ align-items: center;
3135
+ gap: 8px;
3136
+ margin-bottom: 8px;
3137
+ font-size: var(--font-size-caption);
3138
+ color: var(--color-text-tertiary);
3139
+ }
3140
+
3141
+ .agents-diff-stat {
3142
+ display: inline-flex;
3143
+ align-items: center;
3144
+ gap: 4px;
3145
+ padding: 2px 8px;
3146
+ border-radius: 999px;
3147
+ border: 1px solid transparent;
3148
+ font-weight: var(--font-weight-secondary);
3149
+ }
3150
+
3151
+ .agents-diff-stat.add {
3152
+ color: #2b6a3b;
3153
+ background: rgba(57, 181, 97, 0.12);
3154
+ border-color: rgba(57, 181, 97, 0.2);
3155
+ }
3156
+
3157
+ .agents-diff-stat.del {
3158
+ color: #8a2f36;
3159
+ background: rgba(220, 95, 108, 0.12);
3160
+ border-color: rgba(220, 95, 108, 0.2);
3161
+ }
3162
+
3163
+
3164
+ .agents-diff-empty {
3165
+ padding: 10px 12px;
3166
+ font-size: var(--font-size-caption);
3167
+ color: var(--color-text-tertiary);
3168
+ border: 1px dashed var(--color-border-soft);
3169
+ border-radius: var(--radius-sm);
3170
+ background: rgba(255, 255, 255, 0.6);
3171
+ }
3172
+
3173
+ .agents-diff-view {
3174
+ border: 1px solid var(--color-border-soft);
3175
+ border-radius: var(--radius-sm);
3176
+ background: rgba(255, 255, 255, 0.7);
3177
+ font-family: var(--font-family-mono);
3178
+ font-size: 12px;
3179
+ line-height: 1.55;
3180
+ max-height: min(32vh, 280px);
3181
+ overflow: auto;
3182
+ }
3183
+
3184
+
3185
+ .agents-diff-editor {
3186
+ min-height: min(60vh, 520px);
3187
+ max-height: min(65vh, 620px);
3188
+ }
3189
+
3190
+ .agents-diff-line {
3191
+ display: grid;
3192
+ grid-template-columns: 16px 1fr;
3193
+ gap: 8px;
3194
+ padding: 2px 10px;
3195
+ align-items: start;
3196
+ }
3197
+
3198
+ .agents-diff-line + .agents-diff-line {
3199
+ border-top: none;
3200
+ }
3201
+
3202
+ .agents-diff-line.add {
3203
+ background: rgba(57, 181, 97, 0.08);
3204
+ }
3205
+
3206
+ .agents-diff-line.del {
3207
+ background: rgba(220, 95, 108, 0.1);
3208
+ }
3209
+
3210
+ .agents-diff-line.context {
3211
+ background: transparent;
3212
+ }
3213
+
3214
+
3215
+ .agents-diff-line-sign {
3216
+ text-align: center;
3217
+ color: var(--color-text-tertiary);
3218
+ min-height: 20px;
3219
+ }
3220
+
3221
+ .agents-diff-line-text {
3222
+ white-space: pre-wrap;
3223
+ word-break: break-word;
3224
+ color: var(--color-text-primary);
3225
+ }
3226
+
2846
3227
  .form-input:disabled,
2847
3228
  .form-input[readonly] {
2848
3229
  background: linear-gradient(to right, var(--color-bg) 0%, rgba(247, 241, 232, 0.5) 100%);
@@ -3827,6 +4208,21 @@ textarea:focus-visible {
3827
4208
  }
3828
4209
 
3829
4210
  @media (max-width: 540px) {
4211
+ .session-item-copy.session-item-pin {
4212
+ width: 44px;
4213
+ height: 44px;
4214
+ min-width: 44px;
4215
+ min-height: 44px;
4216
+ padding: 10px;
4217
+ transform: none;
4218
+ }
4219
+
4220
+ .session-item-copy.session-item-pin svg,
4221
+ .session-item-copy.session-item-pin .pin-icon {
4222
+ width: 16px;
4223
+ height: 16px;
4224
+ }
4225
+
3830
4226
  body {
3831
4227
  padding: var(--spacing-md) var(--spacing-sm);
3832
4228
  }
@@ -3886,6 +4282,7 @@ textarea:focus-visible {
3886
4282
  .session-item {
3887
4283
  min-height: 75px;
3888
4284
  height: 75px;
4285
+ contain-intrinsic-size: 75px;
3889
4286
  padding: 12px 14px;
3890
4287
  }
3891
4288
 
@@ -3936,6 +4333,79 @@ textarea:focus-visible {
3936
4333
  align-items: center;
3937
4334
  }
3938
4335
 
4336
+ .trash-item.session-item {
4337
+ min-height: auto;
4338
+ height: auto;
4339
+ contain-intrinsic-size: auto;
4340
+ }
4341
+
4342
+ .trash-item-header {
4343
+ flex-direction: column;
4344
+ align-items: stretch;
4345
+ gap: 10px;
4346
+ }
4347
+
4348
+ .trash-item-mainline {
4349
+ flex-direction: column;
4350
+ align-items: flex-start;
4351
+ gap: 6px;
4352
+ }
4353
+
4354
+ .trash-item-side {
4355
+ width: 100%;
4356
+ min-width: 0;
4357
+ align-items: stretch;
4358
+ gap: 10px;
4359
+ padding-top: 8px;
4360
+ border-top: 1px dashed rgba(216, 201, 184, 0.55);
4361
+ }
4362
+
4363
+ .trash-item-actions {
4364
+ display: grid;
4365
+ grid-template-columns: repeat(2, minmax(0, 1fr));
4366
+ justify-content: flex-start;
4367
+ width: 100%;
4368
+ }
4369
+
4370
+ .trash-item-actions .btn-mini {
4371
+ width: 100%;
4372
+ min-height: 44px;
4373
+ display: inline-flex;
4374
+ align-items: center;
4375
+ justify-content: center;
4376
+ }
4377
+
4378
+ .trash-item .session-count-badge {
4379
+ align-self: flex-start;
4380
+ margin-top: 0;
4381
+ }
4382
+
4383
+ .trash-item-title {
4384
+ -webkit-line-clamp: 3;
4385
+ max-height: none;
4386
+ white-space: normal;
4387
+ text-overflow: clip;
4388
+ overflow: hidden;
4389
+ }
4390
+
4391
+ .trash-item-meta {
4392
+ margin-top: 6px;
4393
+ margin-bottom: 0;
4394
+ gap: 6px;
4395
+ align-items: center;
4396
+ }
4397
+
4398
+ .trash-item-time {
4399
+ padding-top: 2px;
4400
+ line-height: 1.35;
4401
+ text-align: right;
4402
+ }
4403
+
4404
+ .trash-item-path {
4405
+ grid-template-columns: 1fr;
4406
+ gap: 4px;
4407
+ }
4408
+
3939
4409
  .card {
3940
4410
  padding: 8px;
3941
4411
  }