@jybk/pptb-data-dictionary-builder 0.0.0-stage → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,537 @@
1
+ :root {
2
+ --bg: #f6f7f8;
3
+ --surface: #ffffff;
4
+ --surface-2: #eef1f3;
5
+ --line: #d9dee3;
6
+ --text: #1b2228;
7
+ --muted: #5d6973;
8
+ --accent: #0f6c7a;
9
+ --accent-text: #ffffff;
10
+ --accent-soft: #e2f1f3;
11
+ --warn-bg: #fff4d6;
12
+ --warn-line: #e6c15a;
13
+ --error-bg: #fde7e7;
14
+ --error-line: #e08b8b;
15
+ --shadow: 0 6px 24px rgba(20, 30, 40, 0.14);
16
+ --mono: "Cascadia Code", "Cascadia Mono", Consolas, ui-monospace, "SF Mono", Menlo, monospace;
17
+ color-scheme: light;
18
+ }
19
+
20
+ :root[data-theme="dark"] {
21
+ --bg: #15191c;
22
+ --surface: #1d2226;
23
+ --surface-2: #262d32;
24
+ --line: #353e45;
25
+ --text: #e6eaed;
26
+ --muted: #9aa6af;
27
+ --accent: #4fb6c4;
28
+ --accent-text: #0d1a1d;
29
+ --accent-soft: #1f3a40;
30
+ --warn-bg: #3b3216;
31
+ --warn-line: #7d6a2a;
32
+ --error-bg: #402020;
33
+ --error-line: #8a4747;
34
+ --shadow: 0 6px 24px rgba(0, 0, 0, 0.5);
35
+ color-scheme: dark;
36
+ }
37
+
38
+ * {
39
+ box-sizing: border-box;
40
+ }
41
+
42
+ html,
43
+ body {
44
+ height: 100%;
45
+ margin: 0;
46
+ }
47
+
48
+ body {
49
+ background: var(--bg);
50
+ color: var(--text);
51
+ font: 13px/1.45 "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, sans-serif;
52
+ }
53
+
54
+ .app {
55
+ display: flex;
56
+ flex-direction: column;
57
+ gap: 12px;
58
+ height: 100%;
59
+ padding: 16px 20px;
60
+ }
61
+
62
+ .top {
63
+ display: flex;
64
+ align-items: baseline;
65
+ justify-content: space-between;
66
+ gap: 16px;
67
+ }
68
+
69
+ h1 {
70
+ margin: 0;
71
+ font-size: 18px;
72
+ font-weight: 600;
73
+ letter-spacing: -0.01em;
74
+ }
75
+
76
+ h2 {
77
+ margin: 0 0 6px;
78
+ font-size: 14px;
79
+ font-weight: 600;
80
+ }
81
+
82
+ .conn {
83
+ color: var(--muted);
84
+ font-size: 12px;
85
+ white-space: nowrap;
86
+ overflow: hidden;
87
+ text-overflow: ellipsis;
88
+ }
89
+
90
+ .conn strong {
91
+ color: var(--text);
92
+ font-weight: 600;
93
+ }
94
+
95
+ .conn.missing {
96
+ color: #b3261e;
97
+ }
98
+
99
+ .source label {
100
+ display: block;
101
+ margin-bottom: 4px;
102
+ font-weight: 600;
103
+ }
104
+
105
+ .source-row {
106
+ display: flex;
107
+ gap: 8px;
108
+ }
109
+
110
+ input[type="text"],
111
+ input[type="search"],
112
+ select {
113
+ height: 32px;
114
+ padding: 0 10px;
115
+ border: 1px solid var(--line);
116
+ border-radius: 6px;
117
+ background: var(--surface);
118
+ color: var(--text);
119
+ font: inherit;
120
+ }
121
+
122
+ #url {
123
+ flex: 1;
124
+ min-width: 0;
125
+ font-family: var(--mono);
126
+ font-size: 12px;
127
+ }
128
+
129
+ input:focus-visible,
130
+ select:focus-visible,
131
+ button:focus-visible,
132
+ summary:focus-visible {
133
+ outline: 2px solid var(--accent);
134
+ outline-offset: 1px;
135
+ }
136
+
137
+ .hint {
138
+ margin: 6px 0 0;
139
+ color: var(--muted);
140
+ font-size: 12px;
141
+ }
142
+
143
+ code,
144
+ .mono {
145
+ font-family: var(--mono);
146
+ font-size: 12px;
147
+ }
148
+
149
+ .btn {
150
+ display: inline-flex;
151
+ align-items: center;
152
+ height: 32px;
153
+ padding: 0 14px;
154
+ border: 1px solid var(--line);
155
+ border-radius: 6px;
156
+ background: var(--surface);
157
+ color: var(--text);
158
+ font: inherit;
159
+ font-weight: 600;
160
+ white-space: nowrap;
161
+ cursor: pointer;
162
+ user-select: none;
163
+ }
164
+
165
+ .btn:hover {
166
+ border-color: var(--accent);
167
+ }
168
+
169
+ .btn.primary {
170
+ border-color: var(--accent);
171
+ background: var(--accent);
172
+ color: var(--accent-text);
173
+ }
174
+
175
+ .btn[disabled] {
176
+ opacity: 0.6;
177
+ cursor: progress;
178
+ }
179
+
180
+ .notice {
181
+ margin-bottom: 6px;
182
+ padding: 8px 12px;
183
+ border: 1px solid var(--line);
184
+ border-radius: 6px;
185
+ background: var(--surface);
186
+ }
187
+
188
+ .notice.warning {
189
+ border-color: var(--warn-line);
190
+ background: var(--warn-bg);
191
+ }
192
+
193
+ .notice.error {
194
+ border-color: var(--error-line);
195
+ background: var(--error-bg);
196
+ }
197
+
198
+ .empty,
199
+ .picker {
200
+ padding: 16px 18px;
201
+ border: 1px solid var(--line);
202
+ border-radius: 8px;
203
+ background: var(--surface);
204
+ }
205
+
206
+ .empty ul {
207
+ margin: 0;
208
+ padding-left: 18px;
209
+ }
210
+
211
+ .empty li {
212
+ margin: 4px 0;
213
+ max-width: 78ch;
214
+ }
215
+
216
+ .picker {
217
+ overflow: auto;
218
+ min-height: 0;
219
+ }
220
+
221
+ .picker h3 {
222
+ margin: 14px 0 6px;
223
+ color: var(--muted);
224
+ font-size: 11px;
225
+ font-weight: 600;
226
+ letter-spacing: 0.06em;
227
+ text-transform: uppercase;
228
+ }
229
+
230
+ .pick {
231
+ display: flex;
232
+ align-items: baseline;
233
+ gap: 10px;
234
+ width: 100%;
235
+ padding: 7px 10px;
236
+ border: 1px solid transparent;
237
+ border-radius: 6px;
238
+ background: none;
239
+ color: var(--text);
240
+ font: inherit;
241
+ text-align: left;
242
+ cursor: pointer;
243
+ }
244
+
245
+ .pick:hover {
246
+ border-color: var(--accent);
247
+ background: var(--accent-soft);
248
+ }
249
+
250
+ .pick .name {
251
+ font-weight: 600;
252
+ }
253
+
254
+ .pick .desc {
255
+ flex: 1;
256
+ min-width: 0;
257
+ overflow: hidden;
258
+ color: var(--muted);
259
+ text-overflow: ellipsis;
260
+ white-space: nowrap;
261
+ }
262
+
263
+ .badge {
264
+ padding: 1px 7px;
265
+ border-radius: 10px;
266
+ background: var(--surface-2);
267
+ color: var(--muted);
268
+ font-size: 11px;
269
+ white-space: nowrap;
270
+ }
271
+
272
+ .badge.app {
273
+ background: var(--accent-soft);
274
+ color: var(--accent);
275
+ }
276
+
277
+ #result {
278
+ display: flex;
279
+ flex: 1;
280
+ flex-direction: column;
281
+ gap: 10px;
282
+ min-height: 0;
283
+ }
284
+
285
+ #result[hidden],
286
+ .picker[hidden],
287
+ .empty[hidden] {
288
+ display: none;
289
+ }
290
+
291
+ .summary {
292
+ display: flex;
293
+ flex-wrap: wrap;
294
+ align-items: baseline;
295
+ gap: 6px 14px;
296
+ }
297
+
298
+ .summary .title {
299
+ font-size: 15px;
300
+ font-weight: 600;
301
+ }
302
+
303
+ .summary .meta {
304
+ color: var(--muted);
305
+ }
306
+
307
+ .linklike {
308
+ padding: 0;
309
+ border: 0;
310
+ background: none;
311
+ color: var(--accent);
312
+ font: inherit;
313
+ text-decoration: underline;
314
+ cursor: pointer;
315
+ }
316
+
317
+ .toolbar {
318
+ display: flex;
319
+ flex-wrap: wrap;
320
+ align-items: center;
321
+ justify-content: space-between;
322
+ gap: 8px 12px;
323
+ }
324
+
325
+ .chips {
326
+ display: flex;
327
+ flex-wrap: wrap;
328
+ gap: 6px;
329
+ }
330
+
331
+ .chip {
332
+ height: 28px;
333
+ padding: 0 11px;
334
+ border: 1px solid var(--line);
335
+ border-radius: 14px;
336
+ background: var(--surface);
337
+ color: var(--text);
338
+ font: inherit;
339
+ cursor: pointer;
340
+ }
341
+
342
+ .chip .n {
343
+ margin-left: 5px;
344
+ color: var(--muted);
345
+ font-variant-numeric: tabular-nums;
346
+ }
347
+
348
+ .chip[aria-pressed="true"] {
349
+ border-color: var(--accent);
350
+ background: var(--accent-soft);
351
+ color: var(--accent);
352
+ font-weight: 600;
353
+ }
354
+
355
+ .chip[aria-pressed="true"] .n {
356
+ color: inherit;
357
+ }
358
+
359
+ .tools {
360
+ display: flex;
361
+ align-items: center;
362
+ gap: 8px;
363
+ margin-left: auto;
364
+ }
365
+
366
+ #search {
367
+ width: 180px;
368
+ }
369
+
370
+ .menu {
371
+ position: relative;
372
+ }
373
+
374
+ .menu > summary {
375
+ list-style: none;
376
+ }
377
+
378
+ .menu > summary::-webkit-details-marker {
379
+ display: none;
380
+ }
381
+
382
+ .menu-panel {
383
+ position: absolute;
384
+ top: 36px;
385
+ right: 0;
386
+ z-index: 20;
387
+ min-width: 230px;
388
+ padding: 8px;
389
+ border: 1px solid var(--line);
390
+ border-radius: 8px;
391
+ background: var(--surface);
392
+ box-shadow: var(--shadow);
393
+ }
394
+
395
+ .menu-panel label {
396
+ display: flex;
397
+ align-items: center;
398
+ gap: 8px;
399
+ padding: 4px 6px;
400
+ border-radius: 4px;
401
+ cursor: pointer;
402
+ }
403
+
404
+ .menu-panel label:hover {
405
+ background: var(--surface-2);
406
+ }
407
+
408
+ .menu-panel .field {
409
+ display: flex;
410
+ align-items: center;
411
+ justify-content: space-between;
412
+ gap: 8px;
413
+ padding: 6px;
414
+ }
415
+
416
+ .menu-columns {
417
+ display: grid;
418
+ grid-template-columns: 1fr 1fr;
419
+ width: 380px;
420
+ }
421
+
422
+ .menu-actions button {
423
+ display: block;
424
+ width: 100%;
425
+ padding: 7px 8px;
426
+ border: 0;
427
+ border-radius: 4px;
428
+ background: none;
429
+ color: var(--text);
430
+ font: inherit;
431
+ text-align: left;
432
+ cursor: pointer;
433
+ }
434
+
435
+ .menu-actions button:hover {
436
+ background: var(--surface-2);
437
+ }
438
+
439
+ .menu-actions hr {
440
+ margin: 6px 0;
441
+ border: 0;
442
+ border-top: 1px solid var(--line);
443
+ }
444
+
445
+ .table-wrap {
446
+ flex: 1;
447
+ min-height: 120px;
448
+ overflow: auto;
449
+ border: 1px solid var(--line);
450
+ border-radius: 8px;
451
+ background: var(--surface);
452
+ }
453
+
454
+ table {
455
+ width: 100%;
456
+ border-collapse: separate;
457
+ border-spacing: 0;
458
+ }
459
+
460
+ th,
461
+ td {
462
+ padding: 6px 10px;
463
+ border-bottom: 1px solid var(--line);
464
+ text-align: left;
465
+ vertical-align: top;
466
+ }
467
+
468
+ th {
469
+ position: sticky;
470
+ top: 0;
471
+ z-index: 2;
472
+ background: var(--surface-2);
473
+ font-size: 12px;
474
+ font-weight: 600;
475
+ white-space: nowrap;
476
+ }
477
+
478
+ td {
479
+ overflow-wrap: break-word;
480
+ }
481
+
482
+ td.mono,
483
+ td.c-description,
484
+ td.c-notes {
485
+ overflow-wrap: anywhere;
486
+ }
487
+
488
+ td.c-order {
489
+ color: var(--muted);
490
+ font-variant-numeric: tabular-nums;
491
+ text-align: right;
492
+ }
493
+
494
+ td.c-label {
495
+ font-weight: 600;
496
+ }
497
+
498
+ td.c-choices,
499
+ td.c-notes {
500
+ white-space: pre-line;
501
+ }
502
+
503
+ tr.group td {
504
+ position: sticky;
505
+ top: 30px;
506
+ z-index: 1;
507
+ padding: 7px 10px;
508
+ border-bottom: 1px solid var(--line);
509
+ background: var(--accent-soft);
510
+ color: var(--accent);
511
+ font-weight: 600;
512
+ }
513
+
514
+ tr.group .n {
515
+ margin-left: 6px;
516
+ font-weight: 400;
517
+ }
518
+
519
+ tr.is-hidden td {
520
+ color: var(--muted);
521
+ }
522
+
523
+ tr.none td {
524
+ padding: 28px 10px;
525
+ color: var(--muted);
526
+ text-align: center;
527
+ }
528
+
529
+ .more {
530
+ color: var(--muted);
531
+ }
532
+
533
+ .footnote {
534
+ margin: 0;
535
+ color: var(--muted);
536
+ font-size: 12px;
537
+ }