ydb-embedded-ui 4.10.0 → 4.10.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/components/InfoViewer/formatters/schema.ts +3 -1
  3. package/dist/components/TableWithControlsLayout/TableWithControlsLayout.scss +32 -0
  4. package/dist/components/TableWithControlsLayout/TableWithControlsLayout.tsx +43 -0
  5. package/dist/containers/AsideNavigation/AsideNavigation.tsx +2 -2
  6. package/dist/containers/Cluster/Cluster.scss +4 -5
  7. package/dist/containers/Cluster/Cluster.tsx +3 -22
  8. package/dist/containers/Cluster/ClusterInfo/ClusterInfo.scss +4 -0
  9. package/dist/containers/Cluster/ClusterInfo/ClusterInfo.tsx +7 -0
  10. package/dist/containers/Cluster/ClusterInfoSkeleton/ClusterInfoSkeleton.tsx +1 -1
  11. package/dist/containers/Cluster/utils.tsx +0 -11
  12. package/dist/containers/Header/Header.scss +1 -5
  13. package/dist/containers/Nodes/Nodes.scss +1 -24
  14. package/dist/containers/Nodes/Nodes.tsx +28 -38
  15. package/dist/containers/Storage/Storage.scss +1 -14
  16. package/dist/containers/Storage/Storage.tsx +15 -18
  17. package/dist/containers/Storage/StorageTypeFilter/StorageTypeFilter.tsx +3 -1
  18. package/dist/containers/Storage/{StorageVisibleEntityFilter/StorageVisibleEntityFilter.tsx → StorageVisibleEntitiesFilter/StorageVisibleEntitiesFilter.tsx} +4 -2
  19. package/dist/containers/Tenant/Diagnostics/Diagnostics.scss +6 -2
  20. package/dist/containers/Tenant/ObjectSummary/ObjectSummary.scss +3 -12
  21. package/dist/containers/Tenant/ObjectSummary/ObjectSummary.tsx +2 -7
  22. package/dist/containers/Tenant/Query/i18n/en.json +1 -1
  23. package/dist/containers/Tenant/Query/i18n/ru.json +1 -1
  24. package/dist/containers/Tenants/Tenants.scss +1 -13
  25. package/dist/containers/Tenants/Tenants.tsx +17 -24
  26. package/dist/store/reducers/nodes/nodes.ts +4 -112
  27. package/dist/store/reducers/nodes/selectors.ts +74 -0
  28. package/dist/store/reducers/nodes/utils.ts +46 -0
  29. package/dist/store/reducers/storage/selectors.ts +1 -1
  30. package/dist/types/api/compute.ts +27 -2
  31. package/dist/types/api/nodes.ts +12 -1
  32. package/dist/types/api/schema/cdcStream.ts +32 -0
  33. package/dist/types/api/schema/columnEntity.ts +138 -0
  34. package/dist/types/api/schema/externalDataSource.ts +24 -0
  35. package/dist/types/api/schema/externalTable.ts +14 -0
  36. package/dist/types/api/schema/index.ts +10 -0
  37. package/dist/types/api/schema/persQueueGroup.ts +191 -0
  38. package/dist/types/api/schema/schema.ts +299 -0
  39. package/dist/types/api/schema/shared.ts +42 -0
  40. package/dist/types/api/schema/table.ts +616 -0
  41. package/dist/types/api/schema/tableIndex.ts +33 -0
  42. package/package.json +1 -1
  43. package/dist/assets/icons/versions.svg +0 -3
  44. package/dist/types/api/schema.ts +0 -1326
@@ -0,0 +1,616 @@
1
+ import type {TCdcStreamDescription} from './cdcStream';
2
+ import type {TIndexDescription} from './tableIndex';
3
+ import type {EColumnCodec, EUnit, TColumnDescription, TPathID, TStorageSettings} from './shared';
4
+
5
+ export interface TTableDescription {
6
+ Name?: string;
7
+ /**
8
+ * @deprecated LocalPathId
9
+ *
10
+ * uint64
11
+ */
12
+ Id_Deprecated?: string;
13
+ Columns?: TColumnDescription[];
14
+ KeyColumnNames?: string[];
15
+ KeyColumnIds?: number[];
16
+ /**
17
+ * Describes uniform partitioning on first key column int on ranges.
18
+ * The first key column must be of integer type
19
+ */
20
+ UniformPartitionsCount?: number;
21
+
22
+ PartitionConfig?: TPartitionConfig;
23
+ DropColumns?: TColumnDescription[];
24
+ Path?: string;
25
+
26
+ /** bytes */
27
+ PartitionRangeBegin?: unknown;
28
+ /** bytes */
29
+ PartitionRangeEnd?: unknown;
30
+ PartitionRangeBeginIsInclusive?: boolean;
31
+ PartitionRangeEndIsInclusive?: boolean;
32
+
33
+ CopyFromTable?: string;
34
+ /** Boundaries for non-uniform split */
35
+ SplitBoundary?: TSplitBoundary[];
36
+
37
+ TableIndexes?: TIndexDescription[];
38
+ /** uint64 */
39
+ TableSchemaVersion?: string;
40
+
41
+ PathId?: TPathID;
42
+
43
+ TTLSettings?: TTTLSettings;
44
+
45
+ /**
46
+ * used with CopyFromTable
47
+ *
48
+ * default false
49
+ */
50
+ OmitFollowers?: boolean;
51
+ /** default false */
52
+ IsBackup?: boolean;
53
+
54
+ CdcStreams?: TCdcStreamDescription[];
55
+ Sequences?: TSequenceDescription[];
56
+ }
57
+
58
+ export interface TTTLSettings {
59
+ Enabled?: TEnabled;
60
+ Disabled?: {};
61
+ UseTiering?: string;
62
+ }
63
+
64
+ interface TEnabled {
65
+ ColumnName?: string;
66
+ ExpireAfterSeconds?: number;
67
+ ColumnUnit?: EUnit;
68
+ SysSettings?: TSysSettings;
69
+ }
70
+
71
+ interface TSysSettings {
72
+ /**
73
+ * default 3600000000 (1 hour)
74
+ *
75
+ * uint64
76
+ */
77
+ RunInterval?: string;
78
+ /**
79
+ * default 300000000 (5 minutes)
80
+ *
81
+ * uint64
82
+ */
83
+ RetryInterval?: string;
84
+ /** default 512000 */
85
+ BatchMaxBytes?: number;
86
+ /** default 1 */
87
+ BatchMinKeys?: number;
88
+ /** default 256 */
89
+ BatchMaxKeys?: number;
90
+ /**
91
+ * zero means no limit
92
+ *
93
+ * default 0
94
+ */
95
+ MaxShardsInFlight?: number;
96
+ }
97
+
98
+ interface TSplitBoundary {
99
+ /** A tuple representing full key or key prefix */
100
+ KeyPrefix?: unknown;
101
+ /**
102
+ * Or same as KeyPrefix but already serialized
103
+ *
104
+ * bytes
105
+ */
106
+ SerializedKeyPrefix?: unknown;
107
+ }
108
+
109
+ interface TSequenceDescription {
110
+ Name?: string;
111
+ /** sequence path id, assigned by schemeshard */
112
+ PathId?: TPathID;
113
+ /**
114
+ * incremented every time sequence is altered
115
+ *
116
+ * uint64
117
+ */
118
+ Version?: string;
119
+ /**
120
+ * current sequenceshard, assigned by schemeshard
121
+ *
122
+ * uint64
123
+ */
124
+ SequenceShard?: string;
125
+ /**
126
+ * minimum value, defaults to 1 or Min<i64>
127
+ *
128
+ * sint64
129
+ */
130
+ MinValue?: string;
131
+ /**
132
+ * maximum value, defaults to Max<i64> or -1
133
+ *
134
+ * sint64
135
+ */
136
+ MaxValue?: string;
137
+ /**
138
+ * start value, defaults to MinValue
139
+ *
140
+ * sint64
141
+ */
142
+ StartValue?: string;
143
+ /**
144
+ * number of items to cache, defaults to 1
145
+ *
146
+ * uint64
147
+ */
148
+ Cache?: string;
149
+ /**
150
+ * increment at each call, defaults to 1
151
+ *
152
+ * sint64
153
+ */
154
+ Increment?: string;
155
+ /** true when cycle on overflow is allowed */
156
+ Cycle?: boolean;
157
+ }
158
+
159
+ export interface TTableStats {
160
+ /** uint64 */
161
+ DataSize?: string;
162
+ /** uint64 */
163
+ RowCount?: string;
164
+ /** uint64 */
165
+ IndexSize?: string;
166
+ /** uint64 */
167
+ InMemSize?: string;
168
+
169
+ /**
170
+ * uint64
171
+ * unix time in millisec
172
+ */
173
+ LastAccessTime?: string;
174
+ /**
175
+ * uint64
176
+ * unix time in millisec
177
+ */
178
+ LastUpdateTime?: string;
179
+
180
+ RowCountHistogram?: THistogram;
181
+ DataSizeHistogram?: THistogram;
182
+
183
+ /** uint64 */
184
+ ImmediateTxCompleted?: string;
185
+ /** uint64 */
186
+ PlannedTxCompleted?: string;
187
+ /** uint64 */
188
+ TxRejectedByOverload?: string;
189
+ /** uint64 */
190
+ TxRejectedBySpace?: string;
191
+ /** uint64 */
192
+ TxCompleteLagMsec?: string;
193
+ /** uint64 */
194
+ InFlightTxCount?: string;
195
+
196
+ /** uint64 */
197
+ RowUpdates?: string;
198
+ /** uint64 */
199
+ RowDeletes?: string;
200
+ /** uint64 */
201
+ RowReads?: string;
202
+ /** uint64 */
203
+ RangeReads?: string;
204
+ /** uint64 */
205
+ RangeReadRows?: string;
206
+
207
+ /** uint64 */
208
+ PartCount?: string;
209
+
210
+ KeyAccessSample?: THistogram;
211
+
212
+ /** uint64 */
213
+ SearchHeight?: string;
214
+
215
+ /**
216
+ * uint64
217
+ * seconds since epoch
218
+ */
219
+ LastFullCompactionTs?: string;
220
+
221
+ // i.e. this shard lent to other shards
222
+ HasLoanedParts?: boolean;
223
+ }
224
+
225
+ interface THistogram {
226
+ Buckets?: THistogramBucket[];
227
+ }
228
+
229
+ interface THistogramBucket {
230
+ Key?: string;
231
+ /** uint64 */
232
+ Value?: string;
233
+ }
234
+
235
+ export interface TPartitionConfig {
236
+ /** One of the predefined policies*/
237
+ NamedCompactionPolicy?: string;
238
+ /** Customized policy */
239
+ CompactionPolicy?: TCompactionPolicy;
240
+ /** uint64 */
241
+ FollowerCount?: string;
242
+ /**
243
+ * Cache size for the whole tablet including all user and system tables
244
+ *
245
+ * uint64
246
+ */
247
+ ExecutorCacheSize?: string;
248
+ /**
249
+ * if true followers can upgrade to leader, if false followers only handle reads
250
+ *
251
+ * default true
252
+ */
253
+ AllowFollowerPromotion?: boolean;
254
+ /**
255
+ * Maximum size in bytes that is allowed to be read by a single Tx
256
+ *
257
+ * uint64
258
+ */
259
+ TxReadSizeLimit?: string;
260
+ /** @deprecated use FollowerGroups */
261
+ CrossDataCenterFollowerCount?: number;
262
+ /** for configuring erasure and disk categories */
263
+ ChannelProfileId?: number;
264
+ PartitioningPolicy?: TPartitioningPolicy;
265
+ PipelineConfig?: TPipelineConfig;
266
+ ColumnFamilies?: TFamilyDescription[];
267
+ ResourceProfile?: string;
268
+ DisableStatisticsCalculation?: boolean;
269
+ /**
270
+ * Build and use per-part bloom filter for fast key non-existence check
271
+ *
272
+ * default false
273
+ */
274
+ EnableFilterByKey?: boolean;
275
+ /**
276
+ * Commit log faster at the expense of bandwidth for cross-DC
277
+ *
278
+ * default true
279
+ */
280
+ ExecutorFastLogPolicy?: boolean;
281
+ StorageRooms?: TStorageRoom[];
282
+ /**
283
+ * Use erase cache for faster iteration over erased rows
284
+ *
285
+ * default true
286
+ */
287
+ EnableEraseCache?: boolean;
288
+ /**
289
+ * Minimum number of erased rows worth caching
290
+ *
291
+ * default 16
292
+ */
293
+ EraseCacheMinRows?: number;
294
+ /**
295
+ * Maximum number of bytes to use for cached rows
296
+ *
297
+ * default 1MB
298
+ */
299
+ EraseCacheMaxBytes?: number;
300
+ FreezeState?: EFreezeState;
301
+ ShadowData?: boolean;
302
+ /** 0 or 1 items */
303
+ FollowerGroups?: TFollowerGroup[];
304
+ /** uint64 milliseconds */
305
+ KeepSnapshotTimeout?: string;
306
+ }
307
+
308
+ export interface TFollowerGroup {
309
+ FollowerCount?: number;
310
+ AllowLeaderPromotion?: boolean;
311
+ AllowClientRead?: boolean;
312
+ AllowedNodeIDs?: number[];
313
+ /** @deprecated use AllowedDataCenters */
314
+ AllowedDataCenterNumIDs?: number[];
315
+ RequireAllDataCenters?: boolean;
316
+ LocalNodeOnly?: boolean;
317
+ RequireDifferentNodes?: boolean;
318
+ FollowerCountPerDataCenter?: boolean; // multiplies FollowerCount by number of DataCenters
319
+ AllowedDataCenters?: string[];
320
+ }
321
+
322
+ interface TStorageRoom {
323
+ RoomId?: number;
324
+ Explanation?: TChannelPurpose[];
325
+ }
326
+
327
+ interface TPipelineConfig {
328
+ /** default 8 */
329
+ NumActiveTx?: number;
330
+ DataTxCacheSize?: number;
331
+ /** default true */
332
+ EnableOutOfOrder?: boolean;
333
+ DisableImmediate?: boolean;
334
+ EnableSoftUpdates?: boolean;
335
+ }
336
+
337
+ interface TFamilyDescription {
338
+ Id?: number;
339
+ Room?: number;
340
+ /** @deprecated use ColumnCodec */
341
+ Codec?: number;
342
+ /** @deprecated use ColumnCache */
343
+ InMemory?: boolean;
344
+ Name?: string;
345
+ ColumnCodec?: EColumnCodec;
346
+ ColumnCache?: EColumnCache;
347
+ /** @deprecated use StorageConfig */
348
+ Storage?: EColumnStorage;
349
+ StorageConfig?: TStorageConfig;
350
+ }
351
+
352
+ interface TChannelPurpose {
353
+ Purpose?: EPurpose;
354
+ Channel?: number;
355
+ }
356
+
357
+ interface TStorageConfig {
358
+ SysLog?: TStorageSettings;
359
+ Log?: TStorageSettings;
360
+ Data?: TStorageSettings;
361
+ External?: TStorageSettings;
362
+ DataThreshold?: number;
363
+ ExternalThreshold?: number;
364
+ }
365
+
366
+ interface TPartitioningPolicy {
367
+ /**
368
+ * Partition gets split when this threshold is exceeded
369
+ *
370
+ * uint64
371
+ */
372
+ SizeToSplit?: string;
373
+
374
+ MinPartitionsCount?: number;
375
+ MaxPartitionsCount?: number;
376
+
377
+ FastSplitSettings?: TFastSplitSettings;
378
+ SplitByLoadSettings?: TSplitByLoadSettings;
379
+ }
380
+
381
+ interface TFastSplitSettings {
382
+ /** uint64 */
383
+ SizeThreshold?: string;
384
+ /** uint64 */
385
+ RowCountThreshold?: string;
386
+ CpuPercentageThreshold?: number;
387
+ }
388
+
389
+ interface TSplitByLoadSettings {
390
+ Enabled?: boolean;
391
+ CpuPercentageThreshold?: number;
392
+ }
393
+
394
+ interface TCompactionPolicy {
395
+ /** uint64 */
396
+ InMemSizeToSnapshot?: string;
397
+ /** snapshot inmem state when size AND steps from last snapshot passed */
398
+ InMemStepsToSnapshot?: number;
399
+ InMemForceStepsToSnapshot?: number;
400
+ /** uint64 */
401
+ InMemForceSizeToSnapshot?: string;
402
+ /** @deprecated default 0 */
403
+ InMemCompactionBrokerQueue?: number;
404
+ /** uint64 default 67108864 */
405
+ ReadAheadHiThreshold?: string;
406
+ /** uint64 default 16777216 */
407
+ ReadAheadLoThreshold?: string;
408
+ /** default 7168 */
409
+ MinDataPageSize?: number;
410
+ /** @deprecated default 0*/
411
+ SnapBrokerQueue?: number;
412
+ /** @deprecated default 1*/
413
+ BackupBrokerQueue?: number;
414
+ /** default 5 */
415
+ DefaultTaskPriority?: number;
416
+ BackgroundSnapshotPolicy?: TBackgroundPolicy;
417
+ InMemResourceBrokerTask?: string;
418
+ SnapshotResourceBrokerTask?: string;
419
+ BackupResourceBrokerTask?: string;
420
+ /** uint64 */
421
+ LogOverheadSizeToSnapshot?: string;
422
+ LogOverheadCountToSnapshot?: number;
423
+ DroppedRowsPercentToCompact?: number;
424
+ /** default CompactionStrategyUnset */
425
+ CompactionStrategy?: ECompactionStrategy;
426
+ ShardPolicy?: TShardPolicy;
427
+ KeepEraseMarkers?: boolean;
428
+ Generation?: TGenerationPolicy[];
429
+ }
430
+
431
+ interface TShardPolicy {
432
+ /**
433
+ * Adjacent shards smaller than this will be merged
434
+ *
435
+ * default 33554432
436
+ *
437
+ * uint64
438
+ */
439
+ MinShardSize?: string;
440
+ /**
441
+ * Shards bigger than this will split in two or more pieces
442
+ *
443
+ * default 134217728
444
+ *
445
+ * uint64
446
+ */
447
+ MaxShardSize?: string;
448
+ /**
449
+ * Slices smaller than this will get prioritized compaction
450
+ *
451
+ * default 2097152
452
+ *
453
+ * uint64
454
+ */
455
+ MinSliceSize?: string;
456
+ /**
457
+ * Level will be compacted when there are more than this number of slices
458
+ *
459
+ * default 256
460
+ */
461
+ MaxSlicesPerLevel?: number;
462
+ /**
463
+ * Shard will be compacted when there are more than this number of levels
464
+ *
465
+ * default 16
466
+ */
467
+ MaxTotalLevels?: number;
468
+ /**
469
+ * Shard will avoid compacting less than this number of levels
470
+ *
471
+ * default 2
472
+ */
473
+ MinLevelsToCompact?: number;
474
+ /**
475
+ * Level will be compacted when it has X% of its data in upper levels
476
+ *
477
+ * default 100
478
+ */
479
+ NewDataPercentToCompact?: number;
480
+ /**
481
+ * Level will be compacted when it has X% of its rows in upper levels
482
+ *
483
+ * default 0
484
+ */
485
+ NewRowsPercentToCompact?: number;
486
+ /**
487
+ * Resource broker task type for compactions
488
+ *
489
+ * default 'compaction_gen1'
490
+ */
491
+ ResourceBrokerTask?: string;
492
+ /**
493
+ * Base priority for compaction tasks
494
+ *
495
+ * default 1000
496
+ */
497
+ TaskPriorityBase?: number;
498
+ /**
499
+ * Task priority will be increased for every N levels over the minimum
500
+ *
501
+ * default 1
502
+ */
503
+ TaskPriorityLevelsBoost?: number;
504
+ /**
505
+ * Task priority will be decreased for every N bytes of input
506
+ *
507
+ * default 4194304
508
+ *
509
+ * uint64
510
+ */
511
+ TaskPrioritySizePenalty?: string;
512
+ /**
513
+ * Part data may be reused, unless it would leave this much garbage
514
+ *
515
+ * default 20
516
+ */
517
+ MaxGarbagePercentToReuse?: number;
518
+ /**
519
+ * Minimum slice that that may be reused
520
+ *
521
+ * default 524288
522
+ *
523
+ * uint64
524
+ */
525
+ MinSliceSizeToReuse?: string;
526
+ }
527
+
528
+ interface TGenerationPolicy {
529
+ GenerationId?: number;
530
+ /** uint64 */
531
+ SizeToCompact?: string;
532
+ CountToCompact?: number;
533
+ ForceCountToCompact?: number;
534
+ /** uint64 */
535
+ ForceSizeToCompact?: string;
536
+ /** @deprecated */
537
+ CompactionBrokerQueue?: number;
538
+ KeepInCache?: boolean;
539
+ BackgroundCompactionPolicy?: TBackgroundPolicy;
540
+ ResourceBrokerTask?: string;
541
+ ExtraCompactionPercent?: number;
542
+ /** uint64 */
543
+ ExtraCompactionMinSize?: string;
544
+ ExtraCompactionExpPercent?: number;
545
+ /** uint64 */
546
+ ExtraCompactionExpMaxSize?: string;
547
+ /** uint64 */
548
+ UpliftPartSize?: string;
549
+ }
550
+
551
+ interface TBackgroundPolicy {
552
+ /**
553
+ * How much (in %) of forced compaction criteria should be met to submit background task.
554
+ *
555
+ * default 101 - no background compaction by default
556
+ */
557
+ Threshold?: number;
558
+ /**
559
+ * Base background compaction priority value (less priority means more important task).
560
+ * Value is used to compute real task priority basing on compaction criteria, time in queue etc.
561
+ *
562
+ * default 100
563
+ */
564
+ PriorityBase?: number;
565
+
566
+ /**
567
+ * Submitted background task may become more prioritized over time.
568
+ * New priority is computed as priority /= max(log(elapsed_seconds) * factor, 1);
569
+ *
570
+ * default 1.0
571
+ *
572
+ * double
573
+ */
574
+ TimeFactor?: number;
575
+
576
+ /** @deprecated default 5*/
577
+ TaskType?: number;
578
+ ResourceBrokerTask?: string;
579
+ }
580
+
581
+ enum EPurpose {
582
+ SysLog,
583
+ Log,
584
+ Data,
585
+ External,
586
+ }
587
+
588
+ enum EFreezeState {
589
+ Unspecified,
590
+ Freeze,
591
+ Unfreeze,
592
+ }
593
+
594
+ enum EColumnCache {
595
+ ColumnCacheNone,
596
+ ColumnCacheOnce,
597
+ ColumnCacheEver,
598
+ }
599
+
600
+ enum EColumnStorage {
601
+ ColumnStorage1,
602
+ ColumnStorage2,
603
+ ColumnStorage1Ext1,
604
+ ColumnStorage1Ext2,
605
+ ColumnStorage2Ext1,
606
+ ColumnStorage2Ext2,
607
+ ColumnStorage1Med2Ext2,
608
+ ColumnStorage2Med2Ext2,
609
+ ColumnStorageTest_1_2_1k,
610
+ }
611
+
612
+ enum ECompactionStrategy {
613
+ CompactionStrategyUnset,
614
+ CompactionStrategyGenerational,
615
+ CompactionStrategySharded,
616
+ }
@@ -0,0 +1,33 @@
1
+ export interface TIndexDescription {
2
+ Name?: string;
3
+ /** uint64 */
4
+ LocalPathId?: string;
5
+
6
+ Type?: EIndexType;
7
+ State?: EIndexState;
8
+
9
+ KeyColumnNames?: string[];
10
+
11
+ /** uint64 */
12
+ SchemaVersion?: string;
13
+
14
+ /** uint64 */
15
+ PathOwnerId?: string;
16
+
17
+ DataColumnNames?: string[];
18
+ /** uint64 */
19
+ DataSize?: string;
20
+ }
21
+
22
+ enum EIndexType {
23
+ EIndexTypeInvalid = 'EIndexTypeInvalid',
24
+ EIndexTypeGlobal = 'EIndexTypeGlobal',
25
+ EIndexTypeGlobalAsync = 'EIndexTypeGlobalAsync',
26
+ }
27
+
28
+ enum EIndexState {
29
+ EIndexStateInvalid = 'EIndexStateInvalid',
30
+ EIndexStateReady = 'EIndexStateReady',
31
+ EIndexStateNotReady = 'EIndexStateNotReady',
32
+ EIndexStateWriteOnly = 'EIndexStateWriteOnly',
33
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ydb-embedded-ui",
3
- "version": "4.10.0",
3
+ "version": "4.10.1",
4
4
  "files": [
5
5
  "dist"
6
6
  ],
@@ -1,3 +0,0 @@
1
- <svg width="14" height="14" viewBox="0 0 14 14" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M8.625 13.0156C8.625 13.2695 8.47266 13.498 8.24414 13.5742C8.04102 13.6758 7.76172 13.6504 7.58398 13.4727L5.55273 11.6445C5.42578 11.543 5.375 11.3652 5.375 11.1875C5.375 11.0352 5.42578 10.8574 5.55273 10.7559L7.58398 8.92773C7.76172 8.75 8.04102 8.72461 8.24414 8.82617C8.47266 8.90234 8.625 9.13086 8.625 9.35938V10.5781H9.03125C10.0215 10.5781 10.8594 9.76562 10.8594 8.75V4.61133C10.0215 4.35742 9.4375 3.57031 9.4375 2.65625C9.4375 1.53906 10.3262 0.625 11.4688 0.625C12.5859 0.625 13.5 1.53906 13.5 2.65625C13.5 3.57031 12.8906 4.35742 12.0781 4.61133V8.75C12.0781 10.4512 10.707 11.7969 9.03125 11.7969H8.625V13.0156ZM12.2812 2.65625C12.2812 2.22461 11.9004 1.84375 11.4688 1.84375C11.0117 1.84375 10.6562 2.22461 10.6562 2.65625C10.6562 3.11328 11.0117 3.46875 11.4688 3.46875C11.9004 3.46875 12.2812 3.11328 12.2812 2.65625ZM5.375 1.23438C5.375 1.00586 5.50195 0.777344 5.73047 0.701172C5.93359 0.599609 6.21289 0.625 6.39062 0.802734L8.42188 2.63086C8.54883 2.73242 8.625 2.91016 8.625 3.0625C8.625 3.24023 8.54883 3.41797 8.42188 3.51953L6.39062 5.34766C6.21289 5.52539 5.93359 5.55078 5.73047 5.44922C5.50195 5.37305 5.375 5.14453 5.375 4.89062V3.67188H4.96875C3.95312 3.67188 3.14062 4.50977 3.14062 5.5V9.66406C3.95312 9.91797 4.5625 10.7051 4.5625 11.5938C4.5625 12.7363 3.64844 13.625 2.53125 13.625C1.38867 13.625 0.5 12.7363 0.5 11.5938C0.5 10.7051 1.08398 9.91797 1.92188 9.66406V5.5C1.92188 3.82422 3.26758 2.45312 4.96875 2.45312H5.375V1.23438ZM1.71875 11.5938C1.71875 12.0508 2.07422 12.4062 2.53125 12.4062C2.96289 12.4062 3.34375 12.0508 3.34375 11.5938C3.34375 11.1621 2.96289 10.7812 2.53125 10.7812C2.07422 10.7812 1.71875 11.1621 1.71875 11.5938Z"/>
3
- </svg>