@tailor-platform/sdk 1.56.0 → 1.57.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +0 -23
  3. package/dist/{application-YHZIkjdy.mjs → application-CdkoGX27.mjs} +37 -4
  4. package/dist/application-CdkoGX27.mjs.map +1 -0
  5. package/dist/application-x_mURdR0.mjs +4 -0
  6. package/dist/cli/erd-viewer-assets/app.js +1181 -0
  7. package/dist/cli/erd-viewer-assets/index.html +73 -0
  8. package/dist/cli/erd-viewer-assets/serve.json +13 -0
  9. package/dist/cli/erd-viewer-assets/styles.css +789 -0
  10. package/dist/cli/index.mjs +686 -345
  11. package/dist/cli/index.mjs.map +1 -1
  12. package/dist/cli/lib.d.mts +7 -2
  13. package/dist/cli/lib.mjs +2 -2
  14. package/dist/client-DLPEPJ_s.mjs.map +1 -1
  15. package/dist/configure/index.d.mts +2 -2
  16. package/dist/configure/index.mjs +1 -1
  17. package/dist/configure/index.mjs.map +1 -1
  18. package/dist/{index-BW3v5XYC.d.mts → index-B61gFI9a.d.mts} +7 -2
  19. package/dist/{runtime-B8F1nklz.mjs → runtime-1YuaoNr8.mjs} +57 -63
  20. package/dist/runtime-1YuaoNr8.mjs.map +1 -0
  21. package/dist/{types-BinLwXM9.mjs → types-BwGth3a1.mjs} +57 -28
  22. package/dist/types-BwGth3a1.mjs.map +1 -0
  23. package/dist/{types-UeXbHFXW.mjs → types-Ccwchyj5.mjs} +1 -1
  24. package/dist/utils/test/index.d.mts +2 -2
  25. package/dist/{workflow.generated-BHdBzgx6.d.mts → workflow.generated-Kz-nQrTf.d.mts} +10 -1
  26. package/docs/cli/tailordb.md +31 -26
  27. package/docs/cli-reference.md +2 -2
  28. package/package.json +1 -3
  29. package/dist/application-C9-t0qQb.mjs +0 -4
  30. package/dist/application-YHZIkjdy.mjs.map +0 -1
  31. package/dist/runtime-B8F1nklz.mjs.map +0 -1
  32. package/dist/types-BinLwXM9.mjs.map +0 -1
@@ -0,0 +1,789 @@
1
+ :root {
2
+ color-scheme: dark;
3
+ --bg: #111313;
4
+ --canvas: #101111;
5
+ --panel: #202322;
6
+ --panel-raised: #262928;
7
+ --line: #343938;
8
+ --line-strong: #555d5b;
9
+ --text: #e7ecea;
10
+ --muted: #a0a7a4;
11
+ --subtle: #2d3130;
12
+ --accent: #4950e5;
13
+ --accent-weak: rgba(73, 80, 229, 0.18);
14
+ --accent-glow: rgba(73, 80, 229, 0.34);
15
+ --warn: #f2b84b;
16
+ --danger: #ff6b5f;
17
+ --shadow: 0 16px 34px rgba(0, 0, 0, 0.42);
18
+ --card-width: 260px;
19
+ --toolbar-height: 56px;
20
+ }
21
+
22
+ * {
23
+ box-sizing: border-box;
24
+ }
25
+
26
+ html,
27
+ body,
28
+ #app {
29
+ width: 100%;
30
+ height: 100%;
31
+ margin: 0;
32
+ }
33
+
34
+ body {
35
+ background: var(--bg);
36
+ color: var(--text);
37
+ font-family:
38
+ Inter,
39
+ ui-sans-serif,
40
+ system-ui,
41
+ -apple-system,
42
+ BlinkMacSystemFont,
43
+ "Segoe UI",
44
+ sans-serif;
45
+ letter-spacing: 0;
46
+ }
47
+
48
+ button,
49
+ input {
50
+ font: inherit;
51
+ }
52
+
53
+ button {
54
+ height: 34px;
55
+ border: 1px solid var(--line);
56
+ border-radius: 7px;
57
+ background: #1a1d1c;
58
+ color: var(--text);
59
+ cursor: pointer;
60
+ }
61
+
62
+ button:hover {
63
+ border-color: var(--line-strong);
64
+ background: #242827;
65
+ }
66
+
67
+ .app {
68
+ display: grid;
69
+ grid-template-rows: var(--toolbar-height) 1fr;
70
+ min-width: 0;
71
+ }
72
+
73
+ .toolbar {
74
+ display: grid;
75
+ grid-template-columns: minmax(220px, 1fr) minmax(240px, 360px) minmax(120px, 1fr);
76
+ align-items: center;
77
+ gap: 18px;
78
+ padding: 8px 16px;
79
+ border-bottom: 1px solid var(--line);
80
+ background: #222525;
81
+ }
82
+
83
+ .brand {
84
+ display: flex;
85
+ align-items: center;
86
+ gap: 12px;
87
+ min-width: 0;
88
+ }
89
+
90
+ .brand-mark {
91
+ display: inline-grid;
92
+ width: 30px;
93
+ height: 30px;
94
+ place-items: center;
95
+ border-radius: 35%;
96
+ background: var(--accent);
97
+ color: #fff;
98
+ font-weight: 800;
99
+ }
100
+
101
+ .brand h1 {
102
+ margin: 0;
103
+ overflow: hidden;
104
+ font-size: 16px;
105
+ font-weight: 700;
106
+ line-height: 1.2;
107
+ text-overflow: ellipsis;
108
+ white-space: nowrap;
109
+ }
110
+
111
+ .brand p {
112
+ margin: 2px 0 0;
113
+ overflow: hidden;
114
+ color: var(--muted);
115
+ font-size: 11px;
116
+ text-overflow: ellipsis;
117
+ white-space: nowrap;
118
+ }
119
+
120
+ .toolbar-search input {
121
+ width: 100%;
122
+ height: 34px;
123
+ border: 1px solid var(--line);
124
+ border-radius: 7px;
125
+ padding: 0 12px;
126
+ outline: none;
127
+ background: #141716;
128
+ color: var(--text);
129
+ }
130
+
131
+ .toolbar-search input::placeholder {
132
+ color: #777e7b;
133
+ }
134
+
135
+ .toolbar-search input:focus {
136
+ border-color: var(--accent);
137
+ box-shadow: 0 0 0 3px var(--accent-weak);
138
+ }
139
+
140
+ .toolbar-actions {
141
+ display: flex;
142
+ justify-content: flex-end;
143
+ }
144
+
145
+ .primary-action {
146
+ min-width: 104px;
147
+ border-color: var(--accent);
148
+ background: var(--accent);
149
+ color: #fff;
150
+ font-weight: 800;
151
+ }
152
+
153
+ .primary-action:hover {
154
+ background: #5f65ee;
155
+ }
156
+
157
+ .main {
158
+ display: grid;
159
+ min-height: 0;
160
+ grid-template-columns: 240px minmax(0, 1fr) 360px;
161
+ }
162
+
163
+ .main.is-details-collapsed {
164
+ grid-template-columns: 240px minmax(0, 1fr);
165
+ }
166
+
167
+ .table-nav,
168
+ .details {
169
+ min-width: 0;
170
+ overflow: auto;
171
+ border-color: var(--line);
172
+ background: var(--panel);
173
+ }
174
+
175
+ .table-nav {
176
+ border-right: 1px solid var(--line);
177
+ }
178
+
179
+ .details {
180
+ border-left: 1px solid var(--line);
181
+ }
182
+
183
+ .nav-head {
184
+ display: flex;
185
+ position: sticky;
186
+ top: 0;
187
+ z-index: 2;
188
+ align-items: center;
189
+ justify-content: space-between;
190
+ gap: 8px;
191
+ height: 52px;
192
+ padding: 0 12px;
193
+ border-bottom: 1px solid var(--line);
194
+ background: var(--panel);
195
+ }
196
+
197
+ .nav-title {
198
+ display: grid;
199
+ min-width: 0;
200
+ gap: 2px;
201
+ }
202
+
203
+ .nav-head h2 {
204
+ margin: 0;
205
+ font-size: 13px;
206
+ }
207
+
208
+ .nav-head span {
209
+ color: var(--muted);
210
+ font-size: 12px;
211
+ }
212
+
213
+ .table-list {
214
+ display: grid;
215
+ gap: 1px;
216
+ padding: 8px 0;
217
+ }
218
+
219
+ .table-list-row {
220
+ display: grid;
221
+ grid-template-columns: minmax(0, 1fr) 32px;
222
+ align-items: center;
223
+ min-width: 0;
224
+ }
225
+
226
+ .table-select {
227
+ display: grid;
228
+ grid-template-columns: 16px minmax(0, 1fr);
229
+ align-items: center;
230
+ gap: 8px;
231
+ width: 100%;
232
+ height: 34px;
233
+ border: 0;
234
+ border-radius: 0;
235
+ padding: 0 12px;
236
+ background: transparent;
237
+ color: var(--muted);
238
+ text-align: left;
239
+ }
240
+
241
+ .table-select:hover {
242
+ background: #252a28;
243
+ color: var(--text);
244
+ }
245
+
246
+ .table-select[aria-current="true"] {
247
+ background: linear-gradient(90deg, var(--accent-weak), rgba(73, 80, 229, 0.04));
248
+ color: var(--text);
249
+ font-weight: 700;
250
+ }
251
+
252
+ .table-list-row.is-hidden .table-select {
253
+ color: #69716e;
254
+ }
255
+
256
+ .table-visibility-toggle {
257
+ display: grid;
258
+ width: 28px;
259
+ height: 28px;
260
+ place-items: center;
261
+ border: 0;
262
+ border-radius: 6px;
263
+ padding: 0;
264
+ background: transparent;
265
+ color: var(--muted);
266
+ }
267
+
268
+ .table-visibility-toggle:hover:not(:disabled) {
269
+ background: #252a28;
270
+ color: var(--text);
271
+ }
272
+
273
+ .table-visibility-toggle:disabled {
274
+ opacity: 0.42;
275
+ }
276
+
277
+ .eye-icon {
278
+ width: 15px;
279
+ height: 15px;
280
+ fill: none;
281
+ stroke: currentColor;
282
+ stroke-linecap: round;
283
+ stroke-linejoin: round;
284
+ stroke-width: 1.8;
285
+ }
286
+
287
+ .table-list-icon,
288
+ .table-icon {
289
+ display: inline-block;
290
+ width: 14px;
291
+ height: 14px;
292
+ border: 1px solid currentColor;
293
+ border-radius: 2px;
294
+ opacity: 0.86;
295
+ background:
296
+ linear-gradient(90deg, transparent 45%, currentColor 45%, currentColor 55%, transparent 55%),
297
+ linear-gradient(transparent 45%, currentColor 45%, currentColor 55%, transparent 55%);
298
+ }
299
+
300
+ .canvas {
301
+ position: relative;
302
+ min-width: 0;
303
+ overflow: hidden;
304
+ background:
305
+ radial-gradient(circle, rgba(255, 255, 255, 0.11) 1px, transparent 1.2px), var(--canvas);
306
+ background-size: 22px 22px;
307
+ cursor: grab;
308
+ touch-action: none;
309
+ user-select: none;
310
+ }
311
+
312
+ .canvas.is-panning {
313
+ cursor: grabbing;
314
+ }
315
+
316
+ .world {
317
+ position: absolute;
318
+ top: 0;
319
+ left: 0;
320
+ transform-origin: 0 0;
321
+ }
322
+
323
+ .edges,
324
+ .nodes {
325
+ position: absolute;
326
+ top: 0;
327
+ left: 0;
328
+ }
329
+
330
+ .edges {
331
+ overflow: visible;
332
+ pointer-events: none;
333
+ }
334
+
335
+ .edge {
336
+ fill: none;
337
+ stroke: #4c5351;
338
+ stroke-width: 2;
339
+ }
340
+
341
+ .edge.is-selected {
342
+ filter: drop-shadow(0 0 7px var(--accent-glow));
343
+ stroke: var(--accent);
344
+ stroke-width: 3;
345
+ }
346
+
347
+ .edge-cardinality {
348
+ pointer-events: none;
349
+ }
350
+
351
+ .edge-cardinality line,
352
+ .edge-cardinality circle {
353
+ fill: var(--canvas);
354
+ stroke: #4c5351;
355
+ stroke-linecap: square;
356
+ stroke-linejoin: round;
357
+ stroke-width: 2;
358
+ }
359
+
360
+ .edge-cardinality.is-selected line,
361
+ .edge-cardinality.is-selected circle {
362
+ fill: var(--canvas);
363
+ stroke: var(--accent);
364
+ stroke-width: 3;
365
+ }
366
+
367
+ .table-card {
368
+ appearance: none;
369
+ position: absolute;
370
+ display: flex;
371
+ flex-direction: column;
372
+ width: var(--card-width);
373
+ min-height: 62px;
374
+ align-items: stretch;
375
+ padding: 0;
376
+ border: 1px solid var(--line-strong);
377
+ border-radius: 8px;
378
+ background: var(--panel-raised);
379
+ box-shadow: 0 12px 26px rgba(0, 0, 0, 0.32);
380
+ color: var(--muted);
381
+ cursor: grab;
382
+ font: inherit;
383
+ text-align: left;
384
+ touch-action: none;
385
+ user-select: none;
386
+ }
387
+
388
+ .table-card:focus-visible {
389
+ outline: 2px solid var(--accent);
390
+ outline-offset: 3px;
391
+ }
392
+
393
+ .table-card.is-selected {
394
+ border-color: var(--accent);
395
+ box-shadow:
396
+ 0 0 0 1px var(--accent),
397
+ 0 0 26px var(--accent-glow),
398
+ 0 18px 32px rgba(0, 0, 0, 0.44);
399
+ color: var(--text);
400
+ }
401
+
402
+ .table-card.is-related {
403
+ border-color: #55625d;
404
+ color: var(--text);
405
+ }
406
+
407
+ .table-card.is-muted {
408
+ opacity: 0.36;
409
+ }
410
+
411
+ .table-card.is-dragging {
412
+ z-index: 4;
413
+ cursor: grabbing;
414
+ }
415
+
416
+ .table-head {
417
+ display: flex;
418
+ min-width: 0;
419
+ min-height: 60px;
420
+ align-items: center;
421
+ gap: 10px;
422
+ padding: 0 16px;
423
+ }
424
+
425
+ .table-name {
426
+ overflow: hidden;
427
+ font-size: 16px;
428
+ font-weight: 700;
429
+ text-overflow: ellipsis;
430
+ white-space: nowrap;
431
+ }
432
+
433
+ .table-fields {
434
+ display: grid;
435
+ border-top: 1px solid var(--line);
436
+ }
437
+
438
+ .table-field {
439
+ display: grid;
440
+ min-width: 0;
441
+ height: 28px;
442
+ grid-template-columns: minmax(0, 1fr) auto;
443
+ gap: 8px;
444
+ align-items: center;
445
+ padding: 0 10px 0 16px;
446
+ color: var(--muted);
447
+ font-size: 11px;
448
+ }
449
+
450
+ .table-field + .table-field {
451
+ border-top: 1px solid #303534;
452
+ }
453
+
454
+ .table-field.is-key {
455
+ color: var(--text);
456
+ }
457
+
458
+ .field-name,
459
+ .field-type {
460
+ overflow: hidden;
461
+ text-overflow: ellipsis;
462
+ white-space: nowrap;
463
+ }
464
+
465
+ .field-type {
466
+ max-width: 92px;
467
+ color: #7f8784;
468
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
469
+ font-size: 10px;
470
+ }
471
+
472
+ .details-inner {
473
+ display: grid;
474
+ gap: 18px;
475
+ padding: 16px;
476
+ }
477
+
478
+ .details h2,
479
+ .details h3 {
480
+ margin: 0;
481
+ line-height: 1.2;
482
+ }
483
+
484
+ .details h2 {
485
+ display: flex;
486
+ align-items: center;
487
+ gap: 8px;
488
+ font-size: 16px;
489
+ }
490
+
491
+ .details h3 {
492
+ color: var(--text);
493
+ font-size: 14px;
494
+ }
495
+
496
+ .details p {
497
+ margin: 6px 0 0;
498
+ color: var(--muted);
499
+ font-size: 13px;
500
+ line-height: 1.45;
501
+ }
502
+
503
+ .details-section {
504
+ display: grid;
505
+ gap: 10px;
506
+ border-top: 1px solid var(--line);
507
+ padding-top: 16px;
508
+ }
509
+
510
+ .detail-list {
511
+ display: grid;
512
+ gap: 8px;
513
+ }
514
+
515
+ .detail-row {
516
+ display: grid;
517
+ grid-template-columns: minmax(0, 1fr) auto;
518
+ gap: 10px;
519
+ align-items: start;
520
+ border: 1px solid var(--line);
521
+ border-radius: 4px;
522
+ padding: 9px;
523
+ background: #2a2d2c;
524
+ }
525
+
526
+ .detail-row strong {
527
+ display: block;
528
+ overflow-wrap: anywhere;
529
+ font-size: 12px;
530
+ }
531
+
532
+ .detail-row code,
533
+ .pill {
534
+ border-radius: 4px;
535
+ background: #363a39;
536
+ padding: 2px 6px;
537
+ color: var(--text);
538
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
539
+ font-size: 11px;
540
+ }
541
+
542
+ .pill-wrap {
543
+ display: flex;
544
+ flex-wrap: wrap;
545
+ gap: 5px;
546
+ margin-top: 7px;
547
+ }
548
+
549
+ .muted {
550
+ color: var(--muted);
551
+ }
552
+
553
+ .empty-state,
554
+ .status {
555
+ position: absolute;
556
+ left: 50%;
557
+ transform: translateX(-50%);
558
+ border: 1px solid var(--line);
559
+ border-radius: 8px;
560
+ background: var(--panel);
561
+ box-shadow: var(--shadow);
562
+ }
563
+
564
+ .empty-state {
565
+ top: 45%;
566
+ padding: 16px 20px;
567
+ color: var(--muted);
568
+ }
569
+
570
+ .status {
571
+ bottom: 78px;
572
+ max-width: min(560px, calc(100% - 32px));
573
+ padding: 10px 12px;
574
+ color: var(--danger);
575
+ font-size: 12px;
576
+ }
577
+
578
+ .canvas-toolbar {
579
+ display: flex;
580
+ position: absolute;
581
+ bottom: 18px;
582
+ left: 50%;
583
+ z-index: 3;
584
+ align-items: center;
585
+ gap: 10px;
586
+ height: 42px;
587
+ border: 1px solid var(--line);
588
+ border-radius: 10px;
589
+ padding: 0 12px;
590
+ background: rgba(38, 41, 40, 0.96);
591
+ box-shadow: var(--shadow);
592
+ transform: translateX(-50%);
593
+ }
594
+
595
+ .canvas-toolbar button {
596
+ width: 28px;
597
+ height: 28px;
598
+ border: 0;
599
+ padding: 0;
600
+ background: transparent;
601
+ color: var(--text);
602
+ font-size: 17px;
603
+ }
604
+
605
+ #fit-view {
606
+ width: auto;
607
+ padding: 0 6px;
608
+ font-size: 13px;
609
+ font-weight: 700;
610
+ }
611
+
612
+ .show-mode-control {
613
+ position: relative;
614
+ display: flex;
615
+ }
616
+
617
+ .show-mode-button {
618
+ display: flex;
619
+ width: auto !important;
620
+ min-width: 104px;
621
+ align-items: center;
622
+ justify-content: space-between;
623
+ gap: 8px;
624
+ padding: 0 8px !important;
625
+ color: var(--text);
626
+ font-size: 12px !important;
627
+ font-weight: 700;
628
+ }
629
+
630
+ .show-mode-caret {
631
+ width: 7px;
632
+ height: 7px;
633
+ border-right: 1.5px solid currentColor;
634
+ border-bottom: 1.5px solid currentColor;
635
+ transform: translateY(-2px) rotate(45deg);
636
+ }
637
+
638
+ .show-mode-menu {
639
+ position: absolute;
640
+ right: 0;
641
+ bottom: calc(100% + 10px);
642
+ z-index: 4;
643
+ display: grid;
644
+ width: 158px;
645
+ gap: 2px;
646
+ border: 1px solid var(--line);
647
+ border-radius: 8px;
648
+ padding: 5px;
649
+ background: rgba(32, 35, 34, 0.98);
650
+ box-shadow: var(--shadow);
651
+ }
652
+
653
+ .show-mode-menu[hidden] {
654
+ display: none;
655
+ }
656
+
657
+ .show-mode-option {
658
+ display: grid;
659
+ width: 100% !important;
660
+ height: 30px !important;
661
+ grid-template-columns: minmax(0, 1fr) 14px;
662
+ gap: 8px;
663
+ align-items: center;
664
+ border-radius: 6px !important;
665
+ padding: 0 8px !important;
666
+ color: var(--muted) !important;
667
+ font-size: 12px !important;
668
+ text-align: left;
669
+ }
670
+
671
+ .show-mode-option:hover,
672
+ .show-mode-option[aria-checked="true"] {
673
+ background: #2a2e2d !important;
674
+ color: var(--text) !important;
675
+ }
676
+
677
+ .show-mode-check {
678
+ display: grid;
679
+ place-items: center;
680
+ }
681
+
682
+ .check-icon {
683
+ width: 13px;
684
+ height: 13px;
685
+ fill: none;
686
+ stroke: var(--accent);
687
+ stroke-linecap: round;
688
+ stroke-linejoin: round;
689
+ stroke-width: 2.3;
690
+ }
691
+
692
+ #zoom-label {
693
+ width: 48px;
694
+ color: var(--text);
695
+ font-size: 13px;
696
+ font-weight: 700;
697
+ text-align: center;
698
+ }
699
+
700
+ .toolbar-divider {
701
+ width: 1px;
702
+ height: 24px;
703
+ background: var(--line);
704
+ }
705
+
706
+ @media (max-width: 980px) {
707
+ .toolbar {
708
+ grid-template-columns: minmax(180px, 1fr) minmax(220px, 320px) auto;
709
+ }
710
+
711
+ .main {
712
+ grid-template-rows: minmax(0, 1fr) minmax(220px, 36vh);
713
+ grid-template-columns: 220px minmax(0, 1fr);
714
+ }
715
+
716
+ .main.is-details-collapsed {
717
+ grid-template-rows: minmax(0, 1fr);
718
+ grid-template-columns: 220px minmax(0, 1fr);
719
+ }
720
+
721
+ .details {
722
+ grid-column: 1 / -1;
723
+ border-top: 1px solid var(--line);
724
+ border-left: 0;
725
+ }
726
+ }
727
+
728
+ @media (max-width: 700px) {
729
+ html,
730
+ body,
731
+ #app {
732
+ height: auto;
733
+ min-height: 100%;
734
+ }
735
+
736
+ .app {
737
+ grid-template-rows: auto auto;
738
+ min-height: 100%;
739
+ }
740
+
741
+ .toolbar {
742
+ grid-template-columns: 1fr auto;
743
+ gap: 10px;
744
+ padding: 8px;
745
+ }
746
+
747
+ .toolbar-search {
748
+ grid-column: 1 / -1;
749
+ }
750
+
751
+ .brand-mark {
752
+ display: none;
753
+ }
754
+
755
+ .brand h1 {
756
+ font-size: 16px;
757
+ }
758
+
759
+ .brand p {
760
+ overflow-wrap: anywhere;
761
+ white-space: normal;
762
+ }
763
+
764
+ .main {
765
+ min-height: auto;
766
+ grid-template-rows: auto minmax(520px, 64vh) auto;
767
+ grid-template-columns: 1fr;
768
+ }
769
+
770
+ .main.is-details-collapsed {
771
+ grid-template-rows: auto minmax(520px, 64vh);
772
+ grid-template-columns: 1fr;
773
+ }
774
+
775
+ .table-nav {
776
+ max-height: 240px;
777
+ border-right: 0;
778
+ border-bottom: 1px solid var(--line);
779
+ }
780
+
781
+ .canvas {
782
+ min-height: 520px;
783
+ }
784
+
785
+ .details {
786
+ max-height: none;
787
+ overflow: visible;
788
+ }
789
+ }