@brickclay-org/ui 0.0.1

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/index.d.ts ADDED
@@ -0,0 +1,343 @@
1
+ import * as i0 from '@angular/core';
2
+ import { OnInit, OnDestroy, OnChanges, EventEmitter, SimpleChanges, AfterViewInit, QueryList, ElementRef } from '@angular/core';
3
+ import * as rxjs from 'rxjs';
4
+ import * as i1 from '@angular/common';
5
+
6
+ declare class BrickclayLib {
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<BrickclayLib, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<BrickclayLib, "lib-brickclay-lib", never, {}, {}, never, never, true, never>;
9
+ }
10
+
11
+ declare class CalendarManagerService {
12
+ private calendarInstances;
13
+ private closeAllSubject;
14
+ closeAll$: rxjs.Observable<void>;
15
+ /**
16
+ * Register a calendar instance with its close function
17
+ */
18
+ register(closeFn: () => void): () => void;
19
+ /**
20
+ * Close all calendars except the one being opened
21
+ */
22
+ closeAllExcept(exceptCloseFn: () => void): void;
23
+ /**
24
+ * Close all calendars
25
+ */
26
+ closeAll(): void;
27
+ static ɵfac: i0.ɵɵFactoryDeclaration<CalendarManagerService, never>;
28
+ static ɵprov: i0.ɵɵInjectableDeclaration<CalendarManagerService>;
29
+ }
30
+
31
+ interface CalendarRange {
32
+ start: Date;
33
+ end: Date;
34
+ }
35
+ interface CalendarSelection {
36
+ startDate: Date | null;
37
+ endDate: Date | null;
38
+ selectedDates?: Date[];
39
+ }
40
+ declare class CustomCalendarComponent implements OnInit, OnDestroy, OnChanges {
41
+ private calendarManager;
42
+ enableTimepicker: boolean;
43
+ autoApply: boolean;
44
+ closeOnAutoApply: boolean;
45
+ showCancel: boolean;
46
+ linkedCalendars: boolean;
47
+ singleDatePicker: boolean;
48
+ showWeekNumbers: boolean;
49
+ showISOWeekNumbers: boolean;
50
+ customRangeDirection: boolean;
51
+ lockStartDate: boolean;
52
+ position: 'center' | 'left' | 'right';
53
+ drop: 'up' | 'down';
54
+ dualCalendar: boolean;
55
+ showRanges: boolean;
56
+ timeFormat: 12 | 24;
57
+ enableSeconds: boolean;
58
+ customRanges?: Record<string, CalendarRange>;
59
+ multiDateSelection: boolean;
60
+ maxDate?: Date;
61
+ minDate?: Date;
62
+ placeholder: string;
63
+ opens: 'left' | 'right' | 'center';
64
+ inline: boolean;
65
+ isDisplayCrossIcon: boolean;
66
+ selected: EventEmitter<CalendarSelection>;
67
+ opened: EventEmitter<void>;
68
+ closed: EventEmitter<void>;
69
+ /**
70
+ * External value passed from parent. If provided, component will select these dates on init / change.
71
+ * Accepts { startDate: Date|null, endDate: Date|null, selectedDates?: Date[] }
72
+ */
73
+ selectedValue: CalendarSelection | null;
74
+ /** Optional display format for the input value. Uses moment formatting tokens. */
75
+ displayFormat: string;
76
+ show: boolean;
77
+ today: Date;
78
+ month: number;
79
+ year: number;
80
+ calendar: {
81
+ day: number;
82
+ currentMonth: boolean;
83
+ }[][];
84
+ leftMonth: number;
85
+ leftYear: number;
86
+ rightMonth: number;
87
+ rightYear: number;
88
+ leftCalendar: {
89
+ day: number;
90
+ currentMonth: boolean;
91
+ }[][];
92
+ rightCalendar: {
93
+ day: number;
94
+ currentMonth: boolean;
95
+ }[][];
96
+ startDate: Date | null;
97
+ endDate: Date | null;
98
+ selectedDates: Date[];
99
+ disableHighlight: boolean;
100
+ hoveredDate: Date | null;
101
+ minuteInputValues: {
102
+ [key: string]: string;
103
+ };
104
+ selectedHour: number;
105
+ selectedMinute: number;
106
+ selectedSecond: number;
107
+ selectedAMPM: 'AM' | 'PM';
108
+ startHour: number;
109
+ startMinute: number;
110
+ startSecond: number;
111
+ startAMPM: 'AM' | 'PM';
112
+ endHour: number;
113
+ endMinute: number;
114
+ endSecond: number;
115
+ endAMPM: 'AM' | 'PM';
116
+ openTimePickerId: string | null;
117
+ closePickerCounter: {
118
+ [key: string]: number;
119
+ };
120
+ defaultRanges: Record<string, CalendarRange>;
121
+ activeRange: string | null;
122
+ rangeOrder: string[];
123
+ private unregisterFn?;
124
+ private closeAllSubscription?;
125
+ private closeFn?;
126
+ constructor(calendarManager: CalendarManagerService);
127
+ onClickOutside(event: MouseEvent): void;
128
+ ngOnInit(): void;
129
+ ngOnChanges(changes: SimpleChanges): void;
130
+ ngOnDestroy(): void;
131
+ checkAndSetActiveRange(): void;
132
+ initializeDefaultRanges(): void;
133
+ initializeTimeFromDate(date: Date, isStart: boolean): void;
134
+ toggle(): void;
135
+ close(): void;
136
+ onDateHover(day: number | null, fromRight?: boolean): void;
137
+ onDateLeave(): void;
138
+ selectDate(day: number | null, fromRight?: boolean): void;
139
+ handleMultiDateSelection(selected: Date): void;
140
+ getDateString(date: Date): string;
141
+ isDateInMultiSelection(year: number, month: number, day: number): boolean;
142
+ apply(): void;
143
+ cancel(): void;
144
+ clear(): void;
145
+ chooseRange(key: string): void;
146
+ emitSelection(): void;
147
+ addDays(date: Date, days: number): Date;
148
+ generateCalendar(): void;
149
+ nextMonth(): void;
150
+ prevMonth(): void;
151
+ nextLeftMonth(): void;
152
+ prevLeftMonth(): void;
153
+ nextRightMonth(): void;
154
+ prevRightMonth(): void;
155
+ initializeDual(): void;
156
+ generateDualCalendars(): void;
157
+ buildCalendar(year: number, month: number): {
158
+ day: number;
159
+ currentMonth: boolean;
160
+ }[][];
161
+ isDateSelected(year: number, month: number, day: number): boolean;
162
+ isDateInRange(year: number, month: number, day: number): boolean;
163
+ isDateDisabled(year: number, month: number, day: number): boolean;
164
+ isToday(year: number, month: number, day: number): boolean;
165
+ getDisplayValue(): string;
166
+ getTimeInputValue(isStart?: boolean): string;
167
+ getSingleTimeInputValue(): string;
168
+ getSingleTimePickerDisplay(): string;
169
+ getDualTimePickerDisplay(isStart?: boolean): string;
170
+ onTimePickerOpened(pickerId: string): void;
171
+ onTimePickerClosed(pickerId: string): void;
172
+ shouldClosePicker(pickerId: string): number;
173
+ private parsePickerTimeString;
174
+ onSingleTimePickerChange(time: string): void;
175
+ onDualTimePickerChange(time: string, isStart?: boolean): void;
176
+ onTimeChange(event: any, isStart?: boolean): void;
177
+ onSingleTimeChange(event: any): void;
178
+ incrementHour(isStart?: boolean): void;
179
+ decrementHour(isStart?: boolean): void;
180
+ incrementMinute(isStart?: boolean): void;
181
+ decrementMinute(isStart?: boolean): void;
182
+ toggleAMPM(isStart?: boolean): void;
183
+ incrementSingleHour(): void;
184
+ decrementSingleHour(): void;
185
+ incrementSingleMinute(): void;
186
+ decrementSingleMinute(): void;
187
+ toggleSingleAMPM(): void;
188
+ getMonthName(month: number): string;
189
+ onHourInput(event: any, isStart?: boolean, isSingle?: boolean): void;
190
+ onHourBlur(event: any, isStart?: boolean, isSingle?: boolean): void;
191
+ onMinuteInput(event: any, isStart?: boolean, isSingle?: boolean): void;
192
+ onMinuteBlur(event: any, isStart?: boolean, isSingle?: boolean): void;
193
+ getDisplayHour(hour: number): number;
194
+ getMinuteDisplayValue(isStart: boolean, isSingle: boolean): string;
195
+ applyTimeToDate(date: Date, isStart: boolean): void;
196
+ onTimeInputFocus(event: any): void;
197
+ formatAllMinuteInputs(): void;
198
+ static ɵfac: i0.ɵɵFactoryDeclaration<CustomCalendarComponent, never>;
199
+ static ɵcmp: i0.ɵɵComponentDeclaration<CustomCalendarComponent, "brickclay-custom-calendar", never, { "enableTimepicker": { "alias": "enableTimepicker"; "required": false; }; "autoApply": { "alias": "autoApply"; "required": false; }; "closeOnAutoApply": { "alias": "closeOnAutoApply"; "required": false; }; "showCancel": { "alias": "showCancel"; "required": false; }; "linkedCalendars": { "alias": "linkedCalendars"; "required": false; }; "singleDatePicker": { "alias": "singleDatePicker"; "required": false; }; "showWeekNumbers": { "alias": "showWeekNumbers"; "required": false; }; "showISOWeekNumbers": { "alias": "showISOWeekNumbers"; "required": false; }; "customRangeDirection": { "alias": "customRangeDirection"; "required": false; }; "lockStartDate": { "alias": "lockStartDate"; "required": false; }; "position": { "alias": "position"; "required": false; }; "drop": { "alias": "drop"; "required": false; }; "dualCalendar": { "alias": "dualCalendar"; "required": false; }; "showRanges": { "alias": "showRanges"; "required": false; }; "timeFormat": { "alias": "timeFormat"; "required": false; }; "enableSeconds": { "alias": "enableSeconds"; "required": false; }; "customRanges": { "alias": "customRanges"; "required": false; }; "multiDateSelection": { "alias": "multiDateSelection"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "opens": { "alias": "opens"; "required": false; }; "inline": { "alias": "inline"; "required": false; }; "isDisplayCrossIcon": { "alias": "isDisplayCrossIcon"; "required": false; }; "selectedValue": { "alias": "selectedValue"; "required": false; }; "displayFormat": { "alias": "displayFormat"; "required": false; }; }, { "selected": "selected"; "opened": "opened"; "closed": "closed"; }, never, never, true, never>;
200
+ }
201
+
202
+ interface TimeConfiguration {
203
+ date: Date;
204
+ allDay: boolean;
205
+ startTime: string;
206
+ endTime: string;
207
+ }
208
+ interface ScheduledDateSelection {
209
+ mode: 'single' | 'multiple' | 'range';
210
+ singleDate?: {
211
+ startDate: Date;
212
+ endDate: Date;
213
+ allDay: boolean;
214
+ startTime: string;
215
+ endTime: string;
216
+ };
217
+ multipleDates?: TimeConfiguration[];
218
+ dateRange?: {
219
+ startDate: Date;
220
+ endDate: Date;
221
+ allDay: boolean;
222
+ startTime: string;
223
+ endTime: string;
224
+ };
225
+ }
226
+ declare class ScheduledDatePickerComponent implements OnInit {
227
+ timeFormat: 12 | 24;
228
+ enableSeconds: boolean;
229
+ scheduled: EventEmitter<ScheduledDateSelection>;
230
+ cleared: EventEmitter<void>;
231
+ activeTab: 'single' | 'multiple' | 'range';
232
+ openTimePickerId: string | null;
233
+ closePickerCounter: {
234
+ [key: string]: number;
235
+ };
236
+ singleDate: Date | null;
237
+ singleAllDay: boolean;
238
+ singleStartTime: string;
239
+ singleEndTime: string;
240
+ multipleDates: TimeConfiguration[];
241
+ rangeStartDate: Date | null;
242
+ rangeEndDate: Date | null;
243
+ rangeAllDay: boolean;
244
+ rangeStartTime: string;
245
+ rangeEndTime: string;
246
+ ngOnInit(): void;
247
+ onTabChange(tab: 'single' | 'multiple' | 'range'): void;
248
+ onTimePickerOpened(pickerId: string): void;
249
+ onTimePickerClosed(pickerId: string): void;
250
+ shouldClosePicker(pickerId: string): number;
251
+ onSingleDateSelected(event: CalendarSelection): void;
252
+ onSingleAllDayChange(): void;
253
+ onSingleStartTimeChange(time: string): void;
254
+ onSingleEndTimeChange(time: string): void;
255
+ updateSingleDateTimes(): void;
256
+ onMultipleDatesSelected(event: CalendarSelection): void;
257
+ onMultipleDateAllDayChange(index: number): void;
258
+ onMultipleDateStartTimeChange(index: number, time: string): void;
259
+ onMultipleDateEndTimeChange(index: number, time: string): void;
260
+ onRangeSelected(event: CalendarSelection): void;
261
+ onRangeAllDayChange(): void;
262
+ onRangeStartTimeChange(time: string): void;
263
+ onRangeEndTimeChange(time: string): void;
264
+ updateRangeTimes(): void;
265
+ parseTimeString(timeStr: string): {
266
+ hours: number;
267
+ minutes: number;
268
+ };
269
+ getDateString(date: Date): string;
270
+ formatDate(date: Date): string;
271
+ emitScheduled(): void;
272
+ clear(): void;
273
+ apply(): void;
274
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScheduledDatePickerComponent, never>;
275
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScheduledDatePickerComponent, "brickclay-scheduled-date-picker", never, { "timeFormat": { "alias": "timeFormat"; "required": false; }; "enableSeconds": { "alias": "enableSeconds"; "required": false; }; }, { "scheduled": "scheduled"; "cleared": "cleared"; }, never, never, true, never>;
276
+ }
277
+
278
+ declare class TimePickerComponent implements OnInit, OnChanges, AfterViewInit {
279
+ value: string;
280
+ label: string;
281
+ placeholder: string;
282
+ position: 'left' | 'right';
283
+ pickerId: string;
284
+ closePicker: number;
285
+ timeFormat: 12 | 24;
286
+ showSeconds: boolean;
287
+ timeChange: EventEmitter<string>;
288
+ pickerOpened: EventEmitter<string>;
289
+ pickerClosed: EventEmitter<string>;
290
+ timeScrollElements: QueryList<ElementRef>;
291
+ showPicker: boolean;
292
+ currentHour: number;
293
+ currentMinute: number;
294
+ currentAMPM: string;
295
+ currentSecond: number;
296
+ ngOnInit(): void;
297
+ ngAfterViewInit(): void;
298
+ parseTimeValue(): void;
299
+ getHours(): number[];
300
+ getMinutes(): number[];
301
+ getSeconds(): number[];
302
+ getAMPMOptions(): string[];
303
+ parseTimeStringToComponents(timeStr: string): {
304
+ hour: number;
305
+ minute: number;
306
+ second: number;
307
+ ampm: string;
308
+ };
309
+ formatTimeFromComponents(hour: number, minute: number, second: number, ampm: string): string;
310
+ togglePicker(): void;
311
+ onHourChange(hour: number): void;
312
+ onMinuteChange(minute: number): void;
313
+ onSecondChange(second: number): void;
314
+ onAMPMChange(ampm: string): void;
315
+ updateTime(): void;
316
+ scrollToSelectedTimes(): void;
317
+ onDocumentClick(event: MouseEvent): void;
318
+ private previousCloseCounter;
319
+ ngOnChanges(changes: SimpleChanges): void;
320
+ onInputKeydown(event: KeyboardEvent): void;
321
+ static ɵfac: i0.ɵɵFactoryDeclaration<TimePickerComponent, never>;
322
+ static ɵcmp: i0.ɵɵComponentDeclaration<TimePickerComponent, "brickclay-time-picker", never, { "value": { "alias": "value"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "position": { "alias": "position"; "required": false; }; "pickerId": { "alias": "pickerId"; "required": false; }; "closePicker": { "alias": "closePicker"; "required": false; }; "timeFormat": { "alias": "timeFormat"; "required": false; }; "showSeconds": { "alias": "showSeconds"; "required": false; }; }, { "timeChange": "timeChange"; "pickerOpened": "pickerOpened"; "pickerClosed": "pickerClosed"; }, never, never, true, never>;
323
+ }
324
+
325
+ /**
326
+ * Optional NgModule wrapper for projects that prefer module-based usage.
327
+ *
328
+ * Note:
329
+ * - The components themselves are standalone, so you can also import them
330
+ * directly into any standalone component without using this module.
331
+ * - This module is mainly for:
332
+ * - Existing apps that still use feature modules
333
+ * - Easier "plug-and-play" integration: import CalendarModule once and use
334
+ * the three exported components anywhere in your templates.
335
+ */
336
+ declare class CalendarModule {
337
+ static ɵfac: i0.ɵɵFactoryDeclaration<CalendarModule, never>;
338
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CalendarModule, never, [typeof i1.CommonModule, typeof CustomCalendarComponent, typeof ScheduledDatePickerComponent, typeof TimePickerComponent], [typeof CustomCalendarComponent, typeof ScheduledDatePickerComponent, typeof TimePickerComponent]>;
339
+ static ɵinj: i0.ɵɵInjectorDeclaration<CalendarModule>;
340
+ }
341
+
342
+ export { BrickclayLib, CalendarManagerService, CalendarModule, CustomCalendarComponent, ScheduledDatePickerComponent, TimePickerComponent };
343
+ export type { CalendarRange, CalendarSelection, ScheduledDateSelection, TimeConfiguration };
package/package.json ADDED
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "@brickclay-org/ui",
3
+ "version": "0.0.1",
4
+ "peerDependencies": {
5
+ "@angular/common": ">=17.0.0 <21.0.0",
6
+ "@angular/core": ">=17.0.0 <21.0.0"
7
+ },
8
+ "dependencies": {
9
+ "tslib": "^2.3.0"
10
+ },
11
+ "sideEffects": false,
12
+ "module": "fesm2022/brickclay-org-ui.mjs",
13
+ "typings": "index.d.ts",
14
+ "exports": {
15
+ "./package.json": {
16
+ "default": "./package.json"
17
+ },
18
+ ".": {
19
+ "types": "./index.d.ts",
20
+ "default": "./fesm2022/brickclay-org-ui.mjs"
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,19 @@
1
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_3797_46309)">
3
+ <path d="M14.545 5.45448V11.6363C14.545 13.8181 13.4541 15.2727 10.9086 15.2727H5.09047C2.54501 15.2727 1.4541 13.8181 1.4541 11.6363V5.45448C1.4541 3.27266 2.54501 1.81812 5.09047 1.81812H10.9086C13.4541 1.81812 14.545 3.27266 14.545 5.45448Z" stroke="#141414" stroke-width="1.2" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
4
+ <path d="M5.09082 0.727295V2.90911" stroke="#141414" stroke-width="1.2" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
5
+ <path d="M10.9092 0.727295V2.90911" stroke="#141414" stroke-width="1.2" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
6
+ <path d="M1.81836 5.88354H14.182" stroke="#141414" stroke-width="1.2" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
7
+ <path d="M10.6868 9.23619H10.6933" stroke="#141414" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/>
8
+ <path d="M10.6868 11.4181H10.6933" stroke="#141414" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/>
9
+ <path d="M7.99636 9.23619H8.00289" stroke="#141414" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/>
10
+ <path d="M7.99636 11.4181H8.00289" stroke="#141414" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/>
11
+ <path d="M5.30495 9.23644H5.31149" stroke="#141414" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/>
12
+ <path d="M5.30495 11.4181H5.31149" stroke="#141414" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/>
13
+ </g>
14
+ <defs>
15
+ <clipPath id="clip0_3797_46309">
16
+ <rect width="16" height="16" fill="white"/>
17
+ </clipPath>
18
+ </defs>
19
+ </svg>
@@ -0,0 +1,10 @@
1
+ <svg width="12" height="7" viewBox="0 0 12 7" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_535_3111)">
3
+ <path d="M0.835938 1.16797L5.83593 6.16797L10.8359 1.16797" stroke="#6B7080" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </g>
5
+ <defs>
6
+ <clipPath id="clip0_535_3111">
7
+ <rect width="7" height="12" fill="white" transform="matrix(0 -1 1 0 0 7)"/>
8
+ </clipPath>
9
+ </defs>
10
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="7" height="12" viewBox="0 0 7 12" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M5.83398 0.833313L0.833984 5.83331L5.83398 10.8333" stroke="#6B7080" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="7" height="12" viewBox="0 0 7 12" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M0.833984 10.8333L5.83398 5.83331L0.833984 0.833313" stroke="#6B7080" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,10 @@
1
+ <svg width="12" height="7" viewBox="0 0 12 7" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_535_3113)">
3
+ <path d="M10.8359 6.16797L5.83593 1.16797L0.835938 6.16797" stroke="#6B7080" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </g>
5
+ <defs>
6
+ <clipPath id="clip0_535_3113">
7
+ <rect width="7" height="12" fill="white" transform="matrix(0 -1 1 0 0 7)"/>
8
+ </clipPath>
9
+ </defs>
10
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="6" height="10" viewBox="0 0 6 10" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M5 9L1 5L5 1" stroke="#B9BBC6" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,10 @@
1
+ <svg width="6" height="10" viewBox="0 0 6 10" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_268_9)">
3
+ <path d="M1 9L5 5L1 1" stroke="#B9BBC6" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </g>
5
+ <defs>
6
+ <clipPath id="clip0_268_9">
7
+ <rect width="6" height="10" fill="white"/>
8
+ </clipPath>
9
+ </defs>
10
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M7 14C10.8593 14 14 10.8593 14 7C14 3.14067 10.8594 0 7 0C3.14063 0 0 3.14067 0 7C0 10.8593 3.14067 14 7 14ZM7 0.933318C10.346 0.933318 13.0667 3.65398 13.0667 7C13.0667 10.346 10.346 13.0667 7 13.0667C3.65398 13.0667 0.933318 10.346 0.933318 7C0.933318 3.65398 3.65401 0.933318 7 0.933318Z" fill="#BBBDC5"/>
3
+ <path d="M9.04153 9.23071C9.12788 9.3007 9.23052 9.33339 9.3332 9.33339C9.47086 9.33339 9.60619 9.27272 9.69718 9.15839C9.85819 8.95772 9.82549 8.66372 9.62486 8.50271L7.46652 6.77604V3.26671C7.46652 3.01004 7.25653 2.80005 6.99986 2.80005C6.74319 2.80005 6.5332 3.01004 6.5332 3.26671V7.00006C6.5332 7.1424 6.59855 7.27539 6.7082 7.36404L9.04153 9.23071Z" fill="#BBBDC5"/>
4
+ </svg>