@itsyouagency/ui 1.47.0 → 1.48.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.
@@ -12,6 +12,14 @@ export declare const chatLabels: {
12
12
  search: string;
13
13
  request: string;
14
14
  general: string;
15
+ generalChat: string;
16
+ agencyTeam: string;
17
+ generalHint: string;
18
+ generalFirstMessage: string;
19
+ generalFirstMessageHint: string;
20
+ generalDetails: string;
21
+ generalPrivate: string;
22
+ staffInboxHint: string;
15
23
  noRequest: string;
16
24
  selectRequest: string;
17
25
  changeRequest: string;
@@ -20,6 +28,18 @@ export declare const chatLabels: {
20
28
  requestHint: string;
21
29
  all: string;
22
30
  unread: string;
31
+ archived: string;
32
+ archive: string;
33
+ restore: string;
34
+ archiveHint: string;
35
+ archiveError: string;
36
+ noArchived: string;
37
+ noArchivedHint: string;
38
+ edited: string;
39
+ editMessage: string;
40
+ editHint: string;
41
+ editError: string;
42
+ editConflict: string;
23
43
  noChats: string;
24
44
  noChatsHint: string;
25
45
  noChatsAdmin: string;
@@ -88,6 +108,14 @@ export declare const chatLabels: {
88
108
  search: string;
89
109
  request: string;
90
110
  general: string;
111
+ generalChat: string;
112
+ agencyTeam: string;
113
+ generalHint: string;
114
+ generalFirstMessage: string;
115
+ generalFirstMessageHint: string;
116
+ generalDetails: string;
117
+ generalPrivate: string;
118
+ staffInboxHint: string;
91
119
  noRequest: string;
92
120
  selectRequest: string;
93
121
  changeRequest: string;
@@ -96,6 +124,18 @@ export declare const chatLabels: {
96
124
  requestHint: string;
97
125
  all: string;
98
126
  unread: string;
127
+ archived: string;
128
+ archive: string;
129
+ restore: string;
130
+ archiveHint: string;
131
+ archiveError: string;
132
+ noArchived: string;
133
+ noArchivedHint: string;
134
+ edited: string;
135
+ editMessage: string;
136
+ editHint: string;
137
+ editError: string;
138
+ editConflict: string;
99
139
  noChats: string;
100
140
  noChatsHint: string;
101
141
  noChatsAdmin: string;
@@ -5,6 +5,7 @@ export type ChatPerson = {
5
5
  role: ChatRole;
6
6
  email?: string;
7
7
  client?: {
8
+ id?: string;
8
9
  name: string;
9
10
  } | null;
10
11
  };
@@ -12,6 +13,11 @@ export type ChatViewer = ChatPerson & {
12
13
  canManage: boolean;
13
14
  };
14
15
  export type ChatSummary = {
16
+ kind?: 'GROUP' | 'GENERAL';
17
+ isUnstarted?: boolean;
18
+ archived?: boolean;
19
+ editSequence?: number;
20
+ owner?: ChatPerson | null;
15
21
  request?: ChatRequest | null;
16
22
  id: string;
17
23
  title: string;
@@ -26,8 +32,8 @@ export type ChatSummary = {
26
32
  body: string;
27
33
  createdAt: string;
28
34
  } | null;
29
- createdAt: string;
30
- updatedAt: string;
35
+ createdAt: string | null;
36
+ updatedAt: string | null;
31
37
  };
32
38
  export type ChatDetail = ChatSummary & {
33
39
  participants: ChatPerson[];
@@ -39,6 +45,8 @@ export type ChatMessage = {
39
45
  senderName: string;
40
46
  senderRole: ChatRole;
41
47
  body: string;
48
+ editSequence?: number;
49
+ editedAt?: string | null;
42
50
  sequence: number;
43
51
  clientMessageId: string;
44
52
  createdAt: string;
@@ -0,0 +1,12 @@
1
+ export type NotificationProps = {
2
+ apiBaseUrl: string;
3
+ audience: 'admin' | 'client' | 'model';
4
+ identity: string;
5
+ locale?: 'en' | 'de';
6
+ inboxHref?: string;
7
+ pitchUrl?: (id: string) => string;
8
+ /** Overrides the hint under the empty state, e.g. what will show up here. */
9
+ emptyHint?: string;
10
+ };
11
+ export declare function NotificationBell(props: NotificationProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare function NotificationInbox(props: NotificationProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,33 @@
1
+ export type NotificationItem = {
2
+ id: string;
3
+ kind: string;
4
+ title: string;
5
+ description: string;
6
+ createdAt: string;
7
+ read: boolean;
8
+ resolved: boolean;
9
+ href: string;
10
+ pitchId?: string | null;
11
+ };
12
+ type Feed = {
13
+ items: NotificationItem[];
14
+ unreadCount: number;
15
+ openCount: number;
16
+ nextCursor: string | null;
17
+ asOf: string;
18
+ };
19
+ export default function useNotificationFeed(url: string, identity: string, filter: string): {
20
+ feed: Feed;
21
+ error: boolean;
22
+ actionError: boolean;
23
+ busy: string;
24
+ loading: boolean;
25
+ refresh: () => void;
26
+ more: () => void;
27
+ act: (operation: "read" | "resolve", target: {
28
+ id: string;
29
+ } | {
30
+ before: string;
31
+ }) => Promise<void>;
32
+ };
33
+ export {};
@@ -0,0 +1,6 @@
1
+ export default function OrderReviews({ apiBaseUrl, orderId, locale, active, }: {
2
+ apiBaseUrl: string;
3
+ orderId: string;
4
+ locale?: 'de' | 'en';
5
+ active?: boolean;
6
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ /** Native radio controls keep star selection usable by keyboard and touch. */
2
+ export default function StarRating({ value, onChange, disabled, label, locale, }: {
3
+ value: number;
4
+ onChange?: (value: number) => void;
5
+ disabled?: boolean;
6
+ label: string;
7
+ locale?: 'de' | 'en';
8
+ }): import("react/jsx-runtime").JSX.Element;
@@ -13,7 +13,7 @@ export default function DataRegion({ children, loading, updating, error, hasData
13
13
  minHeight?: number | string;
14
14
  className?: string;
15
15
  }): import("react/jsx-runtime").JSX.Element;
16
- export declare function ListSkeleton({ rows, rowHeight }: {
16
+ export declare function ListSkeleton({ rows, rowHeight, }: {
17
17
  rows?: number;
18
18
  rowHeight?: number;
19
19
  }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,46 @@
1
+ import { ReactNode } from 'react';
2
+ import { IconType } from '../base/Icon';
3
+ export type FaqQuestion = {
4
+ q: string;
5
+ a: ReactNode;
6
+ /** Extra search terms that do not appear in the text. */
7
+ keywords?: string;
8
+ };
9
+ export type FaqTopic = {
10
+ id: string;
11
+ title: string;
12
+ intro: string;
13
+ icon?: IconType;
14
+ items: FaqQuestion[];
15
+ };
16
+ export type FaqLabels = {
17
+ searchLabel: string;
18
+ searchPlaceholder: string;
19
+ clearSearch: string;
20
+ topics: string;
21
+ allTopics: string;
22
+ chooseTopic: string;
23
+ answers: (count: number) => string;
24
+ resultsFor: (query: string) => string;
25
+ questions: (count: number) => string;
26
+ emptyTitle: string;
27
+ emptyDescription: string;
28
+ resetSearch: string;
29
+ };
30
+ export type FaqSupport = {
31
+ title: string;
32
+ description: ReactNode;
33
+ /** Buttons or links, e.g. to support or the chat. */
34
+ actions: ReactNode;
35
+ icon?: IconType;
36
+ };
37
+ /** Help center: topic navigation, full-text search and one-open accordion. */
38
+ export default function FaqCenter({ topics: allTopics, eyebrow, title, subtitle, support, labels: labelOverrides, initialTopic, }: {
39
+ topics: FaqTopic[];
40
+ eyebrow?: string;
41
+ title: string;
42
+ subtitle?: string;
43
+ support?: FaqSupport;
44
+ labels?: Partial<FaqLabels>;
45
+ initialTopic?: string;
46
+ }): import("react/jsx-runtime").JSX.Element;
@@ -3,9 +3,12 @@ export type SearchMultiSelectOption = {
3
3
  label: string;
4
4
  };
5
5
  /** Searchable multi-selection with keyboard navigation and a compact summary. */
6
- export default function SearchMultiSelect({ label, options, value, onChange, }: {
6
+ export default function SearchMultiSelect({ label, options, value, onChange, placeholder, noResultsMessage, toggleLabel, }: {
7
7
  label: string;
8
8
  options: SearchMultiSelectOption[];
9
9
  value: string[];
10
10
  onChange: (values: string[]) => void;
11
+ placeholder?: string;
12
+ noResultsMessage?: string;
13
+ toggleLabel?: string;
11
14
  }): import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,8 @@
1
1
  import { WorkspaceNav as Navigation } from './navigation';
2
- export default function WorkspaceNav({ nav, selectedPath, close, label, }: {
2
+ export default function WorkspaceNav({ nav, selectedPath, close, label, showGroupLabels, }: {
3
3
  nav: Navigation;
4
4
  selectedPath: string;
5
5
  close?: () => void;
6
6
  label?: string;
7
+ showGroupLabels?: boolean;
7
8
  }): import("react/jsx-runtime").JSX.Element;
@@ -3,6 +3,7 @@ export { default as NotificationMenu, type NotificationMenuProps, } from './Noti
3
3
  export { default as CommandMenu } from './CommandMenu';
4
4
  export { default as PageHeader } from './PageHeader';
5
5
  export { default as Panel, type PanelProps } from './Panel';
6
+ export { default as FaqCenter, type FaqTopic, type FaqQuestion, type FaqLabels, type FaqSupport, } from './FaqCenter';
6
7
  export { default as FilterTabs, type FilterTabsProps, type FilterOption, } from './FilterTabs';
7
8
  export { default as Pagination, type PaginationProps, } from './Pagination';
8
9
  export { default as MetricCard } from './MetricCard';
@@ -25,3 +26,4 @@ export { default as SearchMultiSelect, type SearchMultiSelectOption, } from './S
25
26
  export { default as RequestResources, type RequestResource, } from '../request-files/RequestResources';
26
27
  export { default as RequestContracts, type RequestClientContract, } from '../request-files/RequestContracts';
27
28
  export { default as FileDownloadButton } from '../request-files/FileDownloadButton';
29
+ export { NotificationBell, NotificationInbox, type NotificationProps } from '../notifications/Notifications';
@@ -8,6 +8,7 @@ export declare function flattenNavigation(nav: WorkspaceNav): WorkspaceRoute[];
8
8
  export declare function findActiveRoute(nav: WorkspaceNav, path: string): WorkspaceRoute;
9
9
  export declare const workspaceLabels: {
10
10
  navigation: string;
11
+ secondaryNavigation: string;
11
12
  openNavigation: string;
12
13
  closeNavigation: string;
13
14
  skipToContent: string;
package/dist/index.d.ts CHANGED
@@ -7,3 +7,5 @@ export * from './utils/validation';
7
7
  export * from './layouts';
8
8
  export * from './components/workspace';
9
9
  export * from './components/chat';
10
+ export { default as StarRating } from './components/reviews/StarRating';
11
+ export { default as OrderReviews } from './components/reviews/OrderReviews';