@itsyouagency/ui 1.47.0 → 1.49.0

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.
@@ -189,6 +189,9 @@
189
189
  font-weight: 600;
190
190
  letter-spacing: 1.4px;
191
191
  }
192
+ .ui-sidebar-actions .ui-nav {
193
+ padding: 0;
194
+ }
192
195
  .ui-sidebar-sign-out {
193
196
  width: 100%;
194
197
  text-align: left;
@@ -506,32 +509,68 @@
506
509
  width: max-content;
507
510
  min-width: 100%;
508
511
  }
509
- .ui-content-tab {
512
+ .ui-content-tab,
513
+ .ui-filter-tabs-underline .ui-filter-chip {
514
+ position: relative;
510
515
  display: inline-flex;
516
+ flex-shrink: 0;
511
517
  align-items: center;
512
518
  justify-content: center;
513
519
  gap: 8px;
514
520
  min-height: 52px;
515
521
  padding: 12px 2px;
516
- border-bottom: 2px solid transparent;
522
+ border: 0;
523
+ border-radius: 0;
524
+ background: transparent;
525
+ box-shadow: none;
526
+ outline: none;
517
527
  color: rgb(var(--ui-gray-500));
528
+ font-family: inherit;
518
529
  font-size: 13px;
519
530
  font-weight: 500;
531
+ line-height: 20px;
520
532
  white-space: nowrap;
521
533
  cursor: pointer;
522
534
  }
523
- .ui-content-tab:hover {
535
+ .ui-content-tab::after,
536
+ .ui-filter-tabs-underline .ui-filter-chip::after {
537
+ content: '';
538
+ position: absolute;
539
+ inset: auto 0 0;
540
+ height: 2px;
541
+ border-radius: 2px 2px 0 0;
542
+ background: rgb(var(--ui-gray-900));
543
+ opacity: 0;
544
+ }
545
+ .ui-content-tab:hover,
546
+ .ui-filter-tabs-underline .ui-filter-chip:hover {
547
+ background: transparent;
524
548
  color: rgb(var(--ui-gray-900));
525
549
  }
526
- .ui-content-tab[aria-selected='true'] {
527
- border-bottom-color: rgb(var(--ui-gray-900));
550
+ .ui-content-tab[aria-selected='true'],
551
+ .ui-filter-tabs-underline .ui-filter-chip[aria-pressed='true'] {
552
+ background: transparent;
553
+ box-shadow: none;
528
554
  color: rgb(var(--ui-gray-900));
555
+ font-weight: 500;
529
556
  }
530
- .ui-content-tab:focus-visible {
531
- outline: 2px solid rgb(var(--ui-gray-900));
532
- outline-offset: -4px;
557
+ .ui-content-tab[aria-selected='true']::after,
558
+ .ui-filter-tabs-underline .ui-filter-chip[aria-pressed='true']::after {
559
+ opacity: 1;
560
+ }
561
+ /* Keep keyboard focus inside the strip, with priority over shell focus rules. */
562
+ .ui-content-tabs-list .ui-content-tab[data-focus],
563
+ .ui-filter-tabs .ui-filter-chip:focus-visible,
564
+ .ui-segmented-tabs-list .ui-segmented-tab[data-focus] {
565
+ outline: 2px solid rgb(var(--ui-gray-500));
566
+ outline-offset: -2px;
533
567
  border-radius: 4px;
534
568
  }
569
+ .ui-content-tabs-list .ui-content-tab:focus:not([data-focus]),
570
+ .ui-filter-tabs .ui-filter-chip:focus:not(:focus-visible),
571
+ .ui-segmented-tabs-list .ui-segmented-tab:focus:not([data-focus]) {
572
+ outline: none;
573
+ }
535
574
  .ui-content-tab-count {
536
575
  display: inline-flex;
537
576
  align-items: center;
@@ -545,7 +584,9 @@
545
584
  font-size: 10px;
546
585
  font-variant-numeric: tabular-nums;
547
586
  }
548
- .ui-content-tab[aria-selected='true'] .ui-content-tab-count {
587
+ .ui-content-tab[aria-selected='true'] .ui-content-tab-count,
588
+ .ui-filter-tabs .ui-filter-chip[aria-pressed='true'] .ui-content-tab-count,
589
+ .ui-segmented-tab[aria-selected='true'] .ui-content-tab-count {
549
590
  color: var(--ui-white);
550
591
  background: rgb(var(--ui-gray-900));
551
592
  }
@@ -553,7 +594,8 @@
553
594
  .ui-content-tabs-list {
554
595
  gap: 18px;
555
596
  }
556
- .ui-content-tab {
597
+ .ui-content-tab,
598
+ .ui-filter-tabs-underline .ui-filter-chip {
557
599
  gap: 5px;
558
600
  font-size: 12px;
559
601
  }
@@ -796,7 +838,16 @@
796
838
  .ui-content table td :is(.font-semibold, .font-medium) {
797
839
  color: rgb(var(--ui-gray-700));
798
840
  }
799
- .ui-filter-chip {
841
+ .ui-filter-chip,
842
+ .ui-segmented-tab {
843
+ display: inline-flex;
844
+ align-items: center;
845
+ justify-content: center;
846
+ gap: 8px;
847
+ cursor: pointer;
848
+ font-family: inherit;
849
+ font-weight: 600;
850
+ line-height: 20px;
800
851
  min-height: 33px;
801
852
  padding: 6px 12px;
802
853
  border: 1px solid transparent;
@@ -805,11 +856,13 @@
805
856
  color: rgb(var(--ui-gray-500));
806
857
  white-space: nowrap;
807
858
  }
808
- .ui-filter-chip:hover {
859
+ .ui-filter-chip:hover,
860
+ .ui-segmented-tab:hover {
809
861
  background: rgb(var(--ui-gray-100));
810
862
  color: rgb(var(--ui-gray-700));
811
863
  }
812
- .ui-filter-chip[aria-pressed='true'] {
864
+ .ui-filter-chip[aria-pressed='true'],
865
+ .ui-segmented-tab[aria-selected='true'] {
813
866
  background: var(--ui-white);
814
867
  border-color: rgb(var(--ui-gray-200));
815
868
  color: rgb(var(--ui-gray-900));
@@ -824,7 +877,8 @@
824
877
  gap: 14px;
825
878
  padding: 8px 0;
826
879
  }
827
- .ui-filter-tabs {
880
+ .ui-filter-tabs,
881
+ .ui-segmented-tabs-list {
828
882
  display: flex;
829
883
  align-items: center;
830
884
  gap: 3px;
@@ -835,11 +889,11 @@
835
889
  border-radius: 8px;
836
890
  background: rgb(var(--ui-gray-100));
837
891
  }
838
- .ui-filter-tabs button span {
839
- margin-left: 5px;
840
- font-size: 10px;
841
- font-variant-numeric: tabular-nums;
842
- }
892
+ .ui-filter-tabs .ui-content-tab-count { margin-left: 0; }
893
+ .ui-segmented-tabs { display: grid; gap: 24px; min-width: 0; width: 100%; }
894
+ .ui-segmented-tabs-scroll { display: flex; justify-content: center; min-width: 0; }
895
+ .ui-segmented-tabs-list { width: 100%; max-width: 448px; }
896
+ .ui-segmented-tab { flex: 1; flex-shrink: 0; }
843
897
  .ui-status {
844
898
  display: inline-flex;
845
899
  align-items: center;
@@ -907,6 +961,14 @@
907
961
  border-radius: 50%;
908
962
  color: rgb(var(--ui-gray-500));
909
963
  }
964
+ .ui-panel .ui-empty-state,
965
+ .ui-notification-menu .ui-empty-state,
966
+ .ui-panel .ui-list-skeleton,
967
+ .ui-notification-menu .ui-list-skeleton {
968
+ border: 0;
969
+ border-radius: 0;
970
+ background: transparent;
971
+ }
910
972
  .ui-inline-error {
911
973
  display: flex;
912
974
  flex-wrap: wrap;
@@ -1906,24 +1968,17 @@
1906
1968
  grid-template-columns: repeat(2, minmax(0, 1fr));
1907
1969
  gap: 18px;
1908
1970
  }
1909
- .ui-filter-tabs-underline {
1971
+ .ui-filter-tabs.ui-filter-tabs-underline {
1910
1972
  border: 0;
1911
1973
  border-bottom: 1px solid rgb(var(--ui-gray-200));
1912
1974
  padding: 0;
1975
+ gap: 24px;
1913
1976
  border-radius: 0;
1914
1977
  background: transparent;
1978
+ scrollbar-width: thin;
1915
1979
  }
1916
- .ui-filter-tabs-underline .ui-filter-chip {
1917
- border: 0;
1918
- border-bottom: 2px solid transparent;
1919
- border-radius: 0;
1920
- padding: 12px 16px;
1921
- }
1922
- .ui-filter-tabs-underline
1923
- .ui-filter-chip[aria-pressed='true'] {
1924
- background: transparent;
1925
- border-bottom-color: rgb(var(--ui-gray-900));
1926
- box-shadow: none;
1980
+ @media (max-width: 639px) {
1981
+ .ui-filter-tabs.ui-filter-tabs-underline { gap: 18px; }
1927
1982
  }
1928
1983
  .ui-filter-chip:disabled {
1929
1984
  opacity: 0.5;
@@ -2851,6 +2906,49 @@
2851
2906
  color: #9b9ba6;
2852
2907
  margin-top: 4px;
2853
2908
  }
2909
+ .ui-chat-message-meta {
2910
+ display: flex;
2911
+ align-items: center;
2912
+ justify-content: flex-end;
2913
+ gap: 8px;
2914
+ margin-top: 4px;
2915
+ }
2916
+ .ui-chat-message-meta time {
2917
+ margin-top: 0;
2918
+ flex-wrap: wrap;
2919
+ }
2920
+ .ui-chat-edit-message {
2921
+ display: inline-flex;
2922
+ align-items: center;
2923
+ justify-content: center;
2924
+ width: 28px;
2925
+ height: 28px;
2926
+ border-radius: 5px;
2927
+ color: #d3d4df;
2928
+ flex-shrink: 0;
2929
+ }
2930
+ .ui-chat-edit-message:hover,
2931
+ .ui-chat-edit-message:focus-visible {
2932
+ color: #fff;
2933
+ background: #ffffff20;
2934
+ }
2935
+ .ui-chat-edit-form {
2936
+ display: grid;
2937
+ gap: 12px;
2938
+ }
2939
+ .ui-chat-archived-notice {
2940
+ display: flex;
2941
+ gap: 8px;
2942
+ align-items: center;
2943
+ padding: 10px 18px;
2944
+ font-size: 11px;
2945
+ color: rgb(var(--ui-gray-600));
2946
+ background: rgb(var(--ui-gray-50));
2947
+ border-bottom: 1px solid rgb(var(--ui-gray-200));
2948
+ }
2949
+ .ui-chat-archived-notice svg {
2950
+ flex-shrink: 0;
2951
+ }
2854
2952
  .ui-chat-message[data-own='true'] .ui-chat-bubble {
2855
2953
  background: #292a36;
2856
2954
  border-color: #292a36;
@@ -3520,6 +3618,9 @@ html {
3520
3618
  position: relative;
3521
3619
  min-width: 0;
3522
3620
  }
3621
+ .ui-data-region > .ui-empty-state {
3622
+ min-height: inherit;
3623
+ }
3523
3624
  .ui-refresh-notice {
3524
3625
  position: absolute;
3525
3626
  z-index: 3;
@@ -3564,3 +3665,350 @@ html {
3564
3665
  @media (prefers-reduced-motion: reduce) {
3565
3666
  .ui-skeleton, .ui-update-progress::after { animation: none; }
3566
3667
  }
3668
+
3669
+ /* Shared notification inbox for agency, client and model workspaces. */
3670
+ .ui-notification-inbox { display: grid; gap: 24px; min-width: 0; }
3671
+ .ui-notification-list { margin: 0; padding: 0; list-style: none; }
3672
+ .ui-notification-row { display: flex; gap: 16px; padding: 24px; border-bottom: 1px solid #ececec; background: #fff; }
3673
+ .ui-notification-row:last-child { border-bottom: 0; }
3674
+ .ui-notification-row[data-unread='true'] { background: #fafafa; }
3675
+ .ui-notification-event-icon { width: 40px; height: 40px; flex: 0 0 40px; display: flex; align-items: center; justify-content: center; border: 1px solid #e7e7e7; border-radius: 12px; background: white; color: #393939; }
3676
+ .ui-notification-copy { flex: 1; min-width: 0; }
3677
+ .ui-notification-title { display: block; color: #171717; font-size: 14px; font-weight: 600; line-height: 1.6; overflow-wrap: anywhere; }
3678
+ .ui-notification-title:hover { text-decoration: underline; text-underline-offset: 3px; }
3679
+ .ui-notification-description { margin: 5px 0 0; color: #666; font-size: 13px; line-height: 1.7; white-space: pre-line; overflow-wrap: anywhere; }
3680
+ .ui-notification-meta { margin-top: 7px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; color: #777; font-size: 11px; }
3681
+ .ui-notification-row-actions { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 12px; }
3682
+ .ui-notification-row-actions button, .ui-notification-row-actions a, .ui-notification-heading button { background: none; border: 0; padding: 0; color: #555; font-size: 12px; font-weight: 500; cursor: pointer; }
3683
+ .ui-notification-row-actions button:hover, .ui-notification-row-actions a:hover, .ui-notification-heading button:hover { color: #000; text-decoration: underline; text-underline-offset: 3px; }
3684
+ .ui-notification-row-actions button:disabled, .ui-notification-heading button:disabled { opacity: .45; cursor: wait; }
3685
+ .ui-notification-unread-dot { flex: 0 0 6px; width: 6px; height: 6px; margin-top: 9px; border-radius: 50%; background: #171717; }
3686
+ .ui-notification-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px; border-bottom: 1px solid #ececec; }
3687
+ .ui-notification-heading h2 { font-size: 14px; font-weight: 600; }
3688
+ .ui-notification-heading p { color: #777; font-size: 11px; margin-top: 4px; }
3689
+ .ui-notification-heading button { max-width: 130px; text-align: right; }
3690
+ .ui-notification-footer { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 18px; border-top: 1px solid #ececec; font-size: 13px; font-weight: 500; background: white; }
3691
+ .ui-notification-footer:hover { background: #fafafa; }
3692
+ .ui-notification-notice, .ui-notification-load { padding: 20px; }
3693
+ .ui-notification-load { display: flex; justify-content: center; border-top: 1px solid #ececec; }
3694
+ .ui-notification-menu .ui-notification-row { padding: 18px 20px; gap: 12px; }
3695
+ .ui-notification-menu .ui-notification-event-icon { width: 34px; height: 34px; flex-basis: 34px; border-radius: 10px; }
3696
+ @media (max-width: 640px) { .ui-notification-row { padding: 18px 16px; gap: 12px; } .ui-notification-event-icon { width: 34px; height: 34px; flex-basis: 34px; } }
3697
+ .ui-notification-row-actions {
3698
+ min-height: 24px;
3699
+ }
3700
+
3701
+ /* Private post-job reviews */
3702
+ .ui-order-reviews { display: grid; gap: 24px; }
3703
+ .ui-reviews-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; }
3704
+ .ui-reviews-heading h2 { color: #171717; font-size: 24px; font-weight: 600; letter-spacing: -.035em; margin: 5px 0 8px; }
3705
+ .ui-reviews-heading p { max-width: 660px; color: #737373; line-height: 1.65; font-size: 14px; }
3706
+ .ui-reviews-heading .ui-reviews-eyebrow { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; }
3707
+ .ui-review-progress { border: 1px solid #e5e5e5; border-radius: 999px; padding: 7px 12px; font-size: 12px; color: #525252; white-space: nowrap; }
3708
+ .ui-review-privacy { display: flex; align-items: center; gap: 10px; padding: 14px 18px; background: #f5f5f5; border: 1px solid #e5e5e5; border-radius: 12px; font-size: 13px; color: #525252; }
3709
+ .ui-review-privacy svg { flex-shrink: 0; }
3710
+ .ui-review-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr)); align-items: start; gap: 20px; }
3711
+ .ui-review-card { border: 1px solid #e5e5e5; border-radius: 16px; background: white; overflow: hidden; min-width: 0; }
3712
+ .ui-review-card-header { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; padding: 22px 24px; border-bottom: 1px solid #ededed; }
3713
+ .ui-review-card-header > div { flex: 1; min-width: 100px; }
3714
+ .ui-review-card-header h3 { font-size: 15px; font-weight: 600; color: #171717; overflow-wrap: anywhere; }
3715
+ .ui-review-card-header p { font-size: 12px; color: #737373; margin-top: 4px; }
3716
+ .ui-review-avatar { width: 42px; height: 42px; border: 1px solid #e5e5e5; background: #fafafa; border-radius: 50%; display: inline-flex; justify-content: center; align-items: center; font-weight: 600; font-size: 13px; color: #404040; flex-shrink: 0; }
3717
+ .ui-review-form { display: grid; gap: 20px; padding: 24px; }
3718
+ .ui-star-rating-field { border: 0; padding: 0; margin: 0; min-width: 0; }
3719
+ .ui-star-rating-field legend { margin-bottom: 12px; }
3720
+ .ui-star-rating { display: inline-flex; align-items: center; gap: 5px; color: #171717; }
3721
+ .ui-star-choice { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; position: relative; cursor: pointer; color: #a3a3a3; border-radius: 8px; }
3722
+ .ui-star-choice[data-selected="true"] { color: #171717; }
3723
+ .ui-star-choice:hover { background: #f5f5f5; color: #171717; }
3724
+ .ui-star-choice input { position: absolute; inset: 0; opacity: 0; cursor: pointer; margin: 0; }
3725
+ .ui-star-choice input:focus-visible + svg { outline: 2px solid #171717; outline-offset: 4px; border-radius: 3px; }
3726
+ .ui-star-rating-field:disabled { opacity: .5; }
3727
+ .ui-star-rating-field:disabled .ui-star-choice, .ui-star-rating-field:disabled input { cursor: wait; }
3728
+ .ui-rating-value { font-size: 13px; color: #737373; margin-left: 12px; white-space: nowrap; }
3729
+ .ui-review-scale { margin-top: -15px; font-size: 11px; color: #737373; }
3730
+ .ui-review-form textarea { resize: vertical; min-height: 100px; }
3731
+ .ui-review-submit { display: flex; justify-content: flex-end; }
3732
+ .ui-review-submit .ui-button { width: auto; }
3733
+ .ui-review-result { padding: 24px; display: grid; gap: 16px; }
3734
+ .ui-review-score { display: flex; align-items: center; gap: 14px; }
3735
+ .ui-review-score strong { font-size: 14px; }
3736
+ .ui-review-comment { white-space: pre-wrap; overflow-wrap: anywhere; color: #525252; line-height: 1.7; font-size: 14px; }
3737
+ .ui-review-result time { color: #737373; font-size: 12px; }
3738
+ .ui-review-awaiting { padding: 24px; font-size: 13px; color: #737373; }
3739
+ .ui-reviews-loading { display: grid; gap: 24px; }
3740
+ @media (max-width: 640px) {
3741
+ .ui-reviews-heading { flex-direction: column; gap: 14px; }
3742
+ .ui-reviews-heading h2 { font-size: 22px; }
3743
+ .ui-review-card-header, .ui-review-form, .ui-review-result { padding: 20px; }
3744
+ .ui-review-card-header > .ui-status { margin-left: 54px; }
3745
+ .ui-star-rating { gap: 2px; }
3746
+ .ui-rating-value { margin-left: 5px; }
3747
+ .ui-review-submit .ui-button { width: 100%; }
3748
+ }
3749
+
3750
+ /* FAQ / help center (FaqCenter) */
3751
+ .ui-faq {
3752
+ display: grid;
3753
+ gap: 24px;
3754
+ }
3755
+ .ui-faq > .ui-page-header {
3756
+ margin-bottom: 0;
3757
+ }
3758
+ .ui-faq-search {
3759
+ display: flex;
3760
+ align-items: center;
3761
+ gap: 12px;
3762
+ }
3763
+ .ui-faq-search-input {
3764
+ flex: 1;
3765
+ min-width: 0;
3766
+ }
3767
+ .ui-faq-search-input input {
3768
+ background: #fff;
3769
+ }
3770
+ .ui-faq-layout {
3771
+ display: grid;
3772
+ grid-template-columns: 240px minmax(0, 1fr);
3773
+ gap: 32px;
3774
+ align-items: start;
3775
+ }
3776
+ .ui-faq-sidebar {
3777
+ position: sticky;
3778
+ top: 88px;
3779
+ }
3780
+ .ui-faq-topics h2 {
3781
+ font-size: 10px;
3782
+ font-weight: 600;
3783
+ text-transform: uppercase;
3784
+ letter-spacing: 0.1em;
3785
+ color: rgb(var(--ui-gray-500));
3786
+ padding: 2px 12px 12px;
3787
+ }
3788
+ .ui-faq-topic {
3789
+ display: flex;
3790
+ align-items: center;
3791
+ gap: 10px;
3792
+ width: 100%;
3793
+ min-height: 42px;
3794
+ padding: 10px 12px;
3795
+ border-radius: 7px;
3796
+ font-size: 12px;
3797
+ text-align: left;
3798
+ color: rgb(var(--ui-gray-600));
3799
+ cursor: pointer;
3800
+ }
3801
+ .ui-faq-topic + .ui-faq-topic {
3802
+ margin-top: 4px;
3803
+ }
3804
+ .ui-faq-topic svg {
3805
+ flex-shrink: 0;
3806
+ }
3807
+ .ui-faq-topic > span {
3808
+ flex: 1;
3809
+ }
3810
+ .ui-faq-topic small {
3811
+ font-size: 10px;
3812
+ font-variant-numeric: tabular-nums;
3813
+ color: rgb(var(--ui-gray-500));
3814
+ }
3815
+ .ui-faq-topic:hover {
3816
+ background: rgb(var(--ui-gray-100));
3817
+ }
3818
+ .ui-faq-topic[aria-pressed='true'] {
3819
+ background: rgb(var(--ui-gray-900));
3820
+ color: #fff;
3821
+ font-weight: 500;
3822
+ }
3823
+ .ui-faq-topic[aria-pressed='true'] small {
3824
+ color: rgb(var(--ui-gray-300));
3825
+ }
3826
+ .ui-faq-content {
3827
+ display: grid;
3828
+ gap: 24px;
3829
+ min-width: 0;
3830
+ }
3831
+ .ui-faq-mobile-topic {
3832
+ display: none;
3833
+ }
3834
+ .ui-faq-section {
3835
+ min-width: 0;
3836
+ }
3837
+ .ui-faq-section-header {
3838
+ display: flex;
3839
+ align-items: flex-start;
3840
+ justify-content: space-between;
3841
+ gap: 16px;
3842
+ margin-bottom: 14px;
3843
+ }
3844
+ .ui-faq-section-header h2 {
3845
+ font-size: 16px;
3846
+ line-height: 1.5;
3847
+ font-weight: 600;
3848
+ color: rgb(var(--ui-gray-900));
3849
+ }
3850
+ .ui-faq-section-header p {
3851
+ margin-top: 3px;
3852
+ font-size: 12px;
3853
+ line-height: 1.6;
3854
+ color: rgb(var(--ui-gray-500));
3855
+ }
3856
+ .ui-faq-section-header > span {
3857
+ flex-shrink: 0;
3858
+ padding-top: 4px;
3859
+ font-size: 11px;
3860
+ color: rgb(var(--ui-gray-500));
3861
+ }
3862
+ .ui-faq-question + .ui-faq-question {
3863
+ border-top: 1px solid rgb(var(--ui-gray-200));
3864
+ }
3865
+ .ui-faq-question-button {
3866
+ display: flex;
3867
+ align-items: center;
3868
+ justify-content: space-between;
3869
+ gap: 20px;
3870
+ width: 100%;
3871
+ min-height: 58px;
3872
+ padding: 17px 20px;
3873
+ text-align: left;
3874
+ font-size: 13px;
3875
+ line-height: 1.6;
3876
+ font-weight: 500;
3877
+ color: rgb(var(--ui-gray-800));
3878
+ cursor: pointer;
3879
+ }
3880
+ .ui-faq-question-button svg {
3881
+ flex-shrink: 0;
3882
+ color: rgb(var(--ui-gray-500));
3883
+ }
3884
+ .ui-faq-question-button:hover {
3885
+ background: rgb(var(--ui-gray-50));
3886
+ }
3887
+ .ui-faq-question-button:focus-visible {
3888
+ outline: 2px solid rgb(var(--ui-gray-500));
3889
+ outline-offset: -3px;
3890
+ }
3891
+ .ui-faq-question[data-open='true'] .ui-faq-question-button {
3892
+ color: rgb(var(--ui-gray-950));
3893
+ }
3894
+ .ui-faq-answer {
3895
+ max-width: 82ch;
3896
+ padding: 0 20px 20px;
3897
+ font-size: 13px;
3898
+ line-height: 1.85;
3899
+ color: rgb(var(--ui-gray-600));
3900
+ overflow-wrap: anywhere;
3901
+ }
3902
+ .ui-faq-answer a {
3903
+ color: rgb(var(--ui-gray-900));
3904
+ }
3905
+ .ui-faq-answer li + li {
3906
+ margin-top: 7px;
3907
+ }
3908
+ .ui-faq-results {
3909
+ display: flex;
3910
+ flex-wrap: wrap;
3911
+ align-items: baseline;
3912
+ gap: 6px;
3913
+ font-size: 12px;
3914
+ overflow-wrap: anywhere;
3915
+ }
3916
+ .ui-faq-results strong {
3917
+ color: rgb(var(--ui-gray-900));
3918
+ font-weight: 600;
3919
+ }
3920
+ .ui-faq-results span {
3921
+ color: rgb(var(--ui-gray-500));
3922
+ }
3923
+ .ui-faq-support {
3924
+ display: flex;
3925
+ align-items: center;
3926
+ gap: 14px;
3927
+ border-top: 1px solid rgb(var(--ui-gray-200));
3928
+ padding-top: 20px;
3929
+ }
3930
+ .ui-faq-support-icon {
3931
+ display: grid;
3932
+ place-items: center;
3933
+ width: 40px;
3934
+ height: 40px;
3935
+ flex-shrink: 0;
3936
+ background: #fff;
3937
+ border: 1px solid rgb(var(--ui-gray-200));
3938
+ border-radius: 9px;
3939
+ color: rgb(var(--ui-gray-600));
3940
+ }
3941
+ .ui-faq-support-copy {
3942
+ flex: 1;
3943
+ min-width: 0;
3944
+ }
3945
+ .ui-faq-support-actions {
3946
+ display: flex;
3947
+ flex-wrap: wrap;
3948
+ gap: 8px;
3949
+ }
3950
+ .ui-faq-support h2 {
3951
+ font-size: 13px;
3952
+ font-weight: 500;
3953
+ color: rgb(var(--ui-gray-900));
3954
+ }
3955
+ .ui-faq-support p {
3956
+ font-size: 12px;
3957
+ line-height: 1.6;
3958
+ color: rgb(var(--ui-gray-500));
3959
+ margin-top: 3px;
3960
+ }
3961
+ @media (max-width: 767px) {
3962
+ .ui-faq {
3963
+ gap: 20px;
3964
+ }
3965
+ .ui-faq-layout {
3966
+ grid-template-columns: minmax(0, 1fr);
3967
+ gap: 0;
3968
+ }
3969
+ .ui-faq-sidebar {
3970
+ display: none;
3971
+ }
3972
+ .ui-faq-mobile-topic {
3973
+ display: grid;
3974
+ gap: 6px;
3975
+ }
3976
+ .ui-faq-mobile-topic label {
3977
+ font-size: 11px;
3978
+ color: rgb(var(--ui-gray-500));
3979
+ }
3980
+ .ui-faq-search {
3981
+ flex-wrap: wrap;
3982
+ gap: 6px;
3983
+ }
3984
+ .ui-faq-search-input {
3985
+ flex-basis: 100%;
3986
+ }
3987
+ .ui-faq-search-clear {
3988
+ margin-left: auto;
3989
+ }
3990
+ .ui-faq-section-header {
3991
+ gap: 10px;
3992
+ }
3993
+ .ui-faq-section-header h2 {
3994
+ font-size: 15px;
3995
+ }
3996
+ .ui-faq-question-button {
3997
+ padding: 14px 16px;
3998
+ gap: 14px;
3999
+ min-height: 54px;
4000
+ }
4001
+ .ui-faq-answer {
4002
+ padding: 0 16px 18px;
4003
+ }
4004
+ .ui-faq-support {
4005
+ flex-wrap: wrap;
4006
+ gap: 12px;
4007
+ }
4008
+ .ui-faq-support-actions {
4009
+ flex-basis: 100%;
4010
+ }
4011
+ .ui-faq-support-actions > div {
4012
+ flex: 1 1 100%;
4013
+ }
4014
+ }
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M4 8v11a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1V8M9 12h6M3 4h18v4H3V4Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
3
+ </svg>
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  declare const map: {
3
+ Archive: React.FC<React.SVGProps<SVGSVGElement>>;
3
4
  Upload: React.FC<React.SVGProps<SVGSVGElement>>;
4
5
  Download: React.FC<React.SVGProps<SVGSVGElement>>;
5
6
  User: React.FC<React.SVGProps<SVGSVGElement>>;
@@ -0,0 +1,11 @@
1
+ import { type ChatApi } from './api';
2
+ import type { ChatMessage } from './types';
3
+ import type { ChatLabels } from './labels';
4
+ export default function ChatMessageEditor({ api, chatId, message, labels: t, onClose, onSaved, }: {
5
+ api: ChatApi;
6
+ chatId: string;
7
+ message: ChatMessage;
8
+ labels: ChatLabels;
9
+ onClose: () => void;
10
+ onSaved: (message: ChatMessage) => void;
11
+ }): import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  import { type ChatApi } from './api';
2
2
  import type { ChatDetail, ChatLocale, ChatMessage, ChatViewer } from './types';
3
3
  import type { ChatLabels } from './labels';
4
- export default function ChatThread({ api, id, viewer, canManage, locale, labels: t, draft, onDraft, onBack, onManage, onRead, sendDraft, sendingInBackground, refresh, }: {
4
+ export default function ChatThread({ api, id, viewer, canManage, locale, labels: t, draft, onDraft, onBack, onManage, onRead, sendDraft, sendingInBackground, refresh, onChanged, onArchived, }: {
5
5
  api: ChatApi;
6
6
  id: string;
7
7
  viewer: ChatViewer;
@@ -16,4 +16,6 @@ export default function ChatThread({ api, id, viewer, canManage, locale, labels:
16
16
  sendDraft: (id: string, body: string) => Promise<ChatMessage>;
17
17
  sendingInBackground: boolean;
18
18
  refresh: number;
19
+ onChanged: () => void;
20
+ onArchived: (chat: ChatDetail) => void;
19
21
  }): import("react/jsx-runtime").JSX.Element;
@@ -4,8 +4,10 @@ export declare class ChatApiError extends Error {
4
4
  constructor(message: string, status: number);
5
5
  }
6
6
  export declare function createChatApi(baseUrl: string): {
7
- list: (q: string, cursor?: string, signal?: AbortSignal, clientRequestId?: string) => Promise<{
7
+ list: (q: string, cursor?: string, signal?: AbortSignal, clientRequestId?: string, archived?: boolean) => Promise<{
8
8
  viewer: ChatViewer;
9
+ generalChat?: ChatSummary | null;
10
+ archivedCount?: number;
9
11
  items: ChatSummary[];
10
12
  nextCursor: string | null;
11
13
  }>;
@@ -32,5 +34,11 @@ export declare function createChatApi(baseUrl: string): {
32
34
  read: (chatId: string, sequence: number) => Promise<{
33
35
  ok: true;
34
36
  }>;
37
+ archive: (chatId: string, archived: boolean) => Promise<ChatDetail>;
38
+ edit: (chatId: string, messageId: string, body: string, editSequence: number) => Promise<ChatMessage>;
39
+ edits: (chatId: string, after: number, signal?: AbortSignal) => Promise<{
40
+ items: ChatMessage[];
41
+ hasMore: boolean;
42
+ }>;
35
43
  };
36
44
  export type ChatApi = ReturnType<typeof createChatApi>;