@nice2dev/ui 1.0.5 → 1.0.8

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.
Files changed (130) hide show
  1. package/README.md +253 -207
  2. package/dist/NiceAPIFlow.doc-DnQLPUie.js +30 -0
  3. package/dist/NiceAPIFlow.doc-Dx4qw1lm.cjs +6 -0
  4. package/dist/NiceBranchManager.doc-BXjiENlD.cjs +6 -0
  5. package/dist/NiceBranchManager.doc-xLB82YwU.js +30 -0
  6. package/dist/NiceButton-B5RXLDwI.cjs +1 -0
  7. package/dist/NiceButton-CDiS45Ya.cjs +1 -0
  8. package/dist/NiceButton-D9l39Rs7.js +595 -0
  9. package/dist/NiceButton-DmTHNHet.js +450 -0
  10. package/dist/NiceCodeTemplate.doc-BWxTE4C_.cjs +6 -0
  11. package/dist/NiceCodeTemplate.doc-CA2U5F-v.js +30 -0
  12. package/dist/NiceDataBranchGraph.doc-CkitupWc.js +29 -0
  13. package/dist/NiceDataBranchGraph.doc-DDUgipqH.cjs +5 -0
  14. package/dist/NiceDataBranchManager.doc-B0ODKOs4.js +30 -0
  15. package/dist/NiceDataBranchManager.doc-CC5o8ihs.cjs +6 -0
  16. package/dist/NiceDataConflictResolver.doc-CdzScNie.cjs +5 -0
  17. package/dist/NiceDataConflictResolver.doc-V8vxYAeo.js +29 -0
  18. package/dist/NiceDataDiffViewer.doc-CR14Bq3A.cjs +6 -0
  19. package/dist/NiceDataDiffViewer.doc-w2I2QjhX.js +30 -0
  20. package/dist/NiceDataMapper.doc-C7jSyHRM.js +30 -0
  21. package/dist/NiceDataMapper.doc-DXjQHz87.cjs +6 -0
  22. package/dist/NiceDataMergeBuilder.doc-CV32WC_w.cjs +6 -0
  23. package/dist/NiceDataMergeBuilder.doc-DtuYb3nx.js +30 -0
  24. package/dist/NiceDataSnapshot.doc-CFLkY3ry.js +30 -0
  25. package/dist/NiceDataSnapshot.doc-CpZyQ17u.cjs +6 -0
  26. package/dist/NiceErrorBoundary-BAeqfoSc.cjs +1 -0
  27. package/dist/NiceErrorBoundary-D1hh5GGe.js +732 -0
  28. package/dist/NiceErrorBoundary-Dta4TGee.cjs +1 -0
  29. package/dist/NiceErrorBoundary-niMx1aSJ.js +837 -0
  30. package/dist/NiceEventOrchestrator.doc-C4SJfIDV.js +30 -0
  31. package/dist/NiceEventOrchestrator.doc-CxjsLxBG.cjs +6 -0
  32. package/dist/NiceGitBlame.doc-BG3_K9_0.cjs +6 -0
  33. package/dist/NiceGitBlame.doc-DrJABEat.js +30 -0
  34. package/dist/NiceGitConflictResolver.doc-BK7hAfz6.js +30 -0
  35. package/dist/NiceGitConflictResolver.doc-CgroGM9_.cjs +6 -0
  36. package/dist/NiceGitDiffViewer.doc-BAwgcY_3.cjs +6 -0
  37. package/dist/NiceGitDiffViewer.doc-BXKJeP-E.js +30 -0
  38. package/dist/NiceGitGraph.doc-B-WtGuzn.cjs +5 -0
  39. package/dist/NiceGitGraph.doc-DxnDPCgC.js +29 -0
  40. package/dist/NiceGitHooks.doc-BrEizvMp.js +29 -0
  41. package/dist/NiceGitHooks.doc-C4EdV5zj.cjs +5 -0
  42. package/dist/NiceMergeRequestBuilder.doc-C5p8mYuh.cjs +6 -0
  43. package/dist/NiceMergeRequestBuilder.doc-Ct9RCmU8.js +30 -0
  44. package/dist/NiceModuleLifecyclePanel-BapdidD6.js +4776 -0
  45. package/dist/NiceModuleLifecyclePanel-Brg1RLwi.cjs +1 -0
  46. package/dist/NiceModuleLifecyclePanel-CsFsm534.cjs +1 -0
  47. package/dist/NiceModuleLifecyclePanel-I_TXRiiY.js +5053 -0
  48. package/dist/NicePinCodeInput-4q8yULuo.js +13359 -0
  49. package/dist/NicePinCodeInput-CrMfdxxc.js +15287 -0
  50. package/dist/NicePinCodeInput-D0aF9MK8.cjs +692 -0
  51. package/dist/NicePinCodeInput-eD2q8nGa.cjs +692 -0
  52. package/dist/NicePinCodeInput.css +1 -0
  53. package/dist/NicePipelineEditor.doc-0eGt8zbX.cjs +5 -0
  54. package/dist/NicePipelineEditor.doc-DTmaOebn.js +29 -0
  55. package/dist/NicePipelineMonitor.doc-67CmsRcf.cjs +5 -0
  56. package/dist/NicePipelineMonitor.doc-mSMdhuG8.js +29 -0
  57. package/dist/NiceSavedQueryPanel-BZNvqSQW.cjs +596 -0
  58. package/dist/NiceSavedQueryPanel-CUAsdOjJ.js +6190 -0
  59. package/dist/NiceSavedQueryPanel-DUw8plYP.js +5666 -0
  60. package/dist/NiceSavedQueryPanel-xpk09zy1.cjs +596 -0
  61. package/dist/NiceSavedQueryPanel.css +1 -0
  62. package/dist/NiceStateDesigner.doc-B36u0hNU.js +29 -0
  63. package/dist/NiceStateDesigner.doc-MPmvNHSx.cjs +5 -0
  64. package/dist/NiceStockChart-CHlOnWzN.cjs +287 -0
  65. package/dist/NiceStockChart-Cpmv9_Cc.js +2341 -0
  66. package/dist/NiceStockChart.css +1 -0
  67. package/dist/NiceTestBuilder.doc-BFInj8GJ.js +30 -0
  68. package/dist/NiceTestBuilder.doc-CB03U_uR.cjs +6 -0
  69. package/dist/NiceToggle-C1UKGXmJ.js +209 -0
  70. package/dist/NiceToggle-CaY1u82g.js +277 -0
  71. package/dist/NiceToggle-DFJFQv_Z.cjs +1 -0
  72. package/dist/NiceToggle-lVi-ETi0.cjs +1 -0
  73. package/dist/NiceWindow-D1awkyFl.js +1636 -0
  74. package/dist/NiceWindow-IdHAcP70.cjs +1 -0
  75. package/dist/NiceWindow-SiCaREbq.js +1408 -0
  76. package/dist/NiceWindow-yARTUJsg.cjs +1 -0
  77. package/dist/charts-Bx_kNBsE.js +4280 -0
  78. package/dist/charts-DECVsCHX.cjs +754 -0
  79. package/dist/charts.cjs +1 -0
  80. package/dist/charts.css +1 -0
  81. package/dist/charts.d.ts +1043 -0
  82. package/dist/charts.mjs +23 -0
  83. package/dist/core-BZBTsGWN.cjs +96 -0
  84. package/dist/core-BpghV7Ls.js +17555 -0
  85. package/dist/core-CfXsl755.js +16305 -0
  86. package/dist/core-DGJSUW64.cjs +96 -0
  87. package/dist/data-branching-De4ExX-S.cjs +1 -0
  88. package/dist/data-branching-DiRfob1f.js +6071 -0
  89. package/dist/data-branching.cjs +1 -0
  90. package/dist/data-branching.d.ts +401 -0
  91. package/dist/data-branching.mjs +9 -0
  92. package/dist/data.cjs +1 -0
  93. package/dist/data.d.ts +2003 -0
  94. package/dist/data.mjs +21 -0
  95. package/dist/devops-BnYinjkT.cjs +17 -0
  96. package/dist/devops-Ckh57eti.js +7198 -0
  97. package/dist/devops.cjs +1 -0
  98. package/dist/devops.d.ts +758 -0
  99. package/dist/devops.mjs +12 -0
  100. package/dist/editors.cjs +1 -0
  101. package/dist/editors.d.ts +2728 -0
  102. package/dist/editors.mjs +66 -0
  103. package/dist/feedback.cjs +1 -0
  104. package/dist/feedback.d.ts +339 -0
  105. package/dist/feedback.mjs +16 -0
  106. package/dist/index-C853adw1.cjs +6199 -0
  107. package/dist/index-CBIZ6mTQ.cjs +5734 -0
  108. package/dist/index-CIl98Vbm.js +72951 -0
  109. package/dist/index-CNwVELPJ.js +62857 -0
  110. package/dist/index-CUx_-gKK.cjs +1 -0
  111. package/dist/index-x8mRM4Jc.js +17 -0
  112. package/dist/index.cjs +1 -7866
  113. package/dist/index.css +1 -0
  114. package/dist/index.d.ts +4888 -180
  115. package/dist/index.mjs +1021 -105889
  116. package/dist/lazy.cjs +1 -0
  117. package/dist/lazy.d.ts +1880 -0
  118. package/dist/lazy.mjs +98 -0
  119. package/dist/navigation.cjs +1 -0
  120. package/dist/navigation.d.ts +1862 -0
  121. package/dist/navigation.mjs +576 -0
  122. package/dist/no-code-BCuadkm4.cjs +332 -0
  123. package/dist/no-code-TL7PyulA.js +7005 -0
  124. package/dist/no-code.cjs +1 -0
  125. package/dist/no-code.d.ts +870 -0
  126. package/dist/no-code.mjs +13 -0
  127. package/dist/overlays.cjs +1 -0
  128. package/dist/overlays.d.ts +706 -0
  129. package/dist/overlays.mjs +482 -0
  130. package/package.json +51 -1
package/dist/lazy.d.ts ADDED
@@ -0,0 +1,1880 @@
1
+ import { FC } from 'react';
2
+ import { ForwardRefExoticComponent } from 'react';
3
+ import { LazyExoticComponent } from 'react';
4
+ import { RefAttributes } from 'react';
5
+
6
+ declare interface ActionParam {
7
+ id: string;
8
+ name: string;
9
+ type: FieldType;
10
+ required?: boolean;
11
+ }
12
+
13
+ declare interface APIEndpoint {
14
+ id: string;
15
+ name: string;
16
+ description?: string;
17
+ method: HTTPMethod;
18
+ path: string;
19
+ tags?: string[];
20
+ pathParams?: ParamDefinition[];
21
+ queryParams?: ParamDefinition[];
22
+ headers?: ParamDefinition[];
23
+ body?: BodyDefinition;
24
+ responses: ResponseDefinition[];
25
+ retry?: RetryConfig;
26
+ cache?: EndpointCacheConfig;
27
+ timeout?: number;
28
+ mock?: MockResponse;
29
+ }
30
+
31
+ declare interface APIFlowDefinition {
32
+ id: string;
33
+ name: string;
34
+ description?: string;
35
+ baseUrl: string;
36
+ version?: string;
37
+ endpoints: APIEndpoint[];
38
+ auth?: AuthConfig;
39
+ globalHeaders?: Record<string, string>;
40
+ errorHandling?: ErrorHandlingConfig;
41
+ cacheConfig?: CacheConfig;
42
+ }
43
+
44
+ declare interface Assertion {
45
+ matcher: AssertionMatcher;
46
+ expected?: unknown;
47
+ not?: boolean;
48
+ }
49
+
50
+ declare type AssertionMatcher = 'toEqual' | 'toBe' | 'toBeTruthy' | 'toBeFalsy' | 'toBeNull' | 'toBeUndefined' | 'toContain' | 'toHaveLength' | 'toBeInTheDocument' | 'toHaveTextContent' | 'toHaveAttribute' | 'toHaveClass' | 'toHaveStyle' | 'toHaveBeenCalled' | 'toHaveBeenCalledWith' | 'toHaveBeenCalledTimes' | 'toThrow' | 'toMatchSnapshot';
51
+
52
+ declare interface AuthConfig {
53
+ type: 'none' | 'bearer' | 'basic' | 'api-key' | 'oauth2';
54
+ tokenSource?: string;
55
+ headerName?: string;
56
+ prefix?: string;
57
+ }
58
+
59
+ declare interface BlameAuthor {
60
+ id: string;
61
+ name: string;
62
+ email: string;
63
+ avatar?: string;
64
+ }
65
+
66
+ declare interface BlameCommit {
67
+ id: string;
68
+ shortId: string;
69
+ message: string;
70
+ author: BlameAuthor;
71
+ timestamp: Date;
72
+ parents?: string[];
73
+ }
74
+
75
+ declare interface BlameFile {
76
+ path: string;
77
+ revision: string;
78
+ hunks: BlameHunk[];
79
+ language?: string;
80
+ totalLines: number;
81
+ }
82
+
83
+ declare interface BlameHunk {
84
+ startLine: number;
85
+ endLine: number;
86
+ commit: BlameCommit;
87
+ lines: BlameLine[];
88
+ }
89
+
90
+ declare interface BlameLine {
91
+ lineNumber: number;
92
+ content: string;
93
+ commit: BlameCommit;
94
+ originalLineNumber?: number;
95
+ originalFilename?: string;
96
+ }
97
+
98
+ declare type BlameViewMode = 'inline' | 'gutter' | 'tooltip';
99
+
100
+ declare interface BodyDefinition {
101
+ contentType: 'application/json' | 'multipart/form-data' | 'application/x-www-form-urlencoded' | 'text/plain';
102
+ schema?: SchemaDefinition;
103
+ }
104
+
105
+ declare interface BranchProtectionRule {
106
+ pattern: string;
107
+ requirePullRequest?: boolean;
108
+ requiredReviewers?: number;
109
+ requireStatusChecks?: string[];
110
+ requireSignedCommits?: boolean;
111
+ allowForcePush?: boolean;
112
+ allowDeletion?: boolean;
113
+ }
114
+
115
+ declare type BranchStatus = 'active' | 'stale' | 'merged' | 'deleted' | 'syncing' | 'conflict';
116
+
117
+ declare interface CacheConfig {
118
+ enabled: boolean;
119
+ storage: 'memory' | 'localStorage' | 'sessionStorage';
120
+ defaultTTL: number;
121
+ }
122
+
123
+ /** Diff change types */
124
+ declare type ChangeType = 'added' | 'modified' | 'deleted' | 'renamed' | 'unchanged';
125
+
126
+ declare interface CodeTemplate {
127
+ id: string;
128
+ name: string;
129
+ description: string;
130
+ category: string;
131
+ icon?: string;
132
+ engine: TemplateEngine;
133
+ variables: TemplateVariable[];
134
+ files: TemplateFile[];
135
+ hooks?: {
136
+ beforeGenerate?: string;
137
+ afterGenerate?: string;
138
+ };
139
+ metadata?: {
140
+ author?: string;
141
+ version?: string;
142
+ tags?: string[];
143
+ framework?: string;
144
+ };
145
+ }
146
+
147
+ declare interface ComputedField {
148
+ id: string;
149
+ name: string;
150
+ expression: string;
151
+ dependencies: string[];
152
+ }
153
+
154
+ declare interface ConfigField {
155
+ name: string;
156
+ label: string;
157
+ type: 'string' | 'number' | 'boolean' | 'select' | 'code' | 'json';
158
+ options?: {
159
+ value: string;
160
+ label: string;
161
+ }[];
162
+ required?: boolean;
163
+ default?: unknown;
164
+ }
165
+
166
+ declare interface ConfigField_2 {
167
+ name: string;
168
+ label: string;
169
+ type: 'string' | 'number' | 'boolean' | 'select' | 'code' | 'json';
170
+ options?: {
171
+ value: string;
172
+ label: string;
173
+ }[];
174
+ required?: boolean;
175
+ default?: unknown;
176
+ }
177
+
178
+ declare interface ConflictFile {
179
+ path: string;
180
+ language?: string;
181
+ baseRef: string;
182
+ oursRef: string;
183
+ theirsRef: string;
184
+ content: string;
185
+ conflicts: ConflictRegion[];
186
+ }
187
+
188
+ declare interface ConflictRegion {
189
+ id: string;
190
+ startLine: number;
191
+ endLine: number;
192
+ baseContent: string[];
193
+ oursContent: string[];
194
+ theirsContent: string[];
195
+ resolved: boolean;
196
+ resolution?: 'ours' | 'theirs' | 'both' | 'custom';
197
+ customContent?: string[];
198
+ }
199
+
200
+ declare interface ConflictResolution {
201
+ conflictId: string;
202
+ strategy: MergeStrategy;
203
+ fieldResolutions: FieldResolutionMap;
204
+ }
205
+
206
+ declare interface ConflictResolutionChoice {
207
+ conflictId: string;
208
+ strategy: MergeStrategy;
209
+ customValue?: unknown;
210
+ }
211
+
212
+ declare type ConflictType = 'concurrent-update' | 'delete-update' | 'update-delete' | 'constraint-violation' | 'unique-key-conflict' | 'foreign-key-missing' | 'type-mismatch' | 'schema-change';
213
+
214
+ declare type ConflictViewMode = 'inline' | 'split' | 'three-way';
215
+
216
+ declare interface CreateSnapshotConfig {
217
+ name: string;
218
+ description?: string;
219
+ tables?: string[];
220
+ tags?: string[];
221
+ }
222
+
223
+ declare interface DataBranch extends VersioningBranch {
224
+ type: 'data';
225
+ environment: DataEnvironment;
226
+ tenant: string;
227
+ sourceSnapshot?: string;
228
+ syncSchedule?: SyncSchedule;
229
+ tables?: string[];
230
+ size?: {
231
+ records: number;
232
+ bytes: number;
233
+ };
234
+ }
235
+
236
+ declare interface DataBranchCommit {
237
+ id: string;
238
+ shortId: string;
239
+ message: string;
240
+ description?: string;
241
+ branch: string;
242
+ environment: DataEnvironment;
243
+ author: {
244
+ id: string;
245
+ name: string;
246
+ };
247
+ timestamp: Date;
248
+ parents: string[];
249
+ isMerge: boolean;
250
+ isSnapshot: boolean;
251
+ stats: {
252
+ tables: number;
253
+ recordsAdded: number;
254
+ recordsModified: number;
255
+ recordsDeleted: number;
256
+ };
257
+ tags?: string[];
258
+ }
259
+
260
+ declare interface DataConflict {
261
+ id: string;
262
+ table: string;
263
+ tableName: string;
264
+ recordId: string;
265
+ recordLabel?: string;
266
+ type: ConflictType;
267
+ severity: 'low' | 'medium' | 'high' | 'critical';
268
+ fields: FieldConflict[];
269
+ metadata?: {
270
+ sourceModifiedAt?: Date;
271
+ sourceModifiedBy?: string;
272
+ targetModifiedAt?: Date;
273
+ targetModifiedBy?: string;
274
+ };
275
+ suggestion?: MergeStrategy;
276
+ suggestionReason?: string;
277
+ }
278
+
279
+ declare type DataEnvironment = 'development' | 'testing' | 'uat' | 'staging' | 'production';
280
+
281
+ declare interface DataFieldDiff {
282
+ field: string;
283
+ fieldType: string;
284
+ oldValue: unknown;
285
+ newValue: unknown;
286
+ changeType: ChangeType;
287
+ }
288
+
289
+ declare interface DataSource {
290
+ id: string;
291
+ name: string;
292
+ type: 'state' | 'prop' | 'context' | 'constant';
293
+ path: string;
294
+ }
295
+
296
+ declare type DataType = 'string' | 'number' | 'boolean' | 'date' | 'array' | 'object' | 'any';
297
+
298
+ declare interface DevToolsConfig {
299
+ enabled: boolean;
300
+ name?: string;
301
+ anonymousActionType?: string;
302
+ trace?: boolean;
303
+ }
304
+
305
+ declare interface DiffChunk {
306
+ oldStart: number;
307
+ oldLines: number;
308
+ newStart: number;
309
+ newLines: number;
310
+ lines: DiffLine[];
311
+ header?: string;
312
+ }
313
+
314
+ declare interface DiffComment {
315
+ id: string;
316
+ filePath: string;
317
+ line: number;
318
+ side: 'old' | 'new';
319
+ author: {
320
+ name: string;
321
+ avatar?: string;
322
+ };
323
+ body: string;
324
+ createdAt: Date;
325
+ resolved?: boolean;
326
+ }
327
+
328
+ declare interface DiffFile {
329
+ path: string;
330
+ oldPath?: string;
331
+ status: 'added' | 'modified' | 'deleted' | 'renamed' | 'copied';
332
+ binary?: boolean;
333
+ additions: number;
334
+ deletions: number;
335
+ chunks: DiffChunk[];
336
+ language?: string;
337
+ }
338
+
339
+ declare interface DiffLine {
340
+ lineNumberOld?: number;
341
+ lineNumberNew?: number;
342
+ content: string;
343
+ type: 'context' | 'addition' | 'deletion' | 'header';
344
+ }
345
+
346
+ declare type DiffViewMode = 'split' | 'unified';
347
+
348
+ declare interface EndpointCacheConfig {
349
+ enabled: boolean;
350
+ ttl: number;
351
+ strategy: 'cache-first' | 'network-first' | 'stale-while-revalidate';
352
+ }
353
+
354
+ declare interface ErrorHandlingConfig {
355
+ globalErrorHandler?: boolean;
356
+ retryOnNetworkError?: boolean;
357
+ transformError?: boolean;
358
+ }
359
+
360
+ declare interface EventCondition {
361
+ field: string;
362
+ operator: 'eq' | 'neq' | 'gt' | 'lt' | 'gte' | 'lte' | 'contains' | 'exists';
363
+ value: unknown;
364
+ }
365
+
366
+ declare interface EventFilter {
367
+ field?: string;
368
+ value?: unknown;
369
+ expression?: string;
370
+ }
371
+
372
+ declare interface EventFlow {
373
+ id: string;
374
+ name: string;
375
+ description?: string;
376
+ enabled: boolean;
377
+ source: EventSource_2;
378
+ handlers: EventHandler[];
379
+ errorHandler?: EventHandler;
380
+ }
381
+
382
+ declare interface EventHandler {
383
+ id: string;
384
+ type: EventHandlerType;
385
+ config: Record<string, unknown>;
386
+ modifiers?: EventModifier[];
387
+ condition?: EventCondition;
388
+ next?: string;
389
+ }
390
+
391
+ declare interface EventHandlerDefinition {
392
+ type: EventHandlerType;
393
+ label: string;
394
+ icon: string;
395
+ color: string;
396
+ configSchema: ConfigField[];
397
+ }
398
+
399
+ declare type EventHandlerType = 'action' | 'transform' | 'dispatch' | 'api-call' | 'state-update' | 'notification' | 'log' | 'delay' | 'branch';
400
+
401
+ declare interface EventModifier {
402
+ type: 'debounce' | 'throttle' | 'delay' | 'retry' | 'once';
403
+ value: number;
404
+ unit?: 'ms' | 's';
405
+ }
406
+
407
+ declare interface EventSource_2 {
408
+ id: string;
409
+ type: EventSourceType;
410
+ config: Record<string, unknown>;
411
+ filter?: EventFilter;
412
+ }
413
+
414
+ declare interface EventSourceDefinition {
415
+ type: EventSourceType;
416
+ label: string;
417
+ icon: string;
418
+ color: string;
419
+ configSchema: ConfigField[];
420
+ }
421
+
422
+ declare type EventSourceType = 'ui-event' | 'api-response' | 'websocket' | 'timer' | 'custom' | 'state-change' | 'broadcast';
423
+
424
+ declare interface ExpectedResult {
425
+ type: 'value' | 'element' | 'state' | 'call' | 'error' | 'snapshot';
426
+ assertion: Assertion;
427
+ }
428
+
429
+ declare type ExportFormat = 'zustand' | 'redux-toolkit' | 'jotai' | 'recoil' | 'mobx';
430
+
431
+ declare type ExportFormat_2 = 'sql' | 'json' | 'csv' | 'parquet';
432
+
433
+ declare interface FieldConflict {
434
+ field: string;
435
+ fieldLabel: string;
436
+ dataType: string;
437
+ sourceValue: unknown;
438
+ targetValue: unknown;
439
+ baseValue?: unknown;
440
+ resolution?: 'source' | 'target' | 'custom' | 'skip';
441
+ customValue?: unknown;
442
+ }
443
+
444
+ declare interface FieldDefinition {
445
+ id: string;
446
+ name: string;
447
+ path: string;
448
+ type: DataType;
449
+ nullable?: boolean;
450
+ children?: FieldDefinition[];
451
+ description?: string;
452
+ }
453
+
454
+ declare interface FieldMapping {
455
+ id: string;
456
+ sourceField: string;
457
+ targetField: string;
458
+ transform?: string;
459
+ condition?: string;
460
+ defaultValue?: unknown;
461
+ }
462
+
463
+ declare type FieldResolutionMap = Record<string, {
464
+ resolution: 'source' | 'target' | 'custom';
465
+ value: unknown;
466
+ }>;
467
+
468
+ declare type FieldType = 'string' | 'number' | 'boolean' | 'array' | 'object' | 'date' | 'enum' | 'custom';
469
+
470
+ declare interface FrameworkPreset {
471
+ id: string;
472
+ name: string;
473
+ icon: string;
474
+ description: string;
475
+ templates: CodeTemplate[];
476
+ }
477
+
478
+ declare interface GeneratedFile {
479
+ path: string;
480
+ content: string;
481
+ language?: string;
482
+ }
483
+
484
+ declare interface GitBranch {
485
+ name: string;
486
+ isRemote: boolean;
487
+ isHead: boolean;
488
+ upstream?: string;
489
+ ahead?: number;
490
+ behind?: number;
491
+ lastCommit?: string;
492
+ protected?: boolean;
493
+ }
494
+
495
+ declare interface GitBranch_2 {
496
+ name: string;
497
+ isRemote: boolean;
498
+ isHead: boolean;
499
+ upstream?: string;
500
+ ahead?: number;
501
+ behind?: number;
502
+ lastCommit?: {
503
+ hash: string;
504
+ message: string;
505
+ author: string;
506
+ date: Date;
507
+ };
508
+ protected?: boolean;
509
+ description?: string;
510
+ }
511
+
512
+ declare interface GitCommit {
513
+ hash: string;
514
+ shortHash: string;
515
+ message: string;
516
+ body?: string;
517
+ author: {
518
+ name: string;
519
+ email: string;
520
+ avatar?: string;
521
+ };
522
+ date: Date;
523
+ parents: string[];
524
+ /** Branch heads pointing at this commit */
525
+ branches?: string[];
526
+ /** Tags pointing at this commit */
527
+ tags?: string[];
528
+ /** Is this a merge commit */
529
+ isMerge?: boolean;
530
+ /** Files changed (summary) */
531
+ stats?: {
532
+ additions: number;
533
+ deletions: number;
534
+ filesChanged: number;
535
+ };
536
+ }
537
+
538
+ declare interface GitHook {
539
+ type: GitHookType;
540
+ enabled: boolean;
541
+ actions: HookAction[];
542
+ parallel?: boolean;
543
+ timeout?: number;
544
+ verbose?: boolean;
545
+ }
546
+
547
+ declare type GitHookType = 'pre-commit' | 'prepare-commit-msg' | 'commit-msg' | 'post-commit' | 'pre-push' | 'pre-rebase' | 'post-merge' | 'post-checkout' | 'pre-auto-gc';
548
+
549
+ declare interface GitTag {
550
+ name: string;
551
+ commit: string;
552
+ message?: string;
553
+ tagger?: string;
554
+ date?: Date;
555
+ isAnnotated?: boolean;
556
+ }
557
+
558
+ declare interface HookAction {
559
+ id: string;
560
+ type: 'lint' | 'test' | 'format' | 'typecheck' | 'build' | 'custom';
561
+ name: string;
562
+ command: string;
563
+ description?: string;
564
+ icon?: string;
565
+ runOn?: 'staged' | 'all' | 'changed';
566
+ filePatterns?: string[];
567
+ condition?: HookCondition;
568
+ order: number;
569
+ enabled: boolean;
570
+ failOnError: boolean;
571
+ }
572
+
573
+ declare interface HookCondition {
574
+ type: 'branch' | 'files' | 'env' | 'custom';
575
+ operator: 'equals' | 'contains' | 'matches' | 'exists' | 'not';
576
+ value: string;
577
+ }
578
+
579
+ declare interface HookTemplate {
580
+ id: string;
581
+ name: string;
582
+ description: string;
583
+ icon: string;
584
+ category: 'lint' | 'test' | 'security' | 'quality' | 'ci';
585
+ hook: GitHookType;
586
+ actions: Omit<HookAction, 'id' | 'order'>[];
587
+ }
588
+
589
+ declare type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS';
590
+
591
+ declare type JobStatus = 'pending' | 'running' | 'success' | 'failure' | 'cancelled' | 'skipped' | 'waiting';
592
+
593
+ export declare const LazyAPIFlow: LazyExoticComponent<FC<NiceAPIFlowProps>>;
594
+
595
+ export declare const LazyBranchManager: LazyExoticComponent<FC<NiceBranchManagerProps>>;
596
+
597
+ export declare const LazyChart: LazyExoticComponent<FC<NiceChartProps>>;
598
+
599
+ export declare const LazyCodeTemplate: LazyExoticComponent<FC<NiceCodeTemplateProps>>;
600
+
601
+ export declare const LazyDataBranchGraph: LazyExoticComponent<FC<NiceDataBranchGraphProps>>;
602
+
603
+ export declare const LazyDataBranchManager: LazyExoticComponent<FC<NiceDataBranchManagerProps>>;
604
+
605
+ export declare const LazyDataConflictResolver: LazyExoticComponent<FC<NiceDataConflictResolverProps>>;
606
+
607
+ export declare const LazyDataDiffViewer: LazyExoticComponent<FC<NiceDataDiffViewerProps>>;
608
+
609
+ export declare const LazyDataMapper: LazyExoticComponent<FC<NiceDataMapperProps>>;
610
+
611
+ export declare const LazyDataMergeBuilder: LazyExoticComponent<FC<NiceDataMergeBuilderProps>>;
612
+
613
+ export declare const LazyDataSnapshot: LazyExoticComponent<FC<NiceDataSnapshotProps>>;
614
+
615
+ export declare const LazyEventOrchestrator: LazyExoticComponent<FC<NiceEventOrchestratorProps>>;
616
+
617
+ export declare const LazyGitBlame: LazyExoticComponent<FC<NiceGitBlameProps>>;
618
+
619
+ export declare const LazyGitConflictResolver: LazyExoticComponent<FC<NiceGitConflictResolverProps>>;
620
+
621
+ export declare const LazyGitDiffViewer: LazyExoticComponent<FC<NiceGitDiffViewerProps>>;
622
+
623
+ export declare const LazyGitGraph: LazyExoticComponent<FC<NiceGitGraphProps>>;
624
+
625
+ export declare const LazyGitHooks: LazyExoticComponent<FC<NiceGitHooksProps>>;
626
+
627
+ export declare const LazyMergeRequestBuilder: LazyExoticComponent<FC<NiceMergeRequestBuilderProps>>;
628
+
629
+ export declare const LazyPipelineEditor: LazyExoticComponent<FC<NicePipelineEditorProps>>;
630
+
631
+ export declare const LazyPipelineMonitor: LazyExoticComponent<FC<NicePipelineMonitorProps>>;
632
+
633
+ export declare const LazySankey: LazyExoticComponent<FC<NiceSankeyProps>>;
634
+
635
+ export declare const LazyStateDesigner: LazyExoticComponent<FC<NiceStateDesignerProps>>;
636
+
637
+ export declare const LazyTestBuilder: LazyExoticComponent<FC<NiceTestBuilderProps>>;
638
+
639
+ export declare const LazyTreemap: LazyExoticComponent<ForwardRefExoticComponent<NiceTreeMapProps & RefAttributes<HTMLDivElement>>>;
640
+
641
+ declare interface MappingDefinition {
642
+ id: string;
643
+ name: string;
644
+ description?: string;
645
+ sourceSchema: SchemaDefinition_2;
646
+ targetSchema: SchemaDefinition_2;
647
+ fieldMappings: FieldMapping[];
648
+ transformations: Transformation[];
649
+ validationRules: ValidationRule_2[];
650
+ }
651
+
652
+ declare interface MergeConfig {
653
+ sourceId: string;
654
+ targetId: string;
655
+ strategy: MergeStrategy;
656
+ tables?: string[];
657
+ createBackup: boolean;
658
+ dryRun: boolean;
659
+ scheduledAt?: Date;
660
+ conflictResolutions?: Record<string, ConflictResolutionChoice>;
661
+ }
662
+
663
+ declare interface MergeContext {
664
+ baseCommit: {
665
+ id: string;
666
+ shortId: string;
667
+ message: string;
668
+ author: string;
669
+ };
670
+ oursCommit: {
671
+ id: string;
672
+ shortId: string;
673
+ message: string;
674
+ author: string;
675
+ branch: string;
676
+ };
677
+ theirsCommit: {
678
+ id: string;
679
+ shortId: string;
680
+ message: string;
681
+ author: string;
682
+ branch: string;
683
+ };
684
+ }
685
+
686
+ declare interface MergeRequestData {
687
+ title: string;
688
+ description: string;
689
+ sourceBranch: string;
690
+ targetBranch: string;
691
+ isDraft: boolean;
692
+ labels: string[];
693
+ reviewers: string[];
694
+ assignees: string[];
695
+ linkedIssues: string[];
696
+ squashCommits: boolean;
697
+ deleteSourceBranch: boolean;
698
+ }
699
+
700
+ declare interface MergeRequestDiff {
701
+ additions: number;
702
+ deletions: number;
703
+ changedFiles: number;
704
+ files: Array<{
705
+ path: string;
706
+ status: 'added' | 'modified' | 'deleted' | 'renamed';
707
+ additions: number;
708
+ deletions: number;
709
+ }>;
710
+ }
711
+
712
+ declare interface MergeRequestIssue {
713
+ id: string;
714
+ number: number;
715
+ title: string;
716
+ state: 'open' | 'closed';
717
+ labels?: MergeRequestLabel[];
718
+ }
719
+
720
+ declare interface MergeRequestLabel {
721
+ id: string;
722
+ name: string;
723
+ color: string;
724
+ description?: string;
725
+ }
726
+
727
+ declare interface MergeRequestTemplate {
728
+ id: string;
729
+ name: string;
730
+ description: string;
731
+ content: string;
732
+ }
733
+
734
+ declare interface MergeRequestUser {
735
+ id: string;
736
+ name: string;
737
+ email: string;
738
+ avatar?: string;
739
+ }
740
+
741
+ /** Merge strategies */
742
+ declare type MergeStrategy = 'keep-source' | 'keep-target' | 'keep-both' | 'keep-base' | 'manual' | 'auto';
743
+
744
+ declare interface MiddlewareConfig {
745
+ type: 'logger' | 'persist' | 'devtools' | 'immer' | 'custom';
746
+ enabled: boolean;
747
+ options?: Record<string, unknown>;
748
+ }
749
+
750
+ declare interface MockConfig {
751
+ name: string;
752
+ type: MockType;
753
+ implementation?: string;
754
+ returnValue?: unknown;
755
+ }
756
+
757
+ declare interface MockDefinition {
758
+ name: string;
759
+ type: MockType;
760
+ description?: string;
761
+ configSchema?: ConfigField_2[];
762
+ }
763
+
764
+ declare interface MockResponse {
765
+ enabled: boolean;
766
+ delay?: number;
767
+ status?: number;
768
+ body?: unknown;
769
+ }
770
+
771
+ declare type MockType = 'function' | 'module' | 'api' | 'timer' | 'storage';
772
+
773
+ /**
774
+ * Per-component visibility & interaction level used by the access control system.
775
+ * - `'full'` — fully interactive (default)
776
+ * - `'readOnly'` — renders but cannot be edited
777
+ * - `'disabled'` — renders greyed-out
778
+ * - `'hidden'` — not rendered at all
779
+ */
780
+ declare type NiceAccessMode = 'full' | 'readOnly' | 'disabled' | 'hidden';
781
+
782
+ declare interface NiceAPIFlowProps extends NiceBaseProps {
783
+ /** API flow definition */
784
+ flow?: APIFlowDefinition;
785
+ /** Available data sources */
786
+ dataSources?: DataSource[];
787
+ onFlowChange?: (flow: APIFlowDefinition) => void;
788
+ onExport?: (code: string) => void;
789
+ onTest?: (endpointId: string) => void;
790
+ onSave?: (flow: APIFlowDefinition) => void;
791
+ }
792
+
793
+ /** Base props inherited by every NiceToDev component. */
794
+ declare interface NiceBaseProps {
795
+ /** Additional CSS class name(s). */
796
+ className?: string;
797
+ /** Inline style object. */
798
+ style?: React.CSSProperties;
799
+ /** HTML `id` attribute. When omitted a stable auto-generated id is used. */
800
+ id?: string;
801
+ /** Tooltip text shown on hover. */
802
+ title?: string;
803
+ /** Test identifier for integration / e2e test selectors. */
804
+ 'data-testid'?: string;
805
+ /** Controls component visibility and interaction — see {@link NiceAccessMode}. */
806
+ accessMode?: NiceAccessMode;
807
+ /**
808
+ * Visual presentation style override.
809
+ * When set, overrides the global `displayStyle` from `NiceThemeProvider`.
810
+ * @see NiceDisplayStyle
811
+ */
812
+ displayStyle?: NiceDisplayStyle;
813
+ }
814
+
815
+ declare interface NiceBranchManagerProps extends NiceBaseProps {
816
+ /** All branches */
817
+ branches: GitBranch_2[];
818
+ /** Current HEAD branch */
819
+ currentBranch?: string;
820
+ /** Default branch */
821
+ defaultBranch?: string;
822
+ /** Protection rules */
823
+ protectionRules?: BranchProtectionRule[];
824
+ /** Show remote branches */
825
+ showRemotes?: boolean;
826
+ /** Selected branch */
827
+ selectedBranch?: string;
828
+ onBranchSelect?: (branch: string) => void;
829
+ onCheckout?: (branch: string) => void;
830
+ onCreateBranch?: (name: string, fromBranch?: string) => void;
831
+ onDeleteBranch?: (branch: string, force?: boolean) => void;
832
+ onRenameBranch?: (oldName: string, newName: string) => void;
833
+ onMerge?: (source: string, target: string) => void;
834
+ onRebase?: (branch: string, onto: string) => void;
835
+ onSetUpstream?: (branch: string, upstream: string) => void;
836
+ onPush?: (branch: string, force?: boolean) => void;
837
+ onPull?: (branch: string) => void;
838
+ onCompare?: (branch1: string, branch2: string) => void;
839
+ onProtectionChange?: (branch: string, rule: BranchProtectionRule | null) => void;
840
+ }
841
+
842
+ /** An annotation (reference line or label) overlaid on a {@link NiceChart}. */
843
+ declare interface NiceChartAnnotation {
844
+ type: 'line' | 'label';
845
+ /** For 'line': y-value to draw horizontal line at. For 'label': x-index. */
846
+ value: number;
847
+ label?: string;
848
+ color?: string;
849
+ dash?: string;
850
+ }
851
+
852
+ /**
853
+ * Props for the NiceChart component — an SVG-based bar, line, and area chart
854
+ * with stacking, zoom, crosshair, annotations, legend interaction and PNG export.
855
+ */
856
+ declare interface NiceChartProps extends NiceBaseProps {
857
+ series: NiceChartSeries[];
858
+ categories?: string[];
859
+ width?: number;
860
+ height?: number;
861
+ title?: string;
862
+ showLegend?: boolean;
863
+ showGrid?: boolean;
864
+ showTooltip?: boolean;
865
+ yAxisLabel?: string;
866
+ xAxisLabel?: string;
867
+ stacked?: boolean;
868
+ /** Enable zoom/pan via mouse wheel and drag. */
869
+ zoomable?: boolean;
870
+ /** Show crosshair line at mouse position. */
871
+ crosshair?: boolean;
872
+ /** Annotations: horizontal lines, labels on chart. */
873
+ annotations?: NiceChartAnnotation[];
874
+ /** Click legend items to toggle series visibility. */
875
+ legendInteractive?: boolean;
876
+ /** Called when a data point is clicked for drill-down. */
877
+ onDataPointClick?: (seriesName: string, dataIndex: number, value: number) => void;
878
+ /** Show export button to download chart as PNG. */
879
+ exportable?: boolean;
880
+ }
881
+
882
+ /** A single data series in a {@link NiceChart}. */
883
+ declare interface NiceChartSeries {
884
+ name: string;
885
+ data: number[];
886
+ color?: string;
887
+ type?: 'bar' | 'line' | 'area';
888
+ }
889
+
890
+ declare interface NiceCodeTemplateProps extends NiceBaseProps {
891
+ /** Available templates */
892
+ templates: CodeTemplate[];
893
+ /** Framework presets */
894
+ presets?: FrameworkPreset[];
895
+ /** Currently selected template */
896
+ selectedTemplate?: string;
897
+ /** Template engine */
898
+ defaultEngine?: TemplateEngine;
899
+ /** Show template library */
900
+ showLibrary?: boolean;
901
+ onTemplateSelect?: (template: CodeTemplate) => void;
902
+ onTemplateCreate?: (template: CodeTemplate) => void;
903
+ onTemplateUpdate?: (template: CodeTemplate) => void;
904
+ onTemplateDelete?: (templateId: string) => void;
905
+ onGenerate?: (files: GeneratedFile[], variables: Record<string, unknown>) => void;
906
+ onExport?: (template: CodeTemplate, format: 'json' | 'zip') => void;
907
+ onImport?: (template: CodeTemplate) => void;
908
+ }
909
+
910
+ declare interface NiceDataBranchGraphProps extends NiceBaseProps {
911
+ /** Branches to display */
912
+ branches?: DataBranch[];
913
+ /** Commits/snapshots */
914
+ commits?: DataBranchCommit[];
915
+ /** Selected commit ID */
916
+ selectedCommitId?: string;
917
+ /** View mode */
918
+ viewMode?: 'timeline' | 'graph' | 'list';
919
+ /** Show environment lanes */
920
+ showLanes?: boolean;
921
+ onSelectCommit?: (commitId: string) => void;
922
+ onSelectBranch?: (branchId: string) => void;
923
+ onCompare?: (sourceId: string, targetId: string) => void;
924
+ onRestore?: (commitId: string) => void;
925
+ }
926
+
927
+ declare interface NiceDataBranchManagerProps extends NiceBaseProps {
928
+ /** Current tenant ID */
929
+ tenant: string;
930
+ /** Available environments/branches */
931
+ branches?: DataBranch[];
932
+ /** Current user */
933
+ currentUser?: VersioningAuthor;
934
+ /** Available tables for partial clone */
935
+ availableTables?: TableInfo[];
936
+ /** Read-only mode */
937
+ readOnly?: boolean;
938
+ onCreateBranch?: (branch: DataBranch) => void;
939
+ onDeleteBranch?: (branchId: string) => void;
940
+ onSwitchBranch?: (branchId: string) => void;
941
+ onCloneBranch?: (sourceId: string, targetEnv: DataEnvironment, tables?: string[]) => void;
942
+ onSyncBranch?: (branchId: string, direction: 'push' | 'pull') => void;
943
+ onProtectBranch?: (branchId: string, rules: ProtectionConfig) => void;
944
+ onScheduleSync?: (branchId: string, schedule: SyncSchedule) => void;
945
+ }
946
+
947
+ declare interface NiceDataConflictResolverProps extends NiceBaseProps {
948
+ /** Conflicts to resolve */
949
+ conflicts?: DataConflict[];
950
+ /** Source environment */
951
+ sourceEnvironment?: DataEnvironment;
952
+ /** Target environment */
953
+ targetEnvironment?: DataEnvironment;
954
+ /** Show auto-resolution suggestions */
955
+ showSuggestions?: boolean;
956
+ /** Allow custom value editing */
957
+ allowCustomValues?: boolean;
958
+ onResolve?: (resolutions: ConflictResolution[]) => void;
959
+ onSkip?: (conflictId: string) => void;
960
+ onCancel?: () => void;
961
+ }
962
+
963
+ declare interface NiceDataDiffViewerProps extends NiceBaseProps {
964
+ /** Source environment */
965
+ sourceBranch?: DataBranch;
966
+ /** Target environment */
967
+ targetBranch?: DataBranch;
968
+ /** Available branches for selection */
969
+ branches?: DataBranch[];
970
+ /** Diff data */
971
+ diffItems?: TableDiffSummary[];
972
+ onCompare?: (sourceId: string, targetId: string) => void;
973
+ onExport?: (format: 'json' | 'csv' | 'sql') => void;
974
+ onSelectRecord?: (table: string, recordId: string) => void;
975
+ }
976
+
977
+ declare interface NiceDataMapperProps extends NiceBaseProps {
978
+ /** Mapping definition */
979
+ mapping?: MappingDefinition;
980
+ /** Available source schemas */
981
+ sourceSchemas?: SchemaInfo[];
982
+ /** Available target schemas */
983
+ targetSchemas?: SchemaInfo[];
984
+ onMappingChange?: (mapping: MappingDefinition) => void;
985
+ onExport?: (code: string) => void;
986
+ onTest?: (input: unknown) => void;
987
+ onSave?: (mapping: MappingDefinition) => void;
988
+ }
989
+
990
+ declare interface NiceDataMergeBuilderProps extends NiceBaseProps {
991
+ /** Available branches */
992
+ branches?: DataBranch[];
993
+ /** Pre-selected source branch */
994
+ sourceBranchId?: string;
995
+ /** Pre-selected target branch */
996
+ targetBranchId?: string;
997
+ onPreview?: (sourceId: string, targetId: string) => void;
998
+ onMerge?: (config: MergeConfig) => void;
999
+ onCancel?: () => void;
1000
+ }
1001
+
1002
+ declare interface NiceDataSnapshotProps extends NiceBaseProps {
1003
+ /** Current environment */
1004
+ environment?: DataEnvironment;
1005
+ /** Available snapshots */
1006
+ snapshots?: Snapshot[];
1007
+ /** Retention policy */
1008
+ retentionPolicy?: RetentionPolicy;
1009
+ /** Scheduled snapshots */
1010
+ schedules?: SnapshotSchedule[];
1011
+ onCreateSnapshot?: (config: CreateSnapshotConfig) => void;
1012
+ onRestoreSnapshot?: (snapshotId: string) => void;
1013
+ onDeleteSnapshot?: (snapshotId: string) => void;
1014
+ onCompareSnapshots?: (sourceId: string, targetId: string) => void;
1015
+ onExportSnapshot?: (snapshotId: string, format: ExportFormat_2) => void;
1016
+ onUpdateRetentionPolicy?: (policy: RetentionPolicy) => void;
1017
+ onUpdateSchedules?: (schedules: SnapshotSchedule[]) => void;
1018
+ }
1019
+
1020
+ /**
1021
+ * Cross-component visual presentation style.
1022
+ * Each style maps 1:1 to a ThemeVariantConfig preset controlling
1023
+ * buttons, inputs, cards, badges, tabs, toggles, tooltips, tables, etc.
1024
+ */
1025
+ declare type NiceDisplayStyle = 'default' | 'minimal' | 'rounded' | 'sharp' | 'glass' | 'neumorphic' | 'playful' | 'enterprise' | 'modern3d' | 'brutalist' | 'luxe' | 'pill' | 'flat' | 'editorial' | 'dashboard' | 'softCloud' | 'cosmic' | 'corporate' | 'bank' | 'government' | 'military' | 'legal' | 'medical' | 'swiss' | 'scandinavian' | 'bauhaus' | 'notebook' | 'origami' | 'watercolor' | 'monochrome' | 'paper' | 'zen' | 'terminal' | 'hacker' | 'retro8bit' | 'synthwave' | 'cyberpunk' | 'steampunk' | 'vapor' | 'neon' | 'windows95' | 'material' | 'fluent' | 'cupertino' | 'ant' | 'bootstrap' | 'chakra' | 'notion' | 'linear' | 'vercel' | 'candy' | 'bubblegum' | 'cartoon' | 'kawaii' | 'circus' | 'gaming' | 'kiddo' | 'disco' | 'clown';
1026
+
1027
+ declare interface NiceEventOrchestratorProps extends NiceBaseProps {
1028
+ /** Initial event flows */
1029
+ flows?: EventFlow[];
1030
+ /** Available event sources */
1031
+ eventSources?: EventSourceDefinition[];
1032
+ /** Available event handlers */
1033
+ eventHandlers?: EventHandlerDefinition[];
1034
+ onFlowsChange?: (flows: EventFlow[]) => void;
1035
+ onExport?: (code: string) => void;
1036
+ onTest?: (flowId: string) => void;
1037
+ }
1038
+
1039
+ declare interface NiceGitBlameProps extends NiceBaseProps {
1040
+ /** Blame data for the file */
1041
+ file: BlameFile;
1042
+ /** How to display blame info */
1043
+ viewMode?: BlameViewMode;
1044
+ /** Show commit ages as colors */
1045
+ showAgeHeatmap?: boolean;
1046
+ /** Show author avatars */
1047
+ showAvatars?: boolean;
1048
+ /** Group consecutive lines from same commit */
1049
+ groupHunks?: boolean;
1050
+ /** Highlight commit on hover */
1051
+ highlightOnHover?: boolean;
1052
+ /** Time zone for date formatting */
1053
+ timeZone?: string;
1054
+ /** Filter by date range */
1055
+ dateRange?: {
1056
+ from?: Date;
1057
+ to?: Date;
1058
+ };
1059
+ /** Filter by authors */
1060
+ authorFilter?: string[];
1061
+ /** Selected line */
1062
+ selectedLine?: number;
1063
+ /** Syntax highlighting theme */
1064
+ syntaxTheme?: 'dark' | 'light';
1065
+ onLineClick?: (line: BlameLine) => void;
1066
+ onCommitClick?: (commit: BlameCommit) => void;
1067
+ onAuthorClick?: (author: BlameAuthor) => void;
1068
+ onBlameParent?: (commit: BlameCommit) => void;
1069
+ }
1070
+
1071
+ declare interface NiceGitConflictResolverProps extends NiceBaseProps {
1072
+ /** File with conflicts */
1073
+ file: ConflictFile;
1074
+ /** Merge context information */
1075
+ context?: MergeContext;
1076
+ /** View mode */
1077
+ viewMode?: ConflictViewMode;
1078
+ /** Show line numbers */
1079
+ showLineNumbers?: boolean;
1080
+ /** Show base (ancestor) version */
1081
+ showBase?: boolean;
1082
+ /** Current focused conflict index */
1083
+ currentConflictIndex?: number;
1084
+ /** Syntax highlighting theme */
1085
+ syntaxTheme?: 'dark' | 'light';
1086
+ onResolve?: (conflictId: string, resolution: ConflictRegion['resolution'], content?: string[]) => void;
1087
+ onResolveAll?: (resolution: 'ours' | 'theirs') => void;
1088
+ onNavigateConflict?: (index: number) => void;
1089
+ onSave?: (content: string) => void;
1090
+ onCancel?: () => void;
1091
+ }
1092
+
1093
+ declare interface NiceGitDiffViewerProps extends NiceBaseProps {
1094
+ /** Diff files */
1095
+ files: DiffFile[];
1096
+ /** View mode */
1097
+ viewMode?: DiffViewMode;
1098
+ /** Show whitespace changes */
1099
+ showWhitespace?: boolean;
1100
+ /** Comments on the diff */
1101
+ comments?: DiffComment[];
1102
+ /** Selected file */
1103
+ selectedFile?: string;
1104
+ /** Show file tree */
1105
+ showFileTree?: boolean;
1106
+ /** Context lines around changes */
1107
+ contextLines?: number;
1108
+ /** Base commit/branch for comparison */
1109
+ baseRef?: string;
1110
+ /** Head commit/branch for comparison */
1111
+ headRef?: string;
1112
+ onFileSelect?: (path: string) => void;
1113
+ onViewModeChange?: (mode: DiffViewMode) => void;
1114
+ onAddComment?: (filePath: string, line: number, side: 'old' | 'new', body: string) => void;
1115
+ onResolveComment?: (commentId: string) => void;
1116
+ onExpandChunk?: (filePath: string, chunkIndex: number) => void;
1117
+ }
1118
+
1119
+ declare interface NiceGitGraphProps extends NiceBaseProps {
1120
+ /** Commits to display (newest first) */
1121
+ commits: GitCommit[];
1122
+ /** All branches */
1123
+ branches: GitBranch[];
1124
+ /** All tags */
1125
+ tags: GitTag[];
1126
+ /** Currently checked out branch/commit */
1127
+ head?: string;
1128
+ /** Selected commit hash */
1129
+ selectedCommit?: string;
1130
+ /** Branch filter */
1131
+ branchFilter?: string[];
1132
+ /** Author filter */
1133
+ authorFilter?: string[];
1134
+ /** Date range filter */
1135
+ dateRange?: {
1136
+ from?: Date;
1137
+ to?: Date;
1138
+ };
1139
+ /** Search query */
1140
+ searchQuery?: string;
1141
+ /** Max commits to show */
1142
+ maxCommits?: number;
1143
+ /** Show remote branches */
1144
+ showRemotes?: boolean;
1145
+ /** Show tags */
1146
+ showTags?: boolean;
1147
+ /** Compact mode */
1148
+ compact?: boolean;
1149
+ onCommitSelect?: (commit: GitCommit) => void;
1150
+ onCommitDoubleClick?: (commit: GitCommit) => void;
1151
+ onBranchCheckout?: (branch: string) => void;
1152
+ onBranchCreate?: (fromCommit: string) => void;
1153
+ onTagCreate?: (commit: string) => void;
1154
+ onCherryPick?: (commit: string) => void;
1155
+ onRevert?: (commit: string) => void;
1156
+ onReset?: (commit: string, mode: 'soft' | 'mixed' | 'hard') => void;
1157
+ onCompare?: (commit1: string, commit2: string) => void;
1158
+ onViewDiff?: (commit: string) => void;
1159
+ }
1160
+
1161
+ declare interface NiceGitHooksProps extends NiceBaseProps {
1162
+ /** Current hooks configuration */
1163
+ hooks: GitHook[];
1164
+ /** Available templates */
1165
+ templates?: HookTemplate[];
1166
+ /** Hook manager type */
1167
+ manager?: 'native' | 'husky' | 'lefthook' | 'simple-git-hooks';
1168
+ /** Repository path */
1169
+ repoPath?: string;
1170
+ /** Currently editing hook */
1171
+ selectedHook?: GitHookType;
1172
+ onHookChange?: (hook: GitHook) => void;
1173
+ onHookToggle?: (hookType: GitHookType, enabled: boolean) => void;
1174
+ onActionAdd?: (hookType: GitHookType, action: HookAction) => void;
1175
+ onActionRemove?: (hookType: GitHookType, actionId: string) => void;
1176
+ onActionUpdate?: (hookType: GitHookType, action: HookAction) => void;
1177
+ onInstall?: (hookType: GitHookType) => void;
1178
+ onUninstall?: (hookType: GitHookType) => void;
1179
+ onExport?: (hooks: GitHook[], format: 'shell' | 'husky' | 'lefthook') => void;
1180
+ }
1181
+
1182
+ declare interface NiceMergeRequestBuilderProps extends NiceBaseProps {
1183
+ /** Available branches */
1184
+ branches: Array<{
1185
+ name: string;
1186
+ isRemote?: boolean;
1187
+ }>;
1188
+ /** Available users for assignment */
1189
+ users?: MergeRequestUser[];
1190
+ /** Available labels */
1191
+ labels?: MergeRequestLabel[];
1192
+ /** Open issues */
1193
+ issues?: MergeRequestIssue[];
1194
+ /** Description templates */
1195
+ templates?: MergeRequestTemplate[];
1196
+ /** Diff summary */
1197
+ diff?: MergeRequestDiff;
1198
+ /** Current branch */
1199
+ currentBranch?: string;
1200
+ /** Default target branch */
1201
+ defaultTargetBranch?: string;
1202
+ /** Initial source branch */
1203
+ initialSourceBranch?: string;
1204
+ /** Platform type */
1205
+ platform?: 'github' | 'gitlab' | 'bitbucket' | 'azure';
1206
+ onSubmit?: (data: MergeRequestData) => void;
1207
+ onCancel?: () => void;
1208
+ onBranchChange?: (source: string, target: string) => void;
1209
+ onPreview?: (data: MergeRequestData) => void;
1210
+ }
1211
+
1212
+ declare interface NicePipelineEditorProps extends NiceBaseProps {
1213
+ pipeline: Pipeline;
1214
+ templates: PipelineTemplate[];
1215
+ runners: Array<{
1216
+ id: string;
1217
+ name: string;
1218
+ os: string;
1219
+ available: boolean;
1220
+ }>;
1221
+ environments: Array<{
1222
+ id: string;
1223
+ name: string;
1224
+ protection: boolean;
1225
+ }>;
1226
+ onPipelineChange: (pipeline: Pipeline) => void;
1227
+ onStageAdd: () => void;
1228
+ onStageRemove: (stageId: string) => void;
1229
+ onStageMove: (stageId: string, direction: 'up' | 'down') => void;
1230
+ onJobAdd: (stageId: string) => void;
1231
+ onJobRemove: (stageId: string, jobId: string) => void;
1232
+ onStepAdd: (stageId: string, jobId: string) => void;
1233
+ onStepRemove: (stageId: string, jobId: string, stepId: string) => void;
1234
+ onVariableAdd: () => void;
1235
+ onVariableRemove: (name: string) => void;
1236
+ onSecretAdd: () => void;
1237
+ onSecretRemove: (name: string) => void;
1238
+ onTemplateApply: (template: PipelineTemplate) => void;
1239
+ onSave: () => void;
1240
+ onRun: () => void;
1241
+ onValidate: () => void;
1242
+ }
1243
+
1244
+ declare interface NicePipelineMonitorProps extends NiceBaseProps {
1245
+ runs: PipelineRun[];
1246
+ stats?: PipelineStats;
1247
+ selectedRunId?: string;
1248
+ onRunSelect: (runId: string) => void;
1249
+ onCancel: (runId: string) => void;
1250
+ onRerun: (runId: string) => void;
1251
+ onRerunFromStage: (runId: string, stageId: string) => void;
1252
+ onDownloadArtifact: (artifact: PipelineArtifact) => void;
1253
+ onDownloadLogs: (runId: string) => void;
1254
+ onApprove?: (runId: string, stageId: string) => void;
1255
+ onReject?: (runId: string, stageId: string) => void;
1256
+ refreshInterval?: number;
1257
+ }
1258
+
1259
+ /** A flow link between two {@link NiceSankeyNode} entries. */
1260
+ declare interface NiceSankeyLink {
1261
+ /** Source node id. */
1262
+ source: string;
1263
+ /** Target node id. */
1264
+ target: string;
1265
+ /** Flow magnitude. */
1266
+ value: number;
1267
+ }
1268
+
1269
+ /** A node in the {@link NiceSankey} diagram. */
1270
+ declare interface NiceSankeyNode {
1271
+ /** Unique identifier. */
1272
+ id: string;
1273
+ /** Node label. */
1274
+ label: string;
1275
+ /** Node color. */
1276
+ color?: string;
1277
+ }
1278
+
1279
+ /** Props for the {@link NiceSankey} component — an SVG Sankey flow diagram. */
1280
+ declare interface NiceSankeyProps extends NiceBaseProps {
1281
+ /** Node definitions. */
1282
+ nodes: NiceSankeyNode[];
1283
+ /** Link definitions. */
1284
+ links: NiceSankeyLink[];
1285
+ /** SVG width in px. */
1286
+ width?: number;
1287
+ /** SVG height in px. */
1288
+ height?: number;
1289
+ /** Node rectangle width in px. */
1290
+ nodeWidth?: number;
1291
+ /** Vertical padding between nodes. */
1292
+ nodePadding?: number;
1293
+ /** Chart title. */
1294
+ title?: string;
1295
+ }
1296
+
1297
+ declare interface NiceStateDesignerProps extends NiceBaseProps {
1298
+ /** Initial store definition */
1299
+ store?: StoreDefinition;
1300
+ /** Available state templates */
1301
+ templates?: StoreTemplate[];
1302
+ onStoreChange?: (store: StoreDefinition) => void;
1303
+ onExport?: (code: string, format: ExportFormat) => void;
1304
+ onSave?: (store: StoreDefinition) => void;
1305
+ }
1306
+
1307
+ declare interface NiceTestBuilderProps extends NiceBaseProps {
1308
+ /** Target component name */
1309
+ componentName?: string;
1310
+ /** Test suites */
1311
+ testSuites?: TestSuite[];
1312
+ /** Available mock definitions */
1313
+ availableMocks?: MockDefinition[];
1314
+ onSuitesChange?: (suites: TestSuite[]) => void;
1315
+ onExport?: (code: string) => void;
1316
+ onRun?: (suiteId: string) => void;
1317
+ onRunAll?: () => void;
1318
+ }
1319
+
1320
+ /** A hierarchical node in the {@link NiceTreeMap}. */
1321
+ declare interface NiceTreeMapNode {
1322
+ /** Unique key. */
1323
+ key: string;
1324
+ /** Node label. */
1325
+ label: string;
1326
+ /** Numeric weight (determines area). */
1327
+ value: number;
1328
+ /** Node color. */
1329
+ color?: string;
1330
+ /** Child nodes. */
1331
+ children?: NiceTreeMapNode[];
1332
+ }
1333
+
1334
+ /** Props for the {@link NiceTreeMap} component — a squarified treemap visualization. */
1335
+ declare interface NiceTreeMapProps extends NiceBaseProps {
1336
+ /** Root node. */
1337
+ data: NiceTreeMapNode;
1338
+ /** SVG width in px. */
1339
+ width?: number;
1340
+ /** SVG height in px. */
1341
+ height?: number;
1342
+ /** Called when a leaf node is clicked. */
1343
+ onNodeClick?: (node: NiceTreeMapNode) => void;
1344
+ /** Color palette. */
1345
+ colors?: string[];
1346
+ }
1347
+
1348
+ declare interface ParamDefinition {
1349
+ id: string;
1350
+ name: string;
1351
+ type: 'string' | 'number' | 'boolean' | 'array' | 'object';
1352
+ required?: boolean;
1353
+ defaultValue?: unknown;
1354
+ description?: string;
1355
+ validation?: ValidationRule[];
1356
+ }
1357
+
1358
+ declare interface PersistConfig {
1359
+ enabled: boolean;
1360
+ key: string;
1361
+ storage: 'localStorage' | 'sessionStorage' | 'indexedDB' | 'custom';
1362
+ whitelist?: string[];
1363
+ blacklist?: string[];
1364
+ version?: number;
1365
+ migrate?: boolean;
1366
+ }
1367
+
1368
+ declare interface Pipeline {
1369
+ id: string;
1370
+ name: string;
1371
+ description?: string;
1372
+ repository: string;
1373
+ branch?: string;
1374
+ triggers: PipelineTrigger[];
1375
+ stages: PipelineStage[];
1376
+ variables: PipelineVariable[];
1377
+ secrets: PipelineSecret[];
1378
+ isEnabled: boolean;
1379
+ createdAt: Date;
1380
+ updatedAt: Date;
1381
+ }
1382
+
1383
+ declare interface PipelineArtifact {
1384
+ id: string;
1385
+ name: string;
1386
+ size: number;
1387
+ jobId: string;
1388
+ downloadUrl: string;
1389
+ expiresAt?: Date;
1390
+ }
1391
+
1392
+ declare interface PipelineJob {
1393
+ id: string;
1394
+ name: string;
1395
+ runner?: string;
1396
+ environment?: string;
1397
+ steps: PipelineStep[];
1398
+ timeout?: number;
1399
+ condition?: string;
1400
+ services?: string[];
1401
+ }
1402
+
1403
+ declare interface PipelineRun {
1404
+ id: string;
1405
+ pipelineId: string;
1406
+ pipelineName: string;
1407
+ runNumber: number;
1408
+ status: RunStatus;
1409
+ branch: string;
1410
+ commit: {
1411
+ sha: string;
1412
+ message: string;
1413
+ author: string;
1414
+ authorAvatar?: string;
1415
+ };
1416
+ trigger: 'push' | 'pull_request' | 'schedule' | 'manual' | 'api';
1417
+ startedAt?: Date;
1418
+ completedAt?: Date;
1419
+ duration?: number;
1420
+ stages: PipelineRunStage[];
1421
+ artifacts: PipelineArtifact[];
1422
+ environment?: string;
1423
+ }
1424
+
1425
+ declare interface PipelineRunJob {
1426
+ id: string;
1427
+ name: string;
1428
+ status: JobStatus;
1429
+ runner?: string;
1430
+ startedAt?: Date;
1431
+ completedAt?: Date;
1432
+ duration?: number;
1433
+ steps: PipelineRunStep[];
1434
+ }
1435
+
1436
+ declare interface PipelineRunStage {
1437
+ id: string;
1438
+ name: string;
1439
+ status: JobStatus;
1440
+ startedAt?: Date;
1441
+ completedAt?: Date;
1442
+ duration?: number;
1443
+ jobs: PipelineRunJob[];
1444
+ }
1445
+
1446
+ declare interface PipelineRunStep {
1447
+ id: string;
1448
+ name: string;
1449
+ status: JobStatus;
1450
+ startedAt?: Date;
1451
+ completedAt?: Date;
1452
+ duration?: number;
1453
+ logs?: string[];
1454
+ errorMessage?: string;
1455
+ }
1456
+
1457
+ declare interface PipelineSecret {
1458
+ name: string;
1459
+ source: 'vault' | 'environment' | 'repository';
1460
+ key: string;
1461
+ }
1462
+
1463
+ declare interface PipelineStage {
1464
+ id: string;
1465
+ name: string;
1466
+ jobs: PipelineJob[];
1467
+ condition?: string;
1468
+ dependsOn?: string[];
1469
+ parallel: boolean;
1470
+ }
1471
+
1472
+ declare interface PipelineStats {
1473
+ totalRuns: number;
1474
+ successRate: number;
1475
+ avgDuration: number;
1476
+ failedRuns: number;
1477
+ runsByDay: {
1478
+ date: string;
1479
+ success: number;
1480
+ failed: number;
1481
+ }[];
1482
+ }
1483
+
1484
+ declare interface PipelineStep {
1485
+ id: string;
1486
+ name: string;
1487
+ type: 'script' | 'action' | 'checkout' | 'upload_artifact' | 'download_artifact' | 'docker' | 'deploy';
1488
+ script?: string;
1489
+ action?: string;
1490
+ actionVersion?: string;
1491
+ with?: Record<string, string>;
1492
+ env?: Record<string, string>;
1493
+ condition?: string;
1494
+ continueOnError?: boolean;
1495
+ }
1496
+
1497
+ declare interface PipelineTemplate {
1498
+ id: string;
1499
+ name: string;
1500
+ description: string;
1501
+ category: string;
1502
+ icon: string;
1503
+ pipeline: Partial<Pipeline>;
1504
+ }
1505
+
1506
+ declare type PipelineTrigger = 'push' | 'pull_request' | 'schedule' | 'manual' | 'tag' | 'workflow_dispatch';
1507
+
1508
+ declare interface PipelineVariable {
1509
+ name: string;
1510
+ value: string;
1511
+ isSecret: boolean;
1512
+ scope: 'pipeline' | 'stage' | 'job';
1513
+ }
1514
+
1515
+ /**
1516
+ * Preload Data Branching module when user hovers over Data section
1517
+ */
1518
+ export declare const preloadDataBranching: () => void;
1519
+
1520
+ /**
1521
+ * Preload DevOps module when user hovers over DevOps navigation
1522
+ */
1523
+ export declare const preloadDevOps: () => void;
1524
+
1525
+ /**
1526
+ * Preload all heavy modules (use during idle time)
1527
+ */
1528
+ export declare const preloadHeavyModules: () => void;
1529
+
1530
+ /**
1531
+ * Preload No-Code module when user hovers over No-Code navigation
1532
+ */
1533
+ export declare const preloadNoCode: () => void;
1534
+
1535
+ declare interface ProtectionConfig {
1536
+ requireApproval: boolean;
1537
+ approversCount: number;
1538
+ requireBackup: boolean;
1539
+ allowDirectChanges: boolean;
1540
+ restrictTables?: string[];
1541
+ }
1542
+
1543
+ declare interface ProviderConfig {
1544
+ name: string;
1545
+ props?: Record<string, unknown>;
1546
+ }
1547
+
1548
+ declare interface RecordDiff {
1549
+ id: string;
1550
+ changeType: ChangeType;
1551
+ primaryKey: Record<string, unknown>;
1552
+ fields: DataFieldDiff[];
1553
+ changedAt?: Date;
1554
+ changedBy?: string;
1555
+ }
1556
+
1557
+ declare interface ReducerStep {
1558
+ id: string;
1559
+ type: 'set' | 'update' | 'push' | 'remove' | 'reset' | 'custom';
1560
+ field: string;
1561
+ value?: string;
1562
+ condition?: string;
1563
+ }
1564
+
1565
+ declare interface ResponseDefinition {
1566
+ status: number;
1567
+ description?: string;
1568
+ schema?: SchemaDefinition;
1569
+ headers?: Record<string, string>;
1570
+ }
1571
+
1572
+ declare interface RetentionPolicy {
1573
+ enabled: boolean;
1574
+ maxCount?: number;
1575
+ maxAgeDays?: number;
1576
+ keepTagged?: boolean;
1577
+ keepLocked?: boolean;
1578
+ }
1579
+
1580
+ declare interface RetryConfig {
1581
+ enabled: boolean;
1582
+ maxAttempts: number;
1583
+ backoff: 'linear' | 'exponential';
1584
+ retryOn?: number[];
1585
+ }
1586
+
1587
+ declare type RunStatus = 'queued' | 'in_progress' | 'completed' | 'failed' | 'cancelled' | 'waiting' | 'skipped';
1588
+
1589
+ declare interface SchemaDefinition {
1590
+ type: 'object' | 'array' | 'string' | 'number' | 'boolean';
1591
+ properties?: Record<string, SchemaDefinition>;
1592
+ items?: SchemaDefinition;
1593
+ required?: string[];
1594
+ }
1595
+
1596
+ declare interface SchemaDefinition_2 {
1597
+ name: string;
1598
+ type: 'object' | 'array';
1599
+ fields: FieldDefinition[];
1600
+ }
1601
+
1602
+ declare interface SchemaInfo {
1603
+ id: string;
1604
+ name: string;
1605
+ schema: SchemaDefinition_2;
1606
+ }
1607
+
1608
+ declare interface Snapshot {
1609
+ id: string;
1610
+ name: string;
1611
+ description?: string;
1612
+ environment: DataEnvironment;
1613
+ createdAt: Date;
1614
+ createdBy: {
1615
+ id: string;
1616
+ name: string;
1617
+ };
1618
+ size: {
1619
+ records: number;
1620
+ bytes: number;
1621
+ };
1622
+ type: 'manual' | 'scheduled' | 'pre-merge' | 'pre-restore';
1623
+ status: 'creating' | 'ready' | 'failed' | 'expired' | 'locked';
1624
+ tables?: string[];
1625
+ tags?: string[];
1626
+ expiresAt?: Date;
1627
+ }
1628
+
1629
+ declare interface SnapshotSchedule {
1630
+ id: string;
1631
+ name: string;
1632
+ cron: string;
1633
+ enabled: boolean;
1634
+ nextRun?: Date;
1635
+ lastRun?: Date;
1636
+ retainCount?: number;
1637
+ }
1638
+
1639
+ declare interface StateAction {
1640
+ id: string;
1641
+ name: string;
1642
+ description?: string;
1643
+ params: ActionParam[];
1644
+ reducerSteps: ReducerStep[];
1645
+ async?: boolean;
1646
+ errorHandling?: 'throw' | 'catch' | 'ignore';
1647
+ }
1648
+
1649
+ declare interface StateField {
1650
+ id: string;
1651
+ name: string;
1652
+ type: FieldType;
1653
+ defaultValue?: unknown;
1654
+ nullable?: boolean;
1655
+ description?: string;
1656
+ }
1657
+
1658
+ declare interface StateSelector {
1659
+ id: string;
1660
+ name: string;
1661
+ description?: string;
1662
+ dependencies: string[];
1663
+ expression: string;
1664
+ memoized?: boolean;
1665
+ }
1666
+
1667
+ declare interface StateSlice {
1668
+ id: string;
1669
+ name: string;
1670
+ description?: string;
1671
+ state: StateField[];
1672
+ actions: StateAction[];
1673
+ selectors: StateSelector[];
1674
+ computed?: ComputedField[];
1675
+ }
1676
+
1677
+ declare interface StoreDefinition {
1678
+ id: string;
1679
+ name: string;
1680
+ description?: string;
1681
+ slices: StateSlice[];
1682
+ middleware?: MiddlewareConfig[];
1683
+ persist?: PersistConfig;
1684
+ devtools?: DevToolsConfig;
1685
+ }
1686
+
1687
+ declare interface StoreTemplate {
1688
+ id: string;
1689
+ name: string;
1690
+ description: string;
1691
+ icon: string;
1692
+ store: Partial<StoreDefinition>;
1693
+ }
1694
+
1695
+ declare interface SyncSchedule {
1696
+ enabled: boolean;
1697
+ frequency: 'manual' | 'hourly' | 'daily' | 'weekly';
1698
+ lastSync?: VersioningTimestamp;
1699
+ nextSync?: VersioningTimestamp;
1700
+ direction: 'push' | 'pull' | 'bidirectional';
1701
+ }
1702
+
1703
+ declare interface TableDiffSummary {
1704
+ table: string;
1705
+ displayName: string;
1706
+ module?: string;
1707
+ added: number;
1708
+ modified: number;
1709
+ deleted: number;
1710
+ records: RecordDiff[];
1711
+ }
1712
+
1713
+ declare interface TableInfo {
1714
+ name: string;
1715
+ displayName: string;
1716
+ recordCount: number;
1717
+ sizeBytes: number;
1718
+ module?: string;
1719
+ hasForeignKeys?: boolean;
1720
+ }
1721
+
1722
+ declare type TemplateEngine = 'handlebars' | 'ejs' | 'mustache' | 'simple';
1723
+
1724
+ declare interface TemplateFile {
1725
+ id: string;
1726
+ name: string;
1727
+ path: string;
1728
+ content: string;
1729
+ language?: string;
1730
+ condition?: string;
1731
+ }
1732
+
1733
+ declare interface TemplateVariable {
1734
+ id: string;
1735
+ name: string;
1736
+ type: 'string' | 'number' | 'boolean' | 'array' | 'object' | 'select';
1737
+ defaultValue?: unknown;
1738
+ description?: string;
1739
+ required?: boolean;
1740
+ options?: string[];
1741
+ validation?: {
1742
+ pattern?: string;
1743
+ minLength?: number;
1744
+ maxLength?: number;
1745
+ min?: number;
1746
+ max?: number;
1747
+ };
1748
+ }
1749
+
1750
+ declare type TestAction = 'render' | 'click' | 'type' | 'select' | 'hover' | 'focus' | 'blur' | 'submit' | 'keypress' | 'wait' | 'scroll' | 'drag' | 'assert' | 'snapshot' | 'a11y-check';
1751
+
1752
+ declare interface TestCase {
1753
+ id: string;
1754
+ name: string;
1755
+ description?: string;
1756
+ type: TestType;
1757
+ steps: TestStep[];
1758
+ expectedResult?: ExpectedResult;
1759
+ timeout?: number;
1760
+ skip?: boolean;
1761
+ only?: boolean;
1762
+ }
1763
+
1764
+ declare interface TestSetup {
1765
+ mocks: MockConfig[];
1766
+ providers?: ProviderConfig[];
1767
+ props?: Record<string, unknown>;
1768
+ }
1769
+
1770
+ declare interface TestStep {
1771
+ id: string;
1772
+ action: TestAction;
1773
+ target?: string;
1774
+ value?: unknown;
1775
+ waitFor?: WaitCondition;
1776
+ }
1777
+
1778
+ declare interface TestSuite {
1779
+ id: string;
1780
+ name: string;
1781
+ description?: string;
1782
+ componentName: string;
1783
+ setup?: TestSetup;
1784
+ tests: TestCase[];
1785
+ teardown?: TestTeardown;
1786
+ }
1787
+
1788
+ declare interface TestTeardown {
1789
+ cleanup?: string[];
1790
+ }
1791
+
1792
+ declare type TestType = 'unit' | 'integration' | 'e2e' | 'snapshot' | 'accessibility';
1793
+
1794
+ declare interface Transformation {
1795
+ id: string;
1796
+ name: string;
1797
+ type: TransformType;
1798
+ config: TransformConfig;
1799
+ }
1800
+
1801
+ declare interface TransformConfig {
1802
+ expression?: string;
1803
+ format?: string;
1804
+ convertTo?: DataType;
1805
+ separator?: string;
1806
+ lookupTable?: Record<string, unknown>;
1807
+ condition?: string;
1808
+ thenValue?: unknown;
1809
+ elseValue?: unknown;
1810
+ }
1811
+
1812
+ declare type TransformType = 'direct' | 'format' | 'convert' | 'concat' | 'split' | 'calculate' | 'lookup' | 'conditional' | 'custom';
1813
+
1814
+ declare interface ValidationRule {
1815
+ type: 'required' | 'min' | 'max' | 'pattern' | 'enum';
1816
+ value?: unknown;
1817
+ message?: string;
1818
+ }
1819
+
1820
+ declare interface ValidationRule_2 {
1821
+ id: string;
1822
+ field: string;
1823
+ type: ValidationType;
1824
+ value?: unknown;
1825
+ message?: string;
1826
+ }
1827
+
1828
+ declare type ValidationType = 'required' | 'type' | 'min' | 'max' | 'pattern' | 'enum' | 'custom';
1829
+
1830
+ /** Author/User information */
1831
+ declare interface VersioningAuthor {
1832
+ id: string;
1833
+ name: string;
1834
+ email?: string;
1835
+ avatar?: string;
1836
+ }
1837
+
1838
+ /** Base branch representation */
1839
+ declare interface VersioningBranch extends VersioningId {
1840
+ name: string;
1841
+ displayName?: string;
1842
+ description?: string;
1843
+ isDefault: boolean;
1844
+ isProtected: boolean;
1845
+ createdBy: VersioningAuthor;
1846
+ createdAt: VersioningTimestamp;
1847
+ lastActivity?: VersioningTimestamp;
1848
+ upstream?: string;
1849
+ status: BranchStatus;
1850
+ metadata?: Record<string, unknown>;
1851
+ }
1852
+
1853
+ /**
1854
+ * NiceVersioningCore — Shared abstraction for Git and Data Branching
1855
+ * @nice2dev/ui - Versioning System
1856
+ *
1857
+ * Provides common types, hooks, and utilities for:
1858
+ * - Git version control (code)
1859
+ * - Data Branching (ERP data)
1860
+ */
1861
+ /** Base versioning entity identifier */
1862
+ declare interface VersioningId {
1863
+ id: string;
1864
+ shortId: string;
1865
+ }
1866
+
1867
+ /** Timestamp with timezone */
1868
+ declare interface VersioningTimestamp {
1869
+ date: Date;
1870
+ timezone?: string;
1871
+ relative?: string;
1872
+ }
1873
+
1874
+ declare interface WaitCondition {
1875
+ type: 'timeout' | 'element' | 'text' | 'api' | 'state';
1876
+ value: unknown;
1877
+ timeout?: number;
1878
+ }
1879
+
1880
+ export { }