create-pmos 0.117.0 → 0.119.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.
- package/package.json +1 -1
- package/payload/KIT-VERSION +1 -1
- package/payload/planning/evals/eval-calibration.md +1 -1
- package/payload/planning/okrs/health-budgets.md +1 -1
- package/payload/state/discoveries.md +1 -1
- package/workspace/guide/notes.md +43 -3
- package/workspace/guide/today.md +1 -1
- package/workspace/lib/notes.js +139 -17
- package/workspace/lib/routes-notes.js +68 -11
- package/workspace/package-lock.json +2 -2
- package/workspace/package.json +1 -1
- package/workspace/public/pm/components.css +250 -80
- package/workspace/public/pm/dest-notes.js +136 -29
- package/workspace/public/pm/note-dock.js +204 -164
- package/workspace/public/pm/notes-context.js +60 -0
- package/workspace/public/pm/notes-links.js +32 -6
- package/workspace/public/pm/primitives.js +1 -1
- package/workspace/public/pm/topbar.js +71 -32
- package/workspace/public/pm/view-notes.js +142 -73
- package/workspace/test-files.json +4 -0
|
@@ -652,6 +652,22 @@
|
|
|
652
652
|
white-space: nowrap;
|
|
653
653
|
cursor: pointer;
|
|
654
654
|
}
|
|
655
|
+
.pmc-menu__text {
|
|
656
|
+
display: flex;
|
|
657
|
+
flex-direction: column;
|
|
658
|
+
min-width: 0;
|
|
659
|
+
}
|
|
660
|
+
.pmc-menu__detail {
|
|
661
|
+
display: block;
|
|
662
|
+
font-size: 11px;
|
|
663
|
+
line-height: 1.4;
|
|
664
|
+
color: var(--muted-foreground);
|
|
665
|
+
}
|
|
666
|
+
.pmc-menu__item:has(.pmc-menu__detail) {
|
|
667
|
+
min-height: 44px;
|
|
668
|
+
padding-top: 4px;
|
|
669
|
+
padding-bottom: 4px;
|
|
670
|
+
}
|
|
655
671
|
/* The shortcut hint sits at a row's end; a checked row (a menuitemradio) is marked. */
|
|
656
672
|
.pmc-menu__hint {
|
|
657
673
|
margin-left: auto;
|
|
@@ -2333,10 +2349,6 @@
|
|
|
2333
2349
|
}
|
|
2334
2350
|
.fr-search {
|
|
2335
2351
|
margin-left: auto;
|
|
2336
|
-
flex: 0 1 220px;
|
|
2337
|
-
min-width: 0;
|
|
2338
|
-
overflow: hidden;
|
|
2339
|
-
justify-content: flex-start;
|
|
2340
2352
|
color: var(--muted-foreground);
|
|
2341
2353
|
}
|
|
2342
2354
|
.fr-kbd {
|
|
@@ -2344,25 +2356,46 @@
|
|
|
2344
2356
|
font-family: var(--mono);
|
|
2345
2357
|
font-size: 11px;
|
|
2346
2358
|
}
|
|
2347
|
-
/* The Record control at the right of the bar (meeting-notes Run
|
|
2348
|
-
*
|
|
2359
|
+
/* The Record control at the right of the bar (meeting-notes Run 13). Two groups, always in the same place. The left one exists
|
|
2360
|
+
* while a meeting is recording (red) or paused (amber): the chip that names it, then icons. The right one is New (a red
|
|
2361
|
+
* microphone with a plus) and its arrow. Both are unavailable while a meeting is recording. The highlight's pop-up hangs under it. */
|
|
2349
2362
|
.fr-rec {
|
|
2363
|
+
position: relative;
|
|
2350
2364
|
display: flex;
|
|
2351
2365
|
flex: none;
|
|
2352
2366
|
align-items: center;
|
|
2367
|
+
gap: 12px;
|
|
2353
2368
|
}
|
|
2354
2369
|
.fr-rec__group {
|
|
2355
2370
|
display: inline-flex;
|
|
2356
2371
|
align-items: stretch;
|
|
2357
|
-
border: 1px solid
|
|
2372
|
+
border: 1px solid var(--border);
|
|
2358
2373
|
border-radius: 6px;
|
|
2359
|
-
|
|
2374
|
+
color: var(--foreground);
|
|
2375
|
+
}
|
|
2376
|
+
.fr-rec__group--new {
|
|
2377
|
+
border-color: color-mix(in oklab, var(--destructive) 55%, transparent);
|
|
2360
2378
|
color: var(--destructive);
|
|
2361
2379
|
}
|
|
2380
|
+
.fr-rec__seg + .fr-rec__seg {
|
|
2381
|
+
border-left: 1px solid var(--border);
|
|
2382
|
+
border-radius: 0;
|
|
2383
|
+
}
|
|
2384
|
+
.fr-rec__seg {
|
|
2385
|
+
position: relative;
|
|
2386
|
+
}
|
|
2362
2387
|
.fr-rec__txt {
|
|
2363
2388
|
display: inline-flex;
|
|
2364
2389
|
align-items: center;
|
|
2365
|
-
gap:
|
|
2390
|
+
gap: 8px;
|
|
2391
|
+
min-width: 0;
|
|
2392
|
+
}
|
|
2393
|
+
.fr-rec__title {
|
|
2394
|
+
max-width: 200px;
|
|
2395
|
+
overflow: hidden;
|
|
2396
|
+
text-overflow: ellipsis;
|
|
2397
|
+
white-space: nowrap;
|
|
2398
|
+
font-weight: 500;
|
|
2366
2399
|
}
|
|
2367
2400
|
.fr-rec-dot {
|
|
2368
2401
|
width: 7px;
|
|
@@ -2371,13 +2404,50 @@
|
|
|
2371
2404
|
background: var(--destructive);
|
|
2372
2405
|
flex: none;
|
|
2373
2406
|
}
|
|
2407
|
+
.fr-rec-dot--paused {
|
|
2408
|
+
background: var(--warning);
|
|
2409
|
+
}
|
|
2374
2410
|
.fr-rec__clock {
|
|
2375
2411
|
font-family: var(--mono);
|
|
2376
2412
|
font-size: 12px;
|
|
2377
2413
|
font-variant-numeric: tabular-nums;
|
|
2414
|
+
color: var(--muted-foreground);
|
|
2378
2415
|
}
|
|
2379
|
-
.fr-
|
|
2380
|
-
|
|
2416
|
+
.fr-rec__resume {
|
|
2417
|
+
background: var(--foreground);
|
|
2418
|
+
color: var(--background);
|
|
2419
|
+
}
|
|
2420
|
+
.fr-rec__stop {
|
|
2421
|
+
color: var(--destructive);
|
|
2422
|
+
}
|
|
2423
|
+
.fr-rec__new {
|
|
2424
|
+
color: var(--destructive);
|
|
2425
|
+
}
|
|
2426
|
+
.fr-rec__new::before {
|
|
2427
|
+
content: "+";
|
|
2428
|
+
position: absolute;
|
|
2429
|
+
top: 1px;
|
|
2430
|
+
right: 4px;
|
|
2431
|
+
font: 600 12px/1 var(--sans, system-ui);
|
|
2432
|
+
}
|
|
2433
|
+
.fr-rec__upcoming {
|
|
2434
|
+
color: var(--destructive);
|
|
2435
|
+
}
|
|
2436
|
+
.fr-rec__off {
|
|
2437
|
+
opacity: 0.38;
|
|
2438
|
+
cursor: not-allowed;
|
|
2439
|
+
}
|
|
2440
|
+
.fr-rec__seg--busy::after {
|
|
2441
|
+
content: "";
|
|
2442
|
+
position: absolute;
|
|
2443
|
+
top: 4px;
|
|
2444
|
+
right: 4px;
|
|
2445
|
+
width: 6px;
|
|
2446
|
+
height: 6px;
|
|
2447
|
+
background: var(--primary);
|
|
2448
|
+
}
|
|
2449
|
+
.fr-sync--busy {
|
|
2450
|
+
opacity: 0.5;
|
|
2381
2451
|
}
|
|
2382
2452
|
/* The body: the destination, then (when open) the detail, the dock's rail and the dock. One row, columns in order. */
|
|
2383
2453
|
.fr-body {
|
|
@@ -7038,78 +7108,12 @@
|
|
|
7038
7108
|
max-height: 240px;
|
|
7039
7109
|
}
|
|
7040
7110
|
|
|
7041
|
-
/* meeting-notes Run 6: the note being taken, minimized at the bottom right, and its pop-up */
|
|
7042
|
-
.nt-dock {
|
|
7043
|
-
position: fixed;
|
|
7044
|
-
right: 16px;
|
|
7045
|
-
bottom: 40px;
|
|
7046
|
-
z-index: 1;
|
|
7047
|
-
display: flex;
|
|
7048
|
-
flex-direction: column;
|
|
7049
|
-
align-items: flex-end;
|
|
7050
|
-
}
|
|
7051
|
-
.nt-dock:empty {
|
|
7052
|
-
display: none;
|
|
7053
|
-
}
|
|
7054
|
-
.nt-pillrow {
|
|
7055
|
-
display: flex;
|
|
7056
|
-
align-items: center;
|
|
7057
|
-
gap: 4px;
|
|
7058
|
-
}
|
|
7059
|
-
.nt-pill {
|
|
7060
|
-
max-width: 320px;
|
|
7061
|
-
background: var(--card);
|
|
7062
|
-
box-shadow: 0 4px 16px color-mix(in oklab, var(--term-bg) 18%, transparent);
|
|
7063
|
-
}
|
|
7064
|
-
.nt-pill__txt {
|
|
7065
|
-
display: flex;
|
|
7066
|
-
align-items: center;
|
|
7067
|
-
gap: 8px;
|
|
7068
|
-
min-width: 0;
|
|
7069
|
-
}
|
|
7070
|
-
.nt-pill__title {
|
|
7071
|
-
min-width: 0;
|
|
7072
|
-
overflow: hidden;
|
|
7073
|
-
text-overflow: ellipsis;
|
|
7074
|
-
white-space: nowrap;
|
|
7075
|
-
}
|
|
7076
|
-
.nt-pill__clock {
|
|
7077
|
-
font-size: 12px;
|
|
7078
|
-
font-variant-numeric: tabular-nums;
|
|
7079
|
-
color: var(--muted-foreground);
|
|
7080
|
-
}
|
|
7081
|
-
.nt-pop {
|
|
7082
|
-
width: min(440px, calc(100vw - 32px));
|
|
7083
|
-
max-height: calc(100vh - 120px);
|
|
7084
|
-
display: flex;
|
|
7085
|
-
flex-direction: column;
|
|
7086
|
-
border: 1px solid var(--border);
|
|
7087
|
-
background: var(--card);
|
|
7088
|
-
box-shadow: 0 12px 40px color-mix(in oklab, var(--term-bg) 24%, transparent);
|
|
7089
|
-
}
|
|
7090
|
-
.nt-pop__head {
|
|
7091
|
-
display: flex;
|
|
7092
|
-
align-items: center;
|
|
7093
|
-
justify-content: space-between;
|
|
7094
|
-
gap: 8px;
|
|
7095
|
-
padding: 8px 12px;
|
|
7096
|
-
border-bottom: 1px solid var(--border);
|
|
7097
|
-
}
|
|
7098
|
-
.nt-pop__body {
|
|
7099
|
-
min-height: 0;
|
|
7100
|
-
overflow-y: auto;
|
|
7101
|
-
padding: 12px;
|
|
7102
|
-
}
|
|
7103
|
-
|
|
7104
7111
|
/* meeting-notes Run 7: the note reads top to bottom (prototype/meeting-notes/simple-note-mockup.html). A bar with the state and
|
|
7105
7112
|
one action, the title, the day, the meeting and the initiative on one line, the people, then the sections, each item led by
|
|
7106
7113
|
its meeting time. The transcript folds away. The same column in the pop-up and on the full screen. */
|
|
7107
7114
|
.nt-wrap:not(.nt-wrap--inline) {
|
|
7108
7115
|
max-width: 760px;
|
|
7109
7116
|
}
|
|
7110
|
-
.nt-pop__body {
|
|
7111
|
-
padding: 0 16px 16px;
|
|
7112
|
-
}
|
|
7113
7117
|
.nt-header {
|
|
7114
7118
|
flex-direction: column;
|
|
7115
7119
|
align-items: stretch;
|
|
@@ -7430,6 +7434,172 @@
|
|
|
7430
7434
|
gap: 6px;
|
|
7431
7435
|
flex: none;
|
|
7432
7436
|
}
|
|
7437
|
+
.nt-pg-metarow {
|
|
7438
|
+
display: flex;
|
|
7439
|
+
align-items: center;
|
|
7440
|
+
gap: 6px;
|
|
7441
|
+
flex-wrap: wrap;
|
|
7442
|
+
}
|
|
7443
|
+
.nt-pg-info {
|
|
7444
|
+
display: grid;
|
|
7445
|
+
grid-template-columns: 140px minmax(0, 1fr);
|
|
7446
|
+
gap: 4px 12px;
|
|
7447
|
+
margin: 6px 0 2px;
|
|
7448
|
+
padding: 10px 12px;
|
|
7449
|
+
border: 1px solid var(--border);
|
|
7450
|
+
border-radius: 8px;
|
|
7451
|
+
font-size: 12px;
|
|
7452
|
+
}
|
|
7453
|
+
.nt-pg-info dt {
|
|
7454
|
+
color: var(--muted-foreground);
|
|
7455
|
+
}
|
|
7456
|
+
.nt-pg-info dd {
|
|
7457
|
+
margin: 0;
|
|
7458
|
+
font-family: var(--mono);
|
|
7459
|
+
font-variant-numeric: tabular-nums;
|
|
7460
|
+
overflow-wrap: anywhere;
|
|
7461
|
+
}
|
|
7462
|
+
/* meeting-notes Run 13: the Meeting context card, open before and while recording, folded to one line after */
|
|
7463
|
+
.nt-pg-ctx {
|
|
7464
|
+
border: 1px solid var(--border);
|
|
7465
|
+
border-radius: 8px;
|
|
7466
|
+
background: var(--card);
|
|
7467
|
+
}
|
|
7468
|
+
.nt-pg-ctx__h {
|
|
7469
|
+
display: flex;
|
|
7470
|
+
align-items: center;
|
|
7471
|
+
gap: 10px;
|
|
7472
|
+
min-height: 44px;
|
|
7473
|
+
padding: 4px 8px 4px 12px;
|
|
7474
|
+
}
|
|
7475
|
+
.nt-pg-ctx__sum {
|
|
7476
|
+
flex: 1;
|
|
7477
|
+
min-width: 0;
|
|
7478
|
+
font-size: 12px;
|
|
7479
|
+
color: var(--muted-foreground);
|
|
7480
|
+
}
|
|
7481
|
+
.nt-pg-ctx__toggle--open svg {
|
|
7482
|
+
transform: rotate(180deg);
|
|
7483
|
+
}
|
|
7484
|
+
.nt-pg-ctx__b {
|
|
7485
|
+
display: grid;
|
|
7486
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
7487
|
+
gap: 16px 28px;
|
|
7488
|
+
padding: 14px;
|
|
7489
|
+
border-top: 1px solid var(--border);
|
|
7490
|
+
}
|
|
7491
|
+
.nt-pg-ctx__col h4 {
|
|
7492
|
+
margin: 0 0 6px;
|
|
7493
|
+
font-size: 11px;
|
|
7494
|
+
font-weight: 500;
|
|
7495
|
+
letter-spacing: 0.06em;
|
|
7496
|
+
text-transform: uppercase;
|
|
7497
|
+
color: var(--muted-foreground);
|
|
7498
|
+
}
|
|
7499
|
+
.nt-pg-ctx__col p {
|
|
7500
|
+
margin: 0 0 6px;
|
|
7501
|
+
font-size: 14px;
|
|
7502
|
+
}
|
|
7503
|
+
.nt-pg-ctx__col ul {
|
|
7504
|
+
display: flex;
|
|
7505
|
+
flex-direction: column;
|
|
7506
|
+
gap: 6px;
|
|
7507
|
+
margin: 0;
|
|
7508
|
+
padding: 0;
|
|
7509
|
+
list-style: none;
|
|
7510
|
+
}
|
|
7511
|
+
.nt-pg-ctx__col li {
|
|
7512
|
+
display: flex;
|
|
7513
|
+
align-items: flex-start;
|
|
7514
|
+
gap: 8px;
|
|
7515
|
+
font-size: 14px;
|
|
7516
|
+
}
|
|
7517
|
+
.nt-pg-ctx__note {
|
|
7518
|
+
grid-column: 1 / -1;
|
|
7519
|
+
}
|
|
7520
|
+
.nt-pg-av {
|
|
7521
|
+
display: inline-grid;
|
|
7522
|
+
place-items: center;
|
|
7523
|
+
flex: none;
|
|
7524
|
+
width: 22px;
|
|
7525
|
+
height: 22px;
|
|
7526
|
+
border-radius: 6px;
|
|
7527
|
+
background: var(--muted);
|
|
7528
|
+
font-size: 11px;
|
|
7529
|
+
font-weight: 500;
|
|
7530
|
+
}
|
|
7531
|
+
.nt-pg-ag__mk {
|
|
7532
|
+
display: inline-grid;
|
|
7533
|
+
place-items: center;
|
|
7534
|
+
flex: none;
|
|
7535
|
+
width: 16px;
|
|
7536
|
+
height: 16px;
|
|
7537
|
+
margin-top: 2px;
|
|
7538
|
+
border: 1px solid var(--border);
|
|
7539
|
+
border-radius: 0;
|
|
7540
|
+
font-size: 11px;
|
|
7541
|
+
line-height: 1;
|
|
7542
|
+
}
|
|
7543
|
+
.nt-pg-ag--heard .nt-pg-ag__mk {
|
|
7544
|
+
background: var(--primary);
|
|
7545
|
+
border-color: var(--primary);
|
|
7546
|
+
color: var(--primary-foreground, var(--background));
|
|
7547
|
+
}
|
|
7548
|
+
.nt-pg-ag:not(.nt-pg-ag--heard) {
|
|
7549
|
+
color: var(--muted-foreground);
|
|
7550
|
+
}
|
|
7551
|
+
.nt-pg-chips {
|
|
7552
|
+
display: flex;
|
|
7553
|
+
flex-wrap: wrap;
|
|
7554
|
+
gap: 4px;
|
|
7555
|
+
margin-top: 6px;
|
|
7556
|
+
}
|
|
7557
|
+
.nt-pg-chip {
|
|
7558
|
+
padding: 0 6px;
|
|
7559
|
+
border: 1px solid var(--border);
|
|
7560
|
+
border-radius: 6px;
|
|
7561
|
+
font-size: 11px;
|
|
7562
|
+
color: var(--muted-foreground);
|
|
7563
|
+
text-decoration: none;
|
|
7564
|
+
}
|
|
7565
|
+
@media (hover: hover) {
|
|
7566
|
+
.nt-pg-chip[href]:hover {
|
|
7567
|
+
color: var(--foreground);
|
|
7568
|
+
}
|
|
7569
|
+
}
|
|
7570
|
+
.nt-pg-dl {
|
|
7571
|
+
display: grid;
|
|
7572
|
+
grid-template-columns: 70px minmax(0, 1fr);
|
|
7573
|
+
gap: 2px 10px;
|
|
7574
|
+
margin: 0;
|
|
7575
|
+
font-size: 12px;
|
|
7576
|
+
}
|
|
7577
|
+
.nt-pg-dl dt {
|
|
7578
|
+
color: var(--muted-foreground);
|
|
7579
|
+
}
|
|
7580
|
+
.nt-pg-dl dd {
|
|
7581
|
+
margin: 0;
|
|
7582
|
+
}
|
|
7583
|
+
.nt-pg-live {
|
|
7584
|
+
display: flex;
|
|
7585
|
+
flex-direction: column;
|
|
7586
|
+
gap: 10px;
|
|
7587
|
+
}
|
|
7588
|
+
.nt-liveblock {
|
|
7589
|
+
display: flex;
|
|
7590
|
+
flex-direction: column;
|
|
7591
|
+
gap: 10px;
|
|
7592
|
+
}
|
|
7593
|
+
.nt-live--paused {
|
|
7594
|
+
display: flex;
|
|
7595
|
+
align-items: center;
|
|
7596
|
+
gap: 8px;
|
|
7597
|
+
}
|
|
7598
|
+
@media (max-width: 760px) {
|
|
7599
|
+
.nt-pg-ctx__b {
|
|
7600
|
+
grid-template-columns: 1fr;
|
|
7601
|
+
}
|
|
7602
|
+
}
|
|
7433
7603
|
.nt-pg-conflicts {
|
|
7434
7604
|
display: flex;
|
|
7435
7605
|
flex-direction: column;
|
|
@@ -7577,9 +7747,9 @@
|
|
|
7577
7747
|
}
|
|
7578
7748
|
/* The highlight's pop-up (meeting-notes Run 12, mockup board 0): bottom right, on every place, above the page. */
|
|
7579
7749
|
.nt-hl {
|
|
7580
|
-
position:
|
|
7581
|
-
|
|
7582
|
-
|
|
7750
|
+
position: absolute;
|
|
7751
|
+
top: calc(100% + 10px);
|
|
7752
|
+
right: 0;
|
|
7583
7753
|
z-index: 60;
|
|
7584
7754
|
display: flex;
|
|
7585
7755
|
flex-direction: column;
|