create-pmos 0.67.1 → 0.69.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 (37) hide show
  1. package/package.json +1 -1
  2. package/payload/KIT-VERSION +1 -1
  3. package/payload/planning/evals/eval-calibration.md +1 -1
  4. package/payload/planning/okrs/health-budgets.md +1 -1
  5. package/payload/state/discoveries.md +1 -1
  6. package/workspace/guide/command-palette.md +1 -1
  7. package/workspace/guide/initiatives-screen.md +1 -1
  8. package/workspace/guide/layout.md +35 -8
  9. package/workspace/guide/notes.md +12 -1
  10. package/workspace/guide/today.md +3 -1
  11. package/workspace/lib/notes-links.js +56 -0
  12. package/workspace/lib/notes.js +87 -5
  13. package/workspace/lib/routes-notes.js +47 -6
  14. package/workspace/package-lock.json +1 -1
  15. package/workspace/package.json +1 -1
  16. package/workspace/public/pm/components.css +697 -3
  17. package/workspace/public/pm/doc-editor.js +473 -0
  18. package/workspace/public/pm/doc-rail.js +161 -0
  19. package/workspace/public/pm/doc-remote.js +180 -0
  20. package/workspace/public/pm/dock-sessions.js +57 -13
  21. package/workspace/public/pm/frame-copy.js +2 -0
  22. package/workspace/public/pm/icons.js +1 -1
  23. package/workspace/public/pm/initiative-sheet.js +10 -2
  24. package/workspace/public/pm/initiatives-copy.js +1 -0
  25. package/workspace/public/pm/notes-links.js +110 -0
  26. package/workspace/public/pm/panel-tabs.js +85 -3
  27. package/workspace/public/pm/primitives.js +8 -4
  28. package/workspace/public/pm/state.js +3 -0
  29. package/workspace/public/pm/tab-doc.js +175 -170
  30. package/workspace/public/pm/today-agenda.js +6 -1
  31. package/workspace/public/pm/today-day.js +6 -0
  32. package/workspace/public/pm/view-notes.js +113 -6
  33. package/workspace/public/vendor/lucide-sprite.js +15 -2
  34. package/workspace/replaced-tests.json +43 -0
  35. package/workspace/server.js +30 -0
  36. package/workspace/test-lists/workspace-tabs-declutter.json +13 -0
  37. package/workspace/third-party/README.md +1 -1
@@ -403,6 +403,19 @@
403
403
  text-decoration: line-through;
404
404
  text-decoration-thickness: 1px;
405
405
  }
406
+ /* compact: one line for the title and one for the meta, cut with an ellipsis (a narrow list, such as the dock's) */
407
+ .pmc-row--compact .pmc-title__text,
408
+ .pmc-row--compact .pmc-row__meta {
409
+ overflow: hidden;
410
+ text-overflow: ellipsis;
411
+ white-space: nowrap;
412
+ }
413
+ .pmc-row--compact .pmc-row__meta {
414
+ display: block;
415
+ }
416
+ .pmc-row--compact .pmc-row__meta > span {
417
+ display: inline;
418
+ }
406
419
  .pmc-row--proposed .pmc-row__title {
407
420
  color: var(--muted-foreground);
408
421
  }
@@ -2378,9 +2391,13 @@
2378
2391
  .fr-ds-group {
2379
2392
  display: flex;
2380
2393
  flex-direction: column;
2381
- gap: 2px;
2394
+ gap: 1px;
2382
2395
  padding-top: 8px;
2383
2396
  }
2397
+ .fr-ds-group + .fr-ds-group {
2398
+ margin-top: 4px;
2399
+ border-top: 1px solid var(--border);
2400
+ }
2384
2401
  .fr-ds-head {
2385
2402
  display: flex;
2386
2403
  align-items: center;
@@ -2396,12 +2413,35 @@
2396
2413
  color: var(--muted-foreground);
2397
2414
  font-size: 11px;
2398
2415
  font-weight: 600;
2416
+ letter-spacing: 0.1em;
2417
+ text-transform: uppercase;
2399
2418
  text-overflow: ellipsis;
2400
2419
  white-space: nowrap;
2401
2420
  }
2421
+ /* the group's name is its fold control: the chevron, the name, then how many sessions it holds */
2422
+ .fr-ds-head__toggle {
2423
+ flex: 1 1 auto;
2424
+ justify-content: flex-start;
2425
+ min-width: 0;
2426
+ margin-left: -6px;
2427
+ padding: 0 6px;
2428
+ color: var(--muted-foreground);
2429
+ font-size: 11px;
2430
+ }
2431
+ .fr-ds-head__count {
2432
+ flex: none;
2433
+ padding-right: 4px;
2434
+ color: var(--muted-foreground);
2435
+ font-size: 11px;
2436
+ font-variant-numeric: tabular-nums;
2437
+ }
2438
+ .fr-ds-head--plain .fr-ds-head__count {
2439
+ padding-right: 10px;
2440
+ }
2402
2441
  .fr-ds-row {
2403
- gap: 2px;
2404
- padding: 2px 0 2px 6px;
2442
+ gap: 6px;
2443
+ min-height: 40px;
2444
+ padding: 2px 0 2px 8px;
2405
2445
  border: 1px solid transparent;
2406
2446
  background: transparent;
2407
2447
  }
@@ -2409,6 +2449,35 @@
2409
2449
  border-color: var(--border);
2410
2450
  background: var(--card);
2411
2451
  }
2452
+ .fr-ds-row--ended {
2453
+ color: var(--muted-foreground);
2454
+ }
2455
+ /* the state glyph: the shape is the state (lib/session-state.js GLYPH); the colour only repeats it */
2456
+ .fr-ds-glyph {
2457
+ display: inline-grid;
2458
+ place-items: center;
2459
+ width: 12px;
2460
+ font-size: 11px;
2461
+ line-height: 1;
2462
+ color: var(--foreground);
2463
+ }
2464
+ .fr-ds-glyph[data-state="quiet"],
2465
+ .fr-ds-glyph[data-state="exited"] {
2466
+ color: var(--muted-foreground);
2467
+ }
2468
+ .fr-ds-glyph[data-state="blocked"] {
2469
+ color: var(--warning);
2470
+ }
2471
+ /* A row's ⋯ and ✕ show on the row in front and on a row with the keyboard focus in it, so a long list is a column of
2472
+ * names. They stay in place (and clickable) when faded, and a touch screen always shows them. */
2473
+ .fr-ds-row:not([data-front="true"]):not(:focus-within) .fr-ds-act {
2474
+ opacity: 0;
2475
+ }
2476
+ @media (hover: hover) {
2477
+ .fr-ds-row:not([data-front="true"]):not(:focus-within):hover .fr-ds-act {
2478
+ opacity: 1;
2479
+ }
2480
+ }
2412
2481
  .fr-ds-confirm {
2413
2482
  display: flex;
2414
2483
  flex-wrap: wrap;
@@ -2489,6 +2558,17 @@
2489
2558
  text-overflow: ellipsis;
2490
2559
  white-space: nowrap;
2491
2560
  }
2561
+ .fr-ds-tabchip {
2562
+ flex: 0 1 auto;
2563
+ display: flex;
2564
+ align-items: center;
2565
+ align-self: center;
2566
+ min-width: 96px;
2567
+ }
2568
+ .fr-ds-tabchip .fr-ds-chip {
2569
+ flex: 0 1 auto;
2570
+ min-width: 0;
2571
+ }
2492
2572
  .fr-ds-push {
2493
2573
  margin-left: auto;
2494
2574
  align-self: center;
@@ -2510,6 +2590,533 @@
2510
2590
  .fr-ds-row {
2511
2591
  min-height: 48px;
2512
2592
  }
2593
+ .fr-ds-head__toggle {
2594
+ min-height: 44px;
2595
+ }
2596
+ .fr-ds-row:not([data-front="true"]):not(:focus-within) .fr-ds-act {
2597
+ opacity: 1;
2598
+ }
2599
+ }
2600
+
2601
+ /* workspace-tabs-declutter — a document tab's bar in live mode (tab-doc.js docBar): the save state and the copy, then
2602
+ * Changes, revert, save, the markdown (or source) toggle and one ⋯ menu at the end. */
2603
+ .fr-doc-bar {
2604
+ flex: none;
2605
+ display: flex;
2606
+ align-items: center;
2607
+ gap: 12px;
2608
+ min-width: 0;
2609
+ min-height: 44px;
2610
+ padding: 6px 12px;
2611
+ border-bottom: 1px solid var(--border);
2612
+ background: var(--background);
2613
+ }
2614
+ .fr-doc-bar__copy {
2615
+ min-width: 0;
2616
+ max-width: 260px;
2617
+ }
2618
+ .fr-doc-bar__copy[data-tone="warn"],
2619
+ .fr-doc-bar__copy[data-tone="busy"] {
2620
+ color: var(--foreground);
2621
+ }
2622
+ .fr-doc-bar__copy[data-tone="bad"] {
2623
+ color: var(--warning);
2624
+ }
2625
+ .fr-doc-bar__status {
2626
+ min-width: 0;
2627
+ overflow: hidden;
2628
+ color: var(--muted-foreground);
2629
+ font-size: 12px;
2630
+ text-overflow: ellipsis;
2631
+ white-space: nowrap;
2632
+ }
2633
+ .fr-doc-bar__status[data-tone="dirty"] {
2634
+ color: var(--warning);
2635
+ }
2636
+ .fr-doc-bar__status[data-tone="error"] {
2637
+ color: var(--destructive);
2638
+ }
2639
+ .fr-doc-bar__end {
2640
+ display: flex;
2641
+ align-items: center;
2642
+ gap: 4px;
2643
+ margin-left: auto;
2644
+ }
2645
+ /* the in-place document (doc-editor.js): one scrolling pane, the document and its rail side by side */
2646
+ .fr-ed {
2647
+ flex: 1;
2648
+ min-height: 0;
2649
+ overflow-y: auto;
2650
+ background: var(--background);
2651
+ color: var(--foreground);
2652
+ container-type: inline-size;
2653
+ }
2654
+ .fr-ed__grid {
2655
+ display: grid;
2656
+ grid-template-columns: minmax(0, 1fr);
2657
+ gap: 40px;
2658
+ margin: 0 auto;
2659
+ padding: 28px 24px 72px 48px;
2660
+ }
2661
+ .fr-ed__grid[data-rail] {
2662
+ grid-template-columns: minmax(0, 1fr) 260px;
2663
+ }
2664
+ .fr-ed__grid[data-measure="72ch"] {
2665
+ max-width: calc(72ch + 72px);
2666
+ }
2667
+ .fr-ed__grid[data-measure="72ch"][data-rail] {
2668
+ max-width: calc(72ch + 372px);
2669
+ }
2670
+ @container (max-width: 760px) {
2671
+ .fr-ed__grid[data-rail] {
2672
+ grid-template-columns: minmax(0, 1fr);
2673
+ }
2674
+ .fr-ed__grid {
2675
+ padding: 20px 16px 56px 36px;
2676
+ }
2677
+ }
2678
+ .fr-ed__main {
2679
+ min-width: 0;
2680
+ font-size: 14px;
2681
+ line-height: 1.7;
2682
+ }
2683
+ .fr-ed__props {
2684
+ margin-bottom: 28px;
2685
+ border: 1px solid var(--border);
2686
+ background: var(--card);
2687
+ }
2688
+ .fr-ed__props-sum {
2689
+ display: flex;
2690
+ align-items: center;
2691
+ gap: 6px;
2692
+ min-height: 32px;
2693
+ padding: 0 10px;
2694
+ color: var(--muted-foreground);
2695
+ font-size: 11px;
2696
+ font-weight: 600;
2697
+ letter-spacing: 0.1em;
2698
+ text-transform: uppercase;
2699
+ list-style: none;
2700
+ cursor: pointer;
2701
+ }
2702
+ .fr-ed__props-sum::-webkit-details-marker {
2703
+ display: none;
2704
+ }
2705
+ .fr-ed__props-sum:focus-visible,
2706
+ .fr-ed__prop-v:focus-visible,
2707
+ .fr-ed__blk:focus-visible,
2708
+ .fr-ed__box:focus-visible {
2709
+ outline: 2px solid color-mix(in oklab, var(--ring) 50%, var(--foreground));
2710
+ outline-offset: -2px;
2711
+ }
2712
+ .fr-ed__props[open] .fr-ed__props-sum svg {
2713
+ transform: rotate(90deg);
2714
+ }
2715
+ .fr-ed__props-n {
2716
+ font-variant-numeric: tabular-nums;
2717
+ }
2718
+ .fr-ed__props-grid {
2719
+ display: grid;
2720
+ grid-template-columns: minmax(80px, 140px) minmax(0, 1fr);
2721
+ border-top: 1px solid var(--border);
2722
+ }
2723
+ .fr-ed__prop-k,
2724
+ .fr-ed__prop-v {
2725
+ min-width: 0;
2726
+ min-height: 32px;
2727
+ border-bottom: 1px solid var(--border);
2728
+ font-family: var(--mono);
2729
+ font-size: 12px;
2730
+ }
2731
+ .fr-ed__prop-k {
2732
+ padding: 7px 12px;
2733
+ color: var(--muted-foreground);
2734
+ }
2735
+ .fr-ed__prop-v {
2736
+ padding: 0 12px;
2737
+ border-left: 1px solid var(--border);
2738
+ background: transparent;
2739
+ color: var(--foreground);
2740
+ }
2741
+ .fr-ed__prop-v--ro {
2742
+ padding-top: 7px;
2743
+ color: var(--muted-foreground);
2744
+ overflow-wrap: anywhere;
2745
+ }
2746
+ .fr-ed__props-grid > :nth-last-child(-n + 2) {
2747
+ border-bottom: 0;
2748
+ }
2749
+ .fr-ed__blk {
2750
+ position: relative;
2751
+ margin: 0 -12px 10px;
2752
+ padding: 2px 12px;
2753
+ border-left: 2px solid transparent;
2754
+ cursor: text;
2755
+ }
2756
+ .fr-ed__blk[data-k="h1"] {
2757
+ margin-bottom: 16px;
2758
+ }
2759
+ .fr-ed__blk[data-k="h2"] {
2760
+ margin-top: 24px;
2761
+ }
2762
+ .fr-ed__blk[data-k="h3"] {
2763
+ margin-top: 16px;
2764
+ }
2765
+ .fr-ed__md > * {
2766
+ margin-top: 0;
2767
+ margin-bottom: 0;
2768
+ }
2769
+ .fr-ed__h1 {
2770
+ margin: 0;
2771
+ font-family: var(--sans);
2772
+ font-size: 20px;
2773
+ font-weight: 600;
2774
+ line-height: 1.3;
2775
+ text-wrap: balance;
2776
+ }
2777
+ @media (hover: hover) {
2778
+ .fr-ed__blk:not(.fr-ed__blk--on):hover {
2779
+ background: color-mix(in oklab, var(--muted) 40%, transparent);
2780
+ }
2781
+ .fr-ed__blk:hover .fr-ed__add {
2782
+ opacity: 1;
2783
+ }
2784
+ }
2785
+ .fr-ed__add {
2786
+ position: absolute;
2787
+ top: 0;
2788
+ left: -36px;
2789
+ opacity: 0;
2790
+ }
2791
+ .fr-ed__blk:focus-within .fr-ed__add {
2792
+ opacity: 1;
2793
+ }
2794
+ @media (pointer: coarse) {
2795
+ .fr-ed__add {
2796
+ display: none;
2797
+ }
2798
+ }
2799
+ .fr-ed__blk--on {
2800
+ border-left-color: color-mix(in oklab, var(--ring) 50%, var(--foreground));
2801
+ background: var(--card);
2802
+ cursor: auto;
2803
+ }
2804
+ .fr-ed__src {
2805
+ display: block;
2806
+ width: 100%;
2807
+ height: var(--fr-ed-h, auto);
2808
+ margin: 0;
2809
+ padding: 0;
2810
+ overflow: hidden;
2811
+ border: 0;
2812
+ outline: 0;
2813
+ background: transparent;
2814
+ color: var(--foreground);
2815
+ font-family: var(--sans);
2816
+ font-size: 14px;
2817
+ line-height: 1.7;
2818
+ resize: none;
2819
+ }
2820
+ .fr-ed__src::placeholder {
2821
+ color: var(--muted-foreground);
2822
+ }
2823
+ .fr-ed__src--h1 {
2824
+ font-size: 20px;
2825
+ font-weight: 600;
2826
+ line-height: 1.3;
2827
+ }
2828
+ .fr-ed__src--h2 {
2829
+ font-size: 16px;
2830
+ font-weight: 600;
2831
+ line-height: 1.4;
2832
+ }
2833
+ .fr-ed__src--h3,
2834
+ .fr-ed__src--h4,
2835
+ .fr-ed__src--h5,
2836
+ .fr-ed__src--h6 {
2837
+ font-weight: 600;
2838
+ }
2839
+ .fr-ed__src--code,
2840
+ .fr-ed__src--table {
2841
+ font-family: var(--mono);
2842
+ font-size: 12px;
2843
+ line-height: 1.6;
2844
+ }
2845
+ .fr-ed__src--quote {
2846
+ color: var(--muted-foreground);
2847
+ }
2848
+ .fr-ed__tools {
2849
+ position: absolute;
2850
+ z-index: 2;
2851
+ top: -40px;
2852
+ right: 6px;
2853
+ display: flex;
2854
+ align-items: center;
2855
+ gap: 2px;
2856
+ padding: 2px;
2857
+ border: 1px solid var(--border);
2858
+ background: var(--card);
2859
+ box-shadow: 0 6px 18px color-mix(in oklab, var(--foreground) 12%, transparent);
2860
+ }
2861
+ .fr-ed__tools-hint {
2862
+ padding: 0 8px 0 6px;
2863
+ border-left: 1px solid var(--border);
2864
+ color: var(--muted-foreground);
2865
+ font-size: 11px;
2866
+ white-space: nowrap;
2867
+ }
2868
+ .fr-ed__checks {
2869
+ margin: 0;
2870
+ padding: 0;
2871
+ list-style: none;
2872
+ }
2873
+ .fr-ed__check {
2874
+ display: flex;
2875
+ align-items: flex-start;
2876
+ gap: 10px;
2877
+ }
2878
+ .fr-ed__check--more {
2879
+ padding-left: 24px;
2880
+ }
2881
+ .fr-ed__box {
2882
+ flex: none;
2883
+ width: 14px;
2884
+ height: 14px;
2885
+ margin: 6px 0 0;
2886
+ accent-color: var(--foreground);
2887
+ cursor: pointer;
2888
+ }
2889
+ .fr-ed__check[data-done="yes"] .fr-ed__check-t {
2890
+ color: var(--muted-foreground);
2891
+ text-decoration: line-through;
2892
+ }
2893
+ .fr-ed__end {
2894
+ margin-top: 8px;
2895
+ }
2896
+ .fr-ed__hint {
2897
+ margin: 24px 0 0;
2898
+ color: var(--muted-foreground);
2899
+ font-size: 12px;
2900
+ }
2901
+ /* beside the document (doc-rail.js): the outline, or the file's connections drawn and listed */
2902
+ .fr-rail {
2903
+ position: sticky;
2904
+ top: 0;
2905
+ align-self: start;
2906
+ display: flex;
2907
+ flex-direction: column;
2908
+ gap: 12px;
2909
+ min-width: 0;
2910
+ }
2911
+ .fr-rail__tabs {
2912
+ width: 100%;
2913
+ }
2914
+ .fr-rail__outline,
2915
+ .fr-rail__ties {
2916
+ display: flex;
2917
+ flex-direction: column;
2918
+ min-width: 0;
2919
+ }
2920
+ .fr-rail__head[data-level="2"] {
2921
+ padding-left: 12px;
2922
+ }
2923
+ .fr-rail__head[data-level="3"] {
2924
+ padding-left: 24px;
2925
+ }
2926
+ .fr-rail__note {
2927
+ margin: 0;
2928
+ color: var(--muted-foreground);
2929
+ font-size: 12px;
2930
+ line-height: 1.5;
2931
+ }
2932
+ .fr-rail__note--bad {
2933
+ color: var(--destructive);
2934
+ }
2935
+ .fr-rail__label {
2936
+ color: var(--muted-foreground);
2937
+ font-size: 11px;
2938
+ font-weight: 600;
2939
+ letter-spacing: 0.1em;
2940
+ text-transform: uppercase;
2941
+ }
2942
+ .fr-rail__graph {
2943
+ display: block;
2944
+ width: 100%;
2945
+ height: auto;
2946
+ border: 1px solid var(--border);
2947
+ background: var(--card);
2948
+ }
2949
+ .fr-rail__edge {
2950
+ stroke: var(--muted-foreground);
2951
+ stroke-width: 1;
2952
+ opacity: 0.6;
2953
+ }
2954
+ .fr-rail__edge--mention {
2955
+ stroke-dasharray: 3 3;
2956
+ }
2957
+ .fr-rail__edge--copy {
2958
+ stroke: var(--foreground);
2959
+ }
2960
+ .fr-rail__edge--flag {
2961
+ stroke: var(--warning);
2962
+ opacity: 1;
2963
+ }
2964
+ .fr-rail__edge.fr-rail--lit {
2965
+ stroke: var(--foreground);
2966
+ stroke-width: 2;
2967
+ opacity: 1;
2968
+ }
2969
+ .fr-rail__me {
2970
+ fill: var(--foreground);
2971
+ }
2972
+ .fr-rail__node {
2973
+ cursor: pointer;
2974
+ }
2975
+ .fr-rail__node rect {
2976
+ fill: var(--background);
2977
+ stroke: var(--muted-foreground);
2978
+ stroke-width: 1.5;
2979
+ }
2980
+ .fr-rail__node--copy rect {
2981
+ stroke: var(--foreground);
2982
+ stroke-dasharray: 2 2;
2983
+ }
2984
+ .fr-rail__node--flag rect {
2985
+ stroke: var(--warning);
2986
+ fill: color-mix(in oklab, var(--warning) 25%, var(--background));
2987
+ }
2988
+ .fr-rail__node text {
2989
+ fill: var(--muted-foreground);
2990
+ font-family: var(--sans);
2991
+ font-size: 11px;
2992
+ }
2993
+ .fr-rail__node.fr-rail--lit rect {
2994
+ stroke: var(--foreground);
2995
+ stroke-width: 2;
2996
+ }
2997
+ .fr-rail__node.fr-rail--lit text {
2998
+ fill: var(--foreground);
2999
+ }
3000
+ .fr-rail__tie--flag {
3001
+ box-shadow: inset 2px 0 0 var(--warning);
3002
+ }
3003
+ .fr-rail__tie.fr-rail--lit {
3004
+ background: color-mix(in oklab, var(--muted) 45%, transparent);
3005
+ }
3006
+ .fr-rail__findings {
3007
+ display: flex;
3008
+ flex-direction: column;
3009
+ gap: 8px;
3010
+ margin: 0;
3011
+ padding: 0;
3012
+ font-size: 12px;
3013
+ line-height: 1.5;
3014
+ list-style: none;
3015
+ }
3016
+ .fr-rail__finding-s {
3017
+ display: block;
3018
+ color: var(--muted-foreground);
3019
+ font-size: 11px;
3020
+ font-weight: 600;
3021
+ letter-spacing: 0.1em;
3022
+ text-transform: uppercase;
3023
+ }
3024
+ .fr-rail__finding[data-status="stale"] .fr-rail__finding-s,
3025
+ .fr-rail__finding[data-status="contradicted"] .fr-rail__finding-s {
3026
+ color: var(--warning);
3027
+ }
3028
+ /* the copies sheet (doc-remote.js) */
3029
+ .fr-copy {
3030
+ display: flex;
3031
+ flex-direction: column;
3032
+ gap: 12px;
3033
+ padding-bottom: 16px;
3034
+ border-bottom: 1px solid var(--border);
3035
+ }
3036
+ .fr-copy__state {
3037
+ display: flex;
3038
+ align-items: center;
3039
+ gap: 8px;
3040
+ font-size: 14px;
3041
+ font-weight: 600;
3042
+ }
3043
+ .fr-copy__dot {
3044
+ width: 8px;
3045
+ height: 8px;
3046
+ flex: none;
3047
+ background: var(--muted-foreground);
3048
+ }
3049
+ .fr-copy__state[data-tone="warn"] .fr-copy__dot,
3050
+ .fr-copy__state[data-tone="busy"] .fr-copy__dot {
3051
+ background: var(--foreground);
3052
+ }
3053
+ .fr-copy__state[data-tone="bad"] .fr-copy__dot {
3054
+ background: var(--warning);
3055
+ }
3056
+ .fr-copy__by {
3057
+ color: var(--muted-foreground);
3058
+ font-weight: 400;
3059
+ }
3060
+ .fr-copy__sides {
3061
+ display: grid;
3062
+ grid-template-columns: 96px minmax(0, 1fr);
3063
+ gap: 8px 12px;
3064
+ margin: 0;
3065
+ font-size: 12px;
3066
+ }
3067
+ .fr-copy__sides dt {
3068
+ color: var(--muted-foreground);
3069
+ }
3070
+ .fr-copy__sides dd {
3071
+ display: flex;
3072
+ flex-direction: column;
3073
+ min-width: 0;
3074
+ margin: 0;
3075
+ }
3076
+ .fr-copy__where {
3077
+ overflow-wrap: anywhere;
3078
+ color: var(--foreground);
3079
+ font-family: var(--mono);
3080
+ }
3081
+ .fr-copy__edit {
3082
+ color: var(--muted-foreground);
3083
+ }
3084
+ .fr-copy__diff {
3085
+ margin: 0;
3086
+ padding: 10px;
3087
+ border: 1px solid var(--border);
3088
+ background: var(--background);
3089
+ font-size: 12px;
3090
+ }
3091
+ .fr-copy__acts {
3092
+ display: flex;
3093
+ flex-wrap: wrap;
3094
+ gap: 6px;
3095
+ }
3096
+ .fr-copy__p {
3097
+ margin: 0;
3098
+ color: var(--muted-foreground);
3099
+ font-size: 12px;
3100
+ line-height: 1.5;
3101
+ }
3102
+ /* the scratchpad in the frame (panel-tabs.js paintFramePad): the pad, then one row of actions and a short note */
3103
+ .fr-pad__row {
3104
+ display: flex;
3105
+ align-items: center;
3106
+ gap: 4px;
3107
+ min-width: 0;
3108
+ }
3109
+ .fr-pad__note {
3110
+ min-width: 0;
3111
+ margin-left: 8px;
3112
+ overflow: hidden;
3113
+ color: var(--muted-foreground);
3114
+ font-size: 12px;
3115
+ text-overflow: ellipsis;
3116
+ white-space: nowrap;
3117
+ }
3118
+ .fr-pad__toggle {
3119
+ margin-left: -8px;
2513
3120
  }
2514
3121
 
2515
3122
  /* -- layouts · .td- Today (Run 3, slice 3B) -- */
@@ -5333,6 +5940,93 @@
5333
5940
  }
5334
5941
  }
5335
5942
 
5943
+ /* meeting-notes Run 4: the note's meeting and initiative, and its notes on the calendar and the initiative */
5944
+ .nt-headwrap {
5945
+ flex: 1 1 280px;
5946
+ min-width: 0;
5947
+ display: flex;
5948
+ flex-direction: column;
5949
+ gap: 8px;
5950
+ }
5951
+ .nt-links {
5952
+ display: flex;
5953
+ flex-wrap: wrap;
5954
+ gap: 4px 24px;
5955
+ font-size: 14px;
5956
+ }
5957
+ .nt-link {
5958
+ display: flex;
5959
+ flex-wrap: wrap;
5960
+ align-items: center;
5961
+ gap: 4px 8px;
5962
+ min-width: 0;
5963
+ }
5964
+ .nt-link__k {
5965
+ font-size: 12px;
5966
+ color: var(--muted-foreground);
5967
+ }
5968
+ .nt-picks,
5969
+ .nt-picks [role="radiogroup"] {
5970
+ display: flex;
5971
+ flex-direction: column;
5972
+ gap: 8px;
5973
+ }
5974
+ .nt-pick {
5975
+ display: flex;
5976
+ flex-direction: column;
5977
+ align-items: flex-start;
5978
+ gap: 2px;
5979
+ padding: 8px 12px;
5980
+ border: 1px solid var(--border);
5981
+ border-radius: 0;
5982
+ background: var(--background);
5983
+ color: var(--foreground);
5984
+ font: inherit;
5985
+ text-align: left;
5986
+ cursor: pointer;
5987
+ }
5988
+ .nt-pick {
5989
+ height: auto;
5990
+ justify-content: flex-start;
5991
+ }
5992
+ .nt-pick__txt {
5993
+ display: flex;
5994
+ flex-direction: column;
5995
+ align-items: flex-start;
5996
+ gap: 2px;
5997
+ white-space: normal;
5998
+ }
5999
+ .nt-pick[aria-checked="true"] {
6000
+ border-color: var(--foreground);
6001
+ background: var(--accent);
6002
+ }
6003
+ .nt-pick:focus-visible {
6004
+ outline: 2px solid color-mix(in oklab, var(--ring) 50%, var(--foreground));
6005
+ outline-offset: 2px;
6006
+ }
6007
+ .nt-lsum {
6008
+ margin: 4px 0;
6009
+ padding-left: 18px;
6010
+ }
6011
+ .nt-lrows {
6012
+ display: flex;
6013
+ flex-direction: column;
6014
+ }
6015
+ .nt-lrow {
6016
+ display: flex;
6017
+ align-items: flex-start;
6018
+ justify-content: space-between;
6019
+ gap: 12px;
6020
+ padding: 12px 0;
6021
+ border-bottom: 1px solid var(--border);
6022
+ }
6023
+ .nt-lrow__main {
6024
+ min-width: 0;
6025
+ }
6026
+ .nt-lrow__meta {
6027
+ font-size: 12px;
6028
+ color: var(--muted-foreground);
6029
+ }
5336
6030
  /* -- layouts · .lg- the legacy and fixture shells (Run 3, slice 3D) -- */
5337
6031
  /* The legacy and fixture cockpit's two columns: the list head (a stack) and the rail's tile column. */
5338
6032
  .lg-stack {