reflet-sdk 0.1.5 → 0.3.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.
- package/CHANGELOG.md +28 -0
- package/README.md +71 -7
- package/dist/client-BYuSKJw5.js +270 -0
- package/dist/client-BYuSKJw5.js.map +1 -0
- package/dist/client-CSyPxFPK.d.ts +129 -0
- package/dist/client-CSyPxFPK.d.ts.map +1 -0
- package/dist/feedback.d.ts +130 -0
- package/dist/feedback.d.ts.map +1 -0
- package/dist/feedback.js +2547 -0
- package/dist/feedback.js.map +1 -0
- package/dist/index.d.ts +3 -297
- package/dist/index.js +2 -3
- package/dist/react-context-DZw_HHjj.js +85 -0
- package/dist/react-context-DZw_HHjj.js.map +1 -0
- package/dist/react.d.ts +208 -89
- package/dist/react.d.ts.map +1 -0
- package/dist/react.js +1246 -338
- package/dist/react.js.map +1 -1
- package/dist/server.d.ts +18 -16
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +118 -117
- package/dist/server.js.map +1 -1
- package/dist/types-UKPPJGrA.d.ts +273 -0
- package/dist/types-UKPPJGrA.d.ts.map +1 -0
- package/package.json +30 -10
- package/dist/chunk-GD7FQQBT.js +0 -282
- package/dist/chunk-GD7FQQBT.js.map +0 -1
- package/dist/index.js.map +0 -1
package/dist/react.d.ts
CHANGED
|
@@ -1,25 +1,72 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { D as RoadmapItem, E as Roadmap, O as RoadmapLane, _ as OrganizationConfig, d as FeedbackDetail, f as FeedbackItem, g as FeedbackTag, h as FeedbackStatus, i as Comment, o as CreateFeedbackParams, p as FeedbackListParams, r as ChangelogEntry, s as CreateFeedbackResponse, t as AddCommentParams, v as OrganizationSettings, w as RefletUser, x as RefletConfig, y as OrganizationStatus } from "./types-UKPPJGrA.js";
|
|
2
|
+
import { t as Reflet } from "./client-CSyPxFPK.js";
|
|
3
|
+
import { ReactNode } from "react";
|
|
4
|
+
//#region src/react-changelog-widget.d.ts
|
|
5
|
+
interface ChangelogWidgetProps {
|
|
6
|
+
autoOpenForNew?: boolean;
|
|
7
|
+
locale?: string;
|
|
8
|
+
maxEntries?: number;
|
|
9
|
+
mode?: "card" | "popup" | "trigger";
|
|
10
|
+
onClose?: () => void;
|
|
11
|
+
onEntryClick?: (entry: ChangelogEntry) => void;
|
|
12
|
+
onOpen?: () => void;
|
|
13
|
+
position?: "bottom-right" | "bottom-left";
|
|
14
|
+
primaryColor?: string;
|
|
15
|
+
publicKey: string;
|
|
16
|
+
theme?: "light" | "dark" | "auto";
|
|
17
|
+
triggerSelector?: string;
|
|
18
|
+
}
|
|
19
|
+
interface WidgetInstance {
|
|
20
|
+
close: () => void;
|
|
21
|
+
destroy: () => void;
|
|
22
|
+
getUnreadCount: () => number;
|
|
23
|
+
init: () => Promise<void>;
|
|
24
|
+
markAsRead: () => void;
|
|
25
|
+
open: () => void;
|
|
26
|
+
}
|
|
27
|
+
declare global {
|
|
28
|
+
interface Window {
|
|
29
|
+
RefletChangelogWidget?: new (config: ChangelogWidgetProps) => WidgetInstance;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* React component that wraps the Reflet Changelog Widget.
|
|
34
|
+
*
|
|
35
|
+
* Dynamically loads and initializes a RefletChangelogWidget instance.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```tsx
|
|
39
|
+
* import { ChangelogWidget } from 'reflet-sdk/react';
|
|
40
|
+
*
|
|
41
|
+
* export function MyApp() {
|
|
42
|
+
* return <ChangelogWidget publicKey="fb_pub_xxx" mode="card" theme="auto" />;
|
|
43
|
+
* }
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
declare function ChangelogWidget({ publicKey, mode, position, theme, primaryColor, maxEntries, triggerSelector, autoOpenForNew, locale, onOpen, onClose, onEntryClick }: ChangelogWidgetProps): null;
|
|
47
|
+
//#endregion
|
|
48
|
+
//#region src/react-context.d.ts
|
|
6
49
|
interface RefletContextValue {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
50
|
+
baseUrl?: string;
|
|
51
|
+
client: Reflet;
|
|
52
|
+
isReady: boolean;
|
|
53
|
+
publicKey: string;
|
|
54
|
+
setUser: (user: RefletUser | undefined) => void;
|
|
55
|
+
user: RefletUser | undefined;
|
|
56
|
+
userToken: string | undefined;
|
|
11
57
|
}
|
|
58
|
+
declare const RefletContext: import("react").Context<RefletContextValue | null>;
|
|
12
59
|
interface RefletProviderProps {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
60
|
+
/** API base URL (optional, defaults to Reflet production API) */
|
|
61
|
+
baseUrl?: string;
|
|
62
|
+
/** Children */
|
|
63
|
+
children: ReactNode;
|
|
64
|
+
/** Your organization's public API key */
|
|
65
|
+
publicKey: string;
|
|
66
|
+
/** Initial user identification */
|
|
67
|
+
user?: RefletUser;
|
|
68
|
+
/** Pre-signed user token (alternative to user) */
|
|
69
|
+
userToken?: string;
|
|
23
70
|
}
|
|
24
71
|
/**
|
|
25
72
|
* Provider component for Reflet SDK
|
|
@@ -40,65 +87,117 @@ interface RefletProviderProps {
|
|
|
40
87
|
* }
|
|
41
88
|
* ```
|
|
42
89
|
*/
|
|
43
|
-
declare function RefletProvider({ publicKey, baseUrl, user: initialUser, userToken, children
|
|
90
|
+
declare function RefletProvider({ publicKey, baseUrl, user: initialUser, userToken, children }: RefletProviderProps): import("react").JSX.Element;
|
|
44
91
|
declare function useRefletContext(): RefletContextValue;
|
|
45
92
|
declare function useRefletClient(): Reflet;
|
|
46
|
-
|
|
93
|
+
//#endregion
|
|
94
|
+
//#region src/react-feedback-dialog-types.d.ts
|
|
95
|
+
type FeedbackCategory = "feature" | "bug" | "question";
|
|
96
|
+
interface FeedbackDialogLabels {
|
|
97
|
+
cancel?: string;
|
|
98
|
+
categoryBug?: string;
|
|
99
|
+
categoryFeature?: string;
|
|
100
|
+
categoryQuestion?: string;
|
|
101
|
+
descriptionPlaceholder?: string;
|
|
102
|
+
emailLabel?: string;
|
|
103
|
+
emailPlaceholder?: string;
|
|
104
|
+
required?: string;
|
|
105
|
+
submit?: string;
|
|
106
|
+
successMessage?: string;
|
|
107
|
+
successTitle?: string;
|
|
108
|
+
title?: string;
|
|
109
|
+
titlePlaceholder?: string;
|
|
110
|
+
}
|
|
111
|
+
interface FeedbackDialogProps {
|
|
112
|
+
/** API base URL override */
|
|
113
|
+
baseUrl?: string;
|
|
114
|
+
/** Categories to show (default: all three) */
|
|
115
|
+
categories?: FeedbackCategory[];
|
|
116
|
+
/** Default selected category */
|
|
117
|
+
defaultCategory?: FeedbackCategory;
|
|
118
|
+
/** Custom labels / i18n */
|
|
119
|
+
labels?: FeedbackDialogLabels;
|
|
120
|
+
/** Called when dialog closes */
|
|
121
|
+
onClose?: () => void;
|
|
122
|
+
/** Called when dialog opens */
|
|
123
|
+
onOpen?: () => void;
|
|
124
|
+
/** Callback when open state changes */
|
|
125
|
+
onOpenChange: (open: boolean) => void;
|
|
126
|
+
/** Called after successful submission */
|
|
127
|
+
onSubmit?: (result: CreateFeedbackResponse) => void;
|
|
128
|
+
/** Whether the dialog is open */
|
|
129
|
+
open: boolean;
|
|
130
|
+
/** Primary brand color (CSS value) */
|
|
131
|
+
primaryColor?: string;
|
|
132
|
+
/** Public API key (falls back to RefletProvider context) */
|
|
133
|
+
publicKey?: string;
|
|
134
|
+
/** Color theme */
|
|
135
|
+
theme?: "light" | "dark" | "auto";
|
|
136
|
+
/** User identification (falls back to RefletProvider context) */
|
|
137
|
+
user?: RefletUser;
|
|
138
|
+
/** Pre-signed user token */
|
|
139
|
+
userToken?: string;
|
|
140
|
+
}
|
|
141
|
+
//#endregion
|
|
142
|
+
//#region src/react-feedback-dialog.d.ts
|
|
143
|
+
declare function FeedbackDialog({ open, onOpenChange, publicKey, baseUrl, user, userToken, theme, primaryColor, defaultCategory, categories, labels: labelsProp, onSubmit, onOpen, onClose }: FeedbackDialogProps): import("react").JSX.Element | null;
|
|
144
|
+
//#endregion
|
|
145
|
+
//#region src/react-feedback-button.d.ts
|
|
146
|
+
interface FeedbackButtonProps {
|
|
147
|
+
/**
|
|
148
|
+
* Render as child element instead of the default button.
|
|
149
|
+
* When true, the first child element receives the onClick handler.
|
|
150
|
+
*/
|
|
151
|
+
asChild?: boolean;
|
|
152
|
+
/** API base URL override */
|
|
153
|
+
baseUrl?: string;
|
|
154
|
+
/** Categories to show */
|
|
155
|
+
categories?: FeedbackCategory[];
|
|
156
|
+
/** Custom trigger content or element (used with asChild) */
|
|
157
|
+
children?: ReactNode;
|
|
158
|
+
/** Custom CSS class for the default trigger button */
|
|
159
|
+
className?: string;
|
|
160
|
+
/** Default selected category */
|
|
161
|
+
defaultCategory?: FeedbackCategory;
|
|
162
|
+
/** Custom labels / i18n */
|
|
163
|
+
labels?: FeedbackDialogLabels & {
|
|
164
|
+
trigger?: string;
|
|
165
|
+
};
|
|
166
|
+
/** Called when dialog closes */
|
|
167
|
+
onClose?: () => void;
|
|
168
|
+
/** Called when dialog opens */
|
|
169
|
+
onOpen?: () => void;
|
|
170
|
+
/** Called after successful submission */
|
|
171
|
+
onSubmit?: (result: CreateFeedbackResponse) => void;
|
|
172
|
+
/** Primary brand color (CSS value) */
|
|
173
|
+
primaryColor?: string;
|
|
174
|
+
/** Public API key (falls back to RefletProvider context) */
|
|
175
|
+
publicKey?: string;
|
|
176
|
+
/** Color theme */
|
|
177
|
+
theme?: "light" | "dark" | "auto";
|
|
178
|
+
/** User identification (falls back to RefletProvider context) */
|
|
179
|
+
user?: RefletUser;
|
|
180
|
+
/** Pre-signed user token */
|
|
181
|
+
userToken?: string;
|
|
182
|
+
}
|
|
183
|
+
declare function FeedbackButton({ publicKey, baseUrl, user, userToken, theme, primaryColor, defaultCategory, categories, labels, onSubmit, onOpen, onClose, className, asChild, children }: FeedbackButtonProps): import("react").JSX.Element;
|
|
184
|
+
//#endregion
|
|
185
|
+
//#region src/react-hooks-types.d.ts
|
|
47
186
|
interface UseQueryResult<T> {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
187
|
+
data: T | undefined;
|
|
188
|
+
error: Error | null;
|
|
189
|
+
isLoading: boolean;
|
|
190
|
+
refetch: () => Promise<void>;
|
|
52
191
|
}
|
|
53
192
|
interface UseMutationResult<TData, TVariables> {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
193
|
+
data: TData | undefined;
|
|
194
|
+
error: Error | null;
|
|
195
|
+
isLoading: boolean;
|
|
196
|
+
mutate: (variables: TVariables) => Promise<TData>;
|
|
197
|
+
reset: () => void;
|
|
59
198
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
*/
|
|
63
|
-
declare function useOrganizationConfig(): UseQueryResult<OrganizationConfig>;
|
|
64
|
-
interface UseFeedbackListOptions extends FeedbackListParams {
|
|
65
|
-
/** Auto-fetch on mount */
|
|
66
|
-
enabled?: boolean;
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Hook to fetch feedback list with filtering
|
|
70
|
-
*
|
|
71
|
-
* @example
|
|
72
|
-
* ```tsx
|
|
73
|
-
* const { data, isLoading } = useFeedbackList({ status: 'open', sortBy: 'votes' });
|
|
74
|
-
* ```
|
|
75
|
-
*/
|
|
76
|
-
declare function useFeedbackList(options?: UseFeedbackListOptions): UseQueryResult<{
|
|
77
|
-
items: FeedbackItem[];
|
|
78
|
-
total: number;
|
|
79
|
-
hasMore: boolean;
|
|
80
|
-
}>;
|
|
81
|
-
/**
|
|
82
|
-
* Hook to fetch a single feedback item
|
|
83
|
-
*
|
|
84
|
-
* @example
|
|
85
|
-
* ```tsx
|
|
86
|
-
* const { data: feedback, isLoading } = useFeedback('feedback_id');
|
|
87
|
-
* ```
|
|
88
|
-
*/
|
|
89
|
-
declare function useFeedback(feedbackId: string | undefined): UseQueryResult<FeedbackDetail>;
|
|
90
|
-
/**
|
|
91
|
-
* Hook to fetch comments for a feedback item
|
|
92
|
-
*/
|
|
93
|
-
declare function useComments(feedbackId: string | undefined, sortBy?: "newest" | "oldest"): UseQueryResult<Comment[]>;
|
|
94
|
-
/**
|
|
95
|
-
* Hook to fetch roadmap data
|
|
96
|
-
*/
|
|
97
|
-
declare function useRoadmap(): UseQueryResult<Roadmap>;
|
|
98
|
-
/**
|
|
99
|
-
* Hook to fetch changelog entries
|
|
100
|
-
*/
|
|
101
|
-
declare function useChangelog(limit?: number): UseQueryResult<ChangelogEntry[]>;
|
|
199
|
+
//#endregion
|
|
200
|
+
//#region src/react-mutation-hooks.d.ts
|
|
102
201
|
/**
|
|
103
202
|
* Hook to create new feedback
|
|
104
203
|
*
|
|
@@ -113,8 +212,8 @@ declare function useChangelog(limit?: number): UseQueryResult<ChangelogEntry[]>;
|
|
|
113
212
|
* ```
|
|
114
213
|
*/
|
|
115
214
|
declare function useCreateFeedback(): UseMutationResult<{
|
|
116
|
-
|
|
117
|
-
|
|
215
|
+
feedbackId: string;
|
|
216
|
+
isApproved: boolean;
|
|
118
217
|
}, CreateFeedbackParams>;
|
|
119
218
|
/**
|
|
120
219
|
* Hook to vote on feedback
|
|
@@ -129,30 +228,50 @@ declare function useCreateFeedback(): UseMutationResult<{
|
|
|
129
228
|
* ```
|
|
130
229
|
*/
|
|
131
230
|
declare function useVote(): UseMutationResult<{
|
|
132
|
-
|
|
133
|
-
|
|
231
|
+
voted: boolean;
|
|
232
|
+
voteCount: number;
|
|
134
233
|
}, {
|
|
135
|
-
|
|
136
|
-
|
|
234
|
+
feedbackId: string;
|
|
235
|
+
type?: "upvote" | "downvote";
|
|
137
236
|
}>;
|
|
138
237
|
/**
|
|
139
238
|
* Hook to add a comment
|
|
140
239
|
*/
|
|
141
240
|
declare function useAddComment(): UseMutationResult<{
|
|
142
|
-
|
|
241
|
+
commentId: string;
|
|
143
242
|
}, AddCommentParams>;
|
|
144
243
|
/**
|
|
145
244
|
* Hook to subscribe/unsubscribe to feedback
|
|
146
245
|
*/
|
|
147
246
|
declare function useSubscription(): {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
247
|
+
subscribe: (feedbackId: string) => Promise<{
|
|
248
|
+
subscribed: boolean;
|
|
249
|
+
}>;
|
|
250
|
+
unsubscribe: (feedbackId: string) => Promise<{
|
|
251
|
+
unsubscribed: boolean;
|
|
252
|
+
}>;
|
|
253
|
+
isLoading: boolean;
|
|
254
|
+
error: Error | null;
|
|
255
|
+
};
|
|
256
|
+
//#endregion
|
|
257
|
+
//#region src/react-query-hooks.d.ts
|
|
258
|
+
declare function useOrganizationConfig(): UseQueryResult<OrganizationConfig>;
|
|
259
|
+
interface UseFeedbackListOptions extends FeedbackListParams {
|
|
260
|
+
enabled?: boolean;
|
|
261
|
+
}
|
|
262
|
+
declare function useFeedbackList(options?: UseFeedbackListOptions): UseQueryResult<{
|
|
263
|
+
items: FeedbackItem[];
|
|
264
|
+
total: number;
|
|
265
|
+
hasMore: boolean;
|
|
266
|
+
}>;
|
|
267
|
+
declare function useFeedback(feedbackId: string | undefined): UseQueryResult<FeedbackDetail>;
|
|
268
|
+
declare function useComments(feedbackId: string | undefined, sortBy?: "newest" | "oldest"): UseQueryResult<Comment[]>;
|
|
269
|
+
declare function useRoadmap(): UseQueryResult<Roadmap>;
|
|
270
|
+
declare function useChangelog(limit?: number): UseQueryResult<ChangelogEntry[]>;
|
|
271
|
+
declare function useUnreadChangelogCount(publicKey: string): {
|
|
272
|
+
unreadCount: number;
|
|
273
|
+
markAsRead: () => void;
|
|
156
274
|
};
|
|
157
|
-
|
|
158
|
-
export { AddCommentParams, ChangelogEntry, Comment, CreateFeedbackParams, FeedbackDetail, FeedbackItem, FeedbackListParams, OrganizationConfig, Reflet, RefletProvider, type RefletProviderProps, RefletUser, Roadmap, type UseFeedbackListOptions, useAddComment, useChangelog, useComments, useCreateFeedback, useFeedback, useFeedbackList, useOrganizationConfig, useRefletClient, useRefletContext, useRoadmap, useSubscription, useVote };
|
|
275
|
+
//#endregion
|
|
276
|
+
export { type AddCommentParams, type ChangelogEntry, ChangelogWidget, type Comment, type CreateFeedbackParams, FeedbackButton, type FeedbackButtonProps, type FeedbackCategory, type FeedbackDetail, FeedbackDialog, type FeedbackDialogLabels, type FeedbackDialogProps, type FeedbackItem, type FeedbackListParams, type FeedbackStatus, type FeedbackTag, type OrganizationConfig, type OrganizationSettings, type OrganizationStatus, Reflet, type RefletConfig, RefletContext, type RefletContextValue, RefletProvider, type RefletProviderProps, type RefletUser, type Roadmap, type RoadmapItem, type RoadmapLane, type UseFeedbackListOptions, useAddComment, useChangelog, useComments, useCreateFeedback, useFeedback, useFeedbackList, useOrganizationConfig, useRefletClient, useRefletContext, useRoadmap, useSubscription, useUnreadChangelogCount, useVote };
|
|
277
|
+
//# sourceMappingURL=react.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react.d.ts","names":[],"sources":["../src/react-changelog-widget.tsx","../src/react-context.tsx","../src/react-feedback-dialog-types.ts","../src/react-feedback-dialog.tsx","../src/react-feedback-button.tsx","../src/react-hooks-types.ts","../src/react-mutation-hooks.ts","../src/react-query-hooks.ts"],"mappings":";;;;UAGU;EACR;EACA;EACA;EACA;EACA;EACA,gBAAgB,OAAO;EACvB;EACA;EACA;EACA;EACA;EACA;;UAGQ;EACR;EACA;EACA;EACA,YAAY;EACZ;EACA;;QAGM;YACI;IACR,6BACE,QAAQ,yBACL;;;;;;;;;;;;;;;;;iBAkBO,kBACd,WACA,MACA,UACA,OACA,cACA,YACA,iBACA,gBACA,QACA,QACA,SACA,gBACC;;;UC/Cc;EACf;EACA,QAAQ;EACR;EACA;EACA,UAAU,MAAM;EAChB,MAAM;EACN;;cAOW,+BAAa,QAAA;UAMT;;EAEf;;EAEA,UAAU;;EAEV;;EAEA,OAAO;;EAEP;;;;;;;;;;;;;;;;;;;;;iBAsBc,iBACd,WACA,SACA,MAAM,aACN,WACA,YACC,sCAAmB,IAAA;iBAkDN,oBAAoB;iBAQpB,mBAAmB;;;KCjIvB;UAEK;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;UAGe;;EAEf;;EAEA,aAAa;;EAEb,kBAAkB;;EAElB,SAAS;;EAET;;EAEA;;EAEA,eAAe;;EAEf,YAAY,QAAQ;;EAEpB;;EAEA;;EAEA;;EAEA;;EAEA,OAAO;;EAEP;;;;iBCnCc,iBACd,MACA,cACA,WACA,SACA,MACA,WACA,OACA,cACA,iBACA,YACA,QAAQ,YACR,UACA,QACA,WACC,sCAAmB,IAAA;;;UCRL;;;;;EAKf;;EAEA;;EAEA,aAAa;;EAEb,WAAW;;EAEX;;EAEA,kBAAkB;;EAElB,SAAS;IAAyB;;;EAElC;;EAEA;;EAEA,YAAY,QAAQ;;EAEpB;;EAEA;;EAEA;;EAEA,OAAO;;EAEP;;iBA6Bc,iBACd,WACA,SACA,MACA,WACA,OACA,cACA,iBACA,YACA,QACA,UACA,QACA,SACA,WACA,SACA,YACC,sCAAmB,IAAA;;;UClGL,eAAe;EAC9B,MAAM;EACN,OAAO;EACP;EACA,eAAe;;UAGA,kBAAkB,OAAO;EACxC,MAAM;EACN,OAAO;EACP;EACA,SAAS,WAAW,eAAe,QAAQ;EAC3C;;;;;;;;;;;;;;;;;iBCiDc,qBAAqB;EACjC;EAAoB;GACtB;;;;;;;;;;;;;iBA0Bc,WAAW;EACvB;EAAgB;;EAChB;EAAoB;;;;;iBAuBR,iBAAiB;EAC7B;GACF;;;;iBAiBc;EACd,YAAY,uBAAuB;IAAU;;EAC7C,cAAc,uBAAuB;IAAU;;EAC/C;EACA,OAAO;;;;iBCtFO,yBAAyB,eAAe;UAUvC,+BAA+B;EAC9C;;iBAGc,gBACd,UAAS,yBACR;EAAiB,OAAO;EAAgB;EAAe;;iBAyB1C,YACd,iCACC,eAAe;iBAiBF,YACd,gCACA,+BACC,eAAe;iBAiBF,cAAc,eAAe;iBAU7B,aAAa,iBAAiB,eAAe;iBAe7C,wBAAwB;EACtC;EACA"}
|