create-pmos 0.53.0 → 0.53.2

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 (75) 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/README.md +2 -0
  7. package/workspace/REMOTE.md +107 -65
  8. package/workspace/bin/pmos.js +4 -2
  9. package/workspace/first-paint-audit.js +6 -2
  10. package/workspace/fixtures/initiatives-api/list.json +13 -0
  11. package/workspace/fixtures/initiatives-api/roadmap.json +13 -0
  12. package/workspace/fixtures/report-api/draft.json +105 -0
  13. package/workspace/fixtures/reports-page/draft-biweekly-2026-10-16.md +12 -0
  14. package/workspace/guide/command-palette.md +1 -1
  15. package/workspace/guide/index.md +3 -1
  16. package/workspace/guide/initiatives-roadmap.md +1 -0
  17. package/workspace/guide/initiatives-screen.md +1 -0
  18. package/workspace/guide/launcher.md +51 -0
  19. package/workspace/guide/layout.md +7 -2
  20. package/workspace/guide/proactive-engine.md +21 -5
  21. package/workspace/guide/report-slides.md +28 -0
  22. package/workspace/guide/reports.md +2 -0
  23. package/workspace/lib/auto-sync.js +83 -0
  24. package/workspace/lib/board-fold.js +2 -2
  25. package/workspace/lib/breakdown-export.js +1 -6
  26. package/workspace/lib/brief.js +20 -2
  27. package/workspace/lib/goals.js +165 -0
  28. package/workspace/lib/initiative-rows.js +7 -3
  29. package/workspace/lib/launcher-cli.js +207 -0
  30. package/workspace/lib/plan-tree.js +15 -2
  31. package/workspace/lib/pmos-verbs.js +3 -0
  32. package/workspace/lib/proactive-cli.js +58 -2
  33. package/workspace/lib/proactive.js +2 -2
  34. package/workspace/lib/qr.js +293 -0
  35. package/workspace/lib/remote-access.js +184 -12
  36. package/workspace/lib/report-draft.js +34 -6
  37. package/workspace/lib/report-slides-data.js +141 -0
  38. package/workspace/lib/routes-initiatives.js +35 -2
  39. package/workspace/lib/routes-reports.js +3 -3
  40. package/workspace/lib/routes-timeline.js +1 -1
  41. package/workspace/lib/sync.js +61 -6
  42. package/workspace/package-lock.json +1 -1
  43. package/workspace/package.json +1 -1
  44. package/workspace/public/icons/apple-touch-icon.png +0 -0
  45. package/workspace/public/icons/icon-192.png +0 -0
  46. package/workspace/public/icons/icon-512.png +0 -0
  47. package/workspace/public/index.html +11 -0
  48. package/workspace/public/pm/app.js +55 -9
  49. package/workspace/public/pm/components.css +865 -1
  50. package/workspace/public/pm/dest-reports.js +8 -2
  51. package/workspace/public/pm/dest-today.js +8 -2
  52. package/workspace/public/pm/dock.js +73 -3
  53. package/workspace/public/pm/frame-copy.js +5 -0
  54. package/workspace/public/pm/initiative-list.js +18 -1
  55. package/workspace/public/pm/initiatives-copy.js +4 -0
  56. package/workspace/public/pm/panel-tabs.js +14 -12
  57. package/workspace/public/pm/print.css +11 -0
  58. package/workspace/public/pm/report-slides.js +438 -0
  59. package/workspace/public/pm/report-view.js +8 -2
  60. package/workspace/public/pm/reports-copy.js +3 -0
  61. package/workspace/public/pm/roadmap.js +23 -0
  62. package/workspace/public/pm/slides-copy.js +52 -0
  63. package/workspace/public/pm/today-copy.js +29 -0
  64. package/workspace/public/pm/today-goals.js +172 -0
  65. package/workspace/public/pm/tokens.css +13 -0
  66. package/workspace/public/pm/topbar.js +5 -2
  67. package/workspace/replaced-tests.json +36 -1
  68. package/workspace/server.js +165 -15
  69. package/workspace/skills/morning-brief.skill +15 -9
  70. package/workspace/skills/report-biweekly.skill +1 -0
  71. package/workspace/test-files.json +4 -0
  72. package/workspace/test-lists/run6.json +9 -0
  73. package/workspace/test-lists/workspace-launcher.json +5 -0
  74. package/workspace/test-lists/workspace-phone-app.json +5 -0
  75. package/workspace/test-lists/workspace-public-host.json +5 -0
@@ -1977,12 +1977,55 @@
1977
1977
  background: var(--sidebar);
1978
1978
  }
1979
1979
  .fr-dock {
1980
- width: clamp(360px, 36vw, 640px);
1980
+ width: var(--fr-dock-w, clamp(360px, 36vw, 640px));
1981
+ max-width: calc(100vw - 280px);
1981
1982
  border-left: 1px solid var(--border);
1982
1983
  }
1984
+ /* 0.53.1: while the dock is open its rail is a thin grip on the dock's left edge that resizes it (dock.js dockGrip). */
1985
+ .fr-dock-grip {
1986
+ display: none;
1987
+ }
1983
1988
  .fr-body[data-fr-dock="open"] > .fr-dock-rail {
1989
+ width: 6px;
1990
+ padding: 0;
1991
+ border-left: 0;
1992
+ align-items: stretch;
1993
+ background: transparent;
1994
+ }
1995
+ .fr-body[data-fr-dock="open"] > .fr-dock-rail > :not(.fr-dock-grip) {
1984
1996
  display: none;
1985
1997
  }
1998
+ .fr-body[data-fr-dock="open"] .fr-dock-grip {
1999
+ display: block;
2000
+ flex: 1;
2001
+ cursor: col-resize;
2002
+ touch-action: none;
2003
+ outline: none;
2004
+ }
2005
+ /* The grip shows a 1px line without hover (a touch screen has none); a press, a drag or the keyboard focus fills it. */
2006
+ .fr-body[data-fr-dock="open"] .fr-dock-grip {
2007
+ border-left: 1px solid var(--border);
2008
+ }
2009
+ .fr-dock-grip:focus-visible,
2010
+ .fr-dock-grip[data-dragging] {
2011
+ background: var(--ring);
2012
+ }
2013
+ @media (hover: hover) {
2014
+ .fr-dock-grip:hover {
2015
+ background: var(--ring);
2016
+ }
2017
+ }
2018
+ /* 0.53.1 Focus: the dock has the whole window; the page, the detail and the rail step aside (they stay mounted). */
2019
+ .fr-body[data-fr-dock="max"] > .fr-main,
2020
+ .fr-body[data-fr-dock="max"] > .fr-detail,
2021
+ .fr-body[data-fr-dock="max"] > .fr-dock-rail {
2022
+ display: none;
2023
+ }
2024
+ .fr-body[data-fr-dock="max"] > .fr-dock {
2025
+ width: auto;
2026
+ max-width: none;
2027
+ border-left: 0;
2028
+ }
1986
2029
  .fr-body[data-fr-dock="rail"] > .fr-dock {
1987
2030
  display: none !important;
1988
2031
  }
@@ -2054,6 +2097,7 @@
2054
2097
  .fr-detail,
2055
2098
  .fr-dock {
2056
2099
  width: auto;
2100
+ max-width: none;
2057
2101
  border-left: 0;
2058
2102
  }
2059
2103
  .fr-set {
@@ -2104,6 +2148,43 @@
2104
2148
  flex-direction: column;
2105
2149
  gap: 8px;
2106
2150
  }
2151
+ /* today-goals (G6): the goals for today, above what is owed */
2152
+ .td-goals {
2153
+ display: flex;
2154
+ flex-direction: column;
2155
+ gap: 8px;
2156
+ padding: 8px 12px;
2157
+ border: 1px solid var(--border);
2158
+ background: var(--card);
2159
+ }
2160
+ .td-goals__head { display: flex; align-items: center; }
2161
+ .td-goals__list, .td-goal__steps, .td-goal__ctx-list {
2162
+ list-style: none;
2163
+ margin: 0;
2164
+ padding: 0;
2165
+ display: flex;
2166
+ flex-direction: column;
2167
+ gap: 6px;
2168
+ }
2169
+ .td-goals__list { counter-reset: goal; }
2170
+ .td-goal { display: flex; flex-direction: column; gap: 4px; }
2171
+ .td-goal__head { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
2172
+ .td-goal__text { color: var(--foreground); font-weight: 500; }
2173
+ .td-goal__text::before { counter-increment: goal; content: counter(goal) ". "; color: var(--muted-foreground); }
2174
+ .td-goal--closed .td-goal__text { color: var(--muted-foreground); text-decoration: line-through; }
2175
+ .td-goal__ctrls { display: inline-flex; gap: 4px; margin-left: auto; }
2176
+ .td-goal__body { display: flex; flex-direction: column; gap: 4px; padding-left: 16px; }
2177
+ .td-goal__step { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
2178
+ .td-goal__step-title { color: var(--foreground); }
2179
+ .td-goal__meta, .td-goal__ctx, .td-goal__none, .td-goals__note, .td-goal__prep-text {
2180
+ color: var(--muted-foreground);
2181
+ font-size: 12px;
2182
+ line-height: 16px;
2183
+ margin: 0;
2184
+ }
2185
+ .td-goal__prep { display: inline-flex; align-items: center; gap: 8px; }
2186
+ .td-goals__bar { display: flex; gap: 8px; }
2187
+ .td-goals__sub { margin: 4px 0 0; font-size: 12px; font-weight: 600; color: var(--muted-foreground); }
2107
2188
  .td-card {
2108
2189
  display: flex;
2109
2190
  flex-direction: column;
@@ -2937,6 +3018,789 @@
2937
3018
  opacity: 0;
2938
3019
  }
2939
3020
 
3021
+ /* the slides (Run 6): the PM-OS biweekly canvas, 1280 × 720, drawn the same in both themes. Rules that start with
3022
+ * .rp-slide may use the slide type sizes (10px and 24px beside the R27 scale) and rounded corners: the slide is a
3023
+ * printed page that matches the PM-OS deck, not workspace chrome (conformance-gate.js SLIDE_CANVAS). */
3024
+ .rp-deck {
3025
+ position: fixed;
3026
+ inset: 0;
3027
+ width: 100vw;
3028
+ max-width: none;
3029
+ height: 100dvh;
3030
+ max-height: none;
3031
+ margin: 0;
3032
+ padding: 0;
3033
+ border: 0;
3034
+ background: var(--slide-stage);
3035
+ color: var(--foreground);
3036
+ }
3037
+ .rp-deck[open] {
3038
+ display: flex;
3039
+ flex-direction: column;
3040
+ }
3041
+ .rp-deck::backdrop {
3042
+ background: var(--slide-stage);
3043
+ }
3044
+ .rp-deck__stage {
3045
+ flex: 1 1 auto;
3046
+ min-height: 0;
3047
+ display: flex;
3048
+ align-items: center;
3049
+ justify-content: center;
3050
+ overflow: hidden;
3051
+ }
3052
+ .rp-deck__frame {
3053
+ position: relative;
3054
+ width: calc(1280px * var(--rp-scale, 1));
3055
+ height: calc(720px * var(--rp-scale, 1));
3056
+ }
3057
+ .rp-deck__frame > .rp-slide {
3058
+ position: absolute;
3059
+ top: 0;
3060
+ left: 0;
3061
+ transform: scale(var(--rp-scale, 1));
3062
+ transform-origin: top left;
3063
+ }
3064
+ .rp-deck__empty {
3065
+ margin: 0;
3066
+ font-size: 14px;
3067
+ line-height: 20px;
3068
+ color: var(--slide-bg);
3069
+ }
3070
+ .rp-deck__bar {
3071
+ display: flex;
3072
+ align-items: center;
3073
+ gap: 8px;
3074
+ padding: 8px 16px;
3075
+ border-top: 1px solid var(--border);
3076
+ background: var(--background);
3077
+ }
3078
+ .rp-deck__label {
3079
+ flex: 1 1 auto;
3080
+ min-width: 0;
3081
+ margin: 0;
3082
+ overflow: hidden;
3083
+ font-size: 12px;
3084
+ line-height: 16px;
3085
+ white-space: nowrap;
3086
+ text-overflow: ellipsis;
3087
+ color: var(--muted-foreground);
3088
+ }
3089
+ .rp-deck__count {
3090
+ min-width: 48px;
3091
+ margin: 0;
3092
+ font-family: var(--mono);
3093
+ font-size: 12px;
3094
+ line-height: 16px;
3095
+ text-align: center;
3096
+ }
3097
+ .rp-slides {
3098
+ display: flex;
3099
+ flex-direction: column;
3100
+ gap: 16px;
3101
+ }
3102
+ .rp-slides__card {
3103
+ position: relative;
3104
+ width: 100%;
3105
+ aspect-ratio: 16 / 9;
3106
+ overflow: hidden;
3107
+ box-shadow: 0 0 0 1px var(--border);
3108
+ }
3109
+ .rp-slides__card > .rp-slide {
3110
+ position: absolute;
3111
+ top: 0;
3112
+ left: 0;
3113
+ transform: scale(var(--rp-scale, 0.5));
3114
+ transform-origin: top left;
3115
+ }
3116
+ .rp-slide {
3117
+ position: relative;
3118
+ box-sizing: border-box;
3119
+ width: 1280px;
3120
+ height: 720px;
3121
+ overflow: hidden;
3122
+ background: var(--slide-bg);
3123
+ color: var(--slide-fg);
3124
+ font-family: var(--sans);
3125
+ font-size: 14px;
3126
+ line-height: 20px;
3127
+ font-variant-numeric: tabular-nums;
3128
+ }
3129
+ /* the slide's own reset: :where() keeps it at the weight of one class, so every .rp-slide__ rule below wins */
3130
+ .rp-slide :where(p),
3131
+ .rp-slide :where(h2),
3132
+ .rp-slide :where(h3),
3133
+ .rp-slide :where(h4),
3134
+ .rp-slide :where(ul),
3135
+ .rp-slide :where(ol) {
3136
+ margin: 0;
3137
+ padding: 0;
3138
+ }
3139
+ .rp-slide :where(ul),
3140
+ .rp-slide :where(ol) {
3141
+ list-style: none;
3142
+ }
3143
+ .rp-slide__header {
3144
+ position: absolute;
3145
+ top: 25px;
3146
+ left: 33px;
3147
+ right: 33px;
3148
+ display: flex;
3149
+ height: 48px;
3150
+ }
3151
+ .rp-slide__num {
3152
+ display: flex;
3153
+ flex: none;
3154
+ align-items: center;
3155
+ justify-content: center;
3156
+ box-sizing: border-box;
3157
+ width: 48px;
3158
+ height: 48px;
3159
+ border: 1px solid var(--slide-border);
3160
+ border-right: 0;
3161
+ background: var(--slide-bg);
3162
+ color: var(--slide-brand);
3163
+ font-size: 20px;
3164
+ line-height: 28px;
3165
+ font-weight: 800;
3166
+ }
3167
+ .rp-slide__band {
3168
+ display: flex;
3169
+ flex: 1 1 auto;
3170
+ align-items: center;
3171
+ min-width: 0;
3172
+ height: 48px;
3173
+ padding: 0 20px;
3174
+ background: var(--slide-brand);
3175
+ }
3176
+ .rp-slide__title {
3177
+ min-width: 0;
3178
+ overflow: hidden;
3179
+ font-size: 24px;
3180
+ line-height: 32px;
3181
+ font-weight: 700;
3182
+ letter-spacing: -0.6px;
3183
+ white-space: nowrap;
3184
+ text-overflow: ellipsis;
3185
+ color: var(--slide-bg);
3186
+ }
3187
+ .rp-slide__body {
3188
+ position: absolute;
3189
+ top: 93px;
3190
+ left: 33px;
3191
+ right: 33px;
3192
+ bottom: 47px;
3193
+ display: flex;
3194
+ flex-direction: column;
3195
+ }
3196
+ .rp-slide__footer {
3197
+ position: absolute;
3198
+ top: 681px;
3199
+ left: 33px;
3200
+ right: 33px;
3201
+ display: flex;
3202
+ justify-content: space-between;
3203
+ padding-top: 9px;
3204
+ border-top: 1px solid var(--slide-rule);
3205
+ font-size: 11px;
3206
+ line-height: 16.5px;
3207
+ letter-spacing: 0.275px;
3208
+ color: var(--slide-foot);
3209
+ }
3210
+ .rp-slide__meta {
3211
+ min-width: 0;
3212
+ overflow: hidden;
3213
+ padding-left: 16px;
3214
+ white-space: pre;
3215
+ text-overflow: ellipsis;
3216
+ }
3217
+ .rp-slide__empty {
3218
+ margin-top: 8px;
3219
+ font-size: 12px;
3220
+ line-height: 16px;
3221
+ color: var(--slide-muted);
3222
+ }
3223
+ .rp-slide__dash {
3224
+ color: var(--slide-muted);
3225
+ }
3226
+ .rp-slide__gantt {
3227
+ display: flex;
3228
+ width: 1212px;
3229
+ height: 573px;
3230
+ margin-left: 1px;
3231
+ overflow: hidden;
3232
+ border-radius: 4px;
3233
+ background: var(--slide-secondary);
3234
+ }
3235
+ .rp-slide__gnames {
3236
+ flex: none;
3237
+ width: 300px;
3238
+ border-right: 1px solid color-mix(in oklab, var(--slide-border) 50%, transparent);
3239
+ background: color-mix(in oklab, var(--slide-bg) 90%, transparent);
3240
+ }
3241
+ .rp-slide__ghead {
3242
+ display: flex;
3243
+ align-items: flex-end;
3244
+ gap: 10px;
3245
+ box-sizing: border-box;
3246
+ height: 60px;
3247
+ padding: 0 10px 11px;
3248
+ }
3249
+ .rp-slide__gissues,
3250
+ .rp-slide__gdur,
3251
+ .rp-slide__glabel {
3252
+ font-size: 12px;
3253
+ line-height: 16px;
3254
+ font-weight: 500;
3255
+ color: var(--slide-muted);
3256
+ }
3257
+ .rp-slide__gissues {
3258
+ flex: 1 1 auto;
3259
+ }
3260
+ .rp-slide__glabel {
3261
+ box-sizing: border-box;
3262
+ height: 52px;
3263
+ padding: 10px;
3264
+ overflow: hidden;
3265
+ white-space: nowrap;
3266
+ text-overflow: ellipsis;
3267
+ }
3268
+ .rp-slide__gname {
3269
+ display: flex;
3270
+ align-items: center;
3271
+ box-sizing: border-box;
3272
+ height: 52px;
3273
+ padding: 0 10px;
3274
+ border-bottom: 1px solid color-mix(in oklab, var(--slide-border) 50%, transparent);
3275
+ }
3276
+ .rp-slide__gchev {
3277
+ display: flex;
3278
+ flex: none;
3279
+ color: var(--slide-muted);
3280
+ }
3281
+ .rp-slide__gchev svg {
3282
+ width: 12px;
3283
+ height: 12px;
3284
+ }
3285
+ .rp-slide__ldot {
3286
+ flex: none;
3287
+ width: 8px;
3288
+ height: 8px;
3289
+ margin: 0 6px 0 8px;
3290
+ border-radius: 50%;
3291
+ background: var(--slide-now);
3292
+ }
3293
+ .rp-slide__ldot--next {
3294
+ background: var(--slide-next);
3295
+ }
3296
+ .rp-slide__ldot--later {
3297
+ background: var(--slide-later);
3298
+ }
3299
+ .rp-slide__gtitle {
3300
+ flex: 1 1 auto;
3301
+ min-width: 0;
3302
+ overflow: hidden;
3303
+ font-size: 12px;
3304
+ line-height: 16px;
3305
+ font-weight: 500;
3306
+ white-space: nowrap;
3307
+ text-overflow: ellipsis;
3308
+ }
3309
+ .rp-slide__glanes {
3310
+ position: relative;
3311
+ flex: 1 1 auto;
3312
+ overflow: hidden;
3313
+ }
3314
+ .rp-slide__gcol {
3315
+ position: absolute;
3316
+ top: 0;
3317
+ bottom: 0;
3318
+ left: var(--rp-x);
3319
+ width: var(--rp-w);
3320
+ border-left: 1px solid color-mix(in oklab, var(--slide-border) 60%, transparent);
3321
+ }
3322
+ .rp-slide__gyear {
3323
+ position: absolute;
3324
+ top: 8px;
3325
+ left: 10px;
3326
+ font-size: 12px;
3327
+ line-height: 16px;
3328
+ color: var(--slide-muted);
3329
+ }
3330
+ .rp-slide__gmonth {
3331
+ position: absolute;
3332
+ top: 37px;
3333
+ left: 0;
3334
+ right: 0;
3335
+ font-size: 12px;
3336
+ line-height: 16px;
3337
+ text-align: center;
3338
+ }
3339
+ .rp-slide__grows {
3340
+ position: absolute;
3341
+ top: 60px;
3342
+ left: 0;
3343
+ right: 0;
3344
+ }
3345
+ .rp-slide__gline {
3346
+ position: relative;
3347
+ height: 52px;
3348
+ }
3349
+ .rp-slide__gbar {
3350
+ position: absolute;
3351
+ top: 2px;
3352
+ left: var(--rp-x);
3353
+ width: var(--rp-w);
3354
+ height: 48px;
3355
+ border-radius: 4px;
3356
+ background: var(--slide-bg);
3357
+ box-shadow: 0 0 0 1px var(--slide-border), 0 1px 2px color-mix(in oklab, var(--slide-fg) 8%, transparent);
3358
+ }
3359
+ .rp-slide__gseg {
3360
+ --rp-tone: var(--slide-ph-other);
3361
+ position: absolute;
3362
+ top: 14px;
3363
+ left: var(--rp-x);
3364
+ width: var(--rp-w);
3365
+ height: 20px;
3366
+ box-sizing: border-box;
3367
+ border-radius: 2px;
3368
+ background: color-mix(in oklab, var(--rp-tone) 25%, transparent);
3369
+ }
3370
+ .rp-slide__gseg--intake {
3371
+ --rp-tone: var(--slide-ph-intake);
3372
+ }
3373
+ .rp-slide__gseg--spec {
3374
+ --rp-tone: var(--slide-ph-spec);
3375
+ }
3376
+ .rp-slide__gseg--build {
3377
+ --rp-tone: var(--slide-ph-build);
3378
+ }
3379
+ .rp-slide__gseg--evaluate {
3380
+ --rp-tone: var(--slide-ph-evaluate);
3381
+ }
3382
+ .rp-slide__gseg--handoff {
3383
+ --rp-tone: var(--slide-ph-handoff);
3384
+ }
3385
+ .rp-slide__gseg--est {
3386
+ border: 1px dashed color-mix(in oklab, var(--rp-tone) 70%, transparent);
3387
+ background: repeating-linear-gradient(-45deg, color-mix(in oklab, var(--rp-tone) 45%, transparent) 0 3px, color-mix(in oklab, var(--rp-tone) 15%, transparent) 3px 7px);
3388
+ }
3389
+ .rp-slide__table {
3390
+ overflow: hidden;
3391
+ border-radius: 12px;
3392
+ background: var(--slide-bg);
3393
+ box-shadow: 0 0 0 1px var(--slide-border), 0 1px 2px color-mix(in oklab, var(--slide-fg) 5%, transparent);
3394
+ }
3395
+ .rp-slide__tr {
3396
+ display: grid;
3397
+ grid-template-columns: minmax(0, 1fr) 140px 380px 110px;
3398
+ align-items: center;
3399
+ box-sizing: border-box;
3400
+ min-height: 49px;
3401
+ padding: 0 12px;
3402
+ column-gap: 12px;
3403
+ border-top: 1px solid var(--slide-border);
3404
+ }
3405
+ .rp-slide__tr--head {
3406
+ min-height: 48px;
3407
+ border-top: 0;
3408
+ }
3409
+ .rp-slide__th {
3410
+ font-size: 12px;
3411
+ line-height: 16px;
3412
+ font-weight: 500;
3413
+ letter-spacing: 0.6px;
3414
+ color: var(--slide-muted);
3415
+ }
3416
+ .rp-slide__th--caps {
3417
+ text-transform: uppercase;
3418
+ }
3419
+ .rp-slide__td {
3420
+ min-width: 0;
3421
+ overflow: hidden;
3422
+ white-space: nowrap;
3423
+ text-overflow: ellipsis;
3424
+ }
3425
+ .rp-slide__td--name {
3426
+ font-weight: 500;
3427
+ }
3428
+ .rp-slide__badge {
3429
+ font-size: 10px;
3430
+ line-height: 15px;
3431
+ font-weight: 600;
3432
+ letter-spacing: 1px;
3433
+ text-transform: uppercase;
3434
+ }
3435
+ .rp-slide__badge--early {
3436
+ color: var(--slide-muted);
3437
+ }
3438
+ .rp-slide__mstitle,
3439
+ .rp-slide__msdue {
3440
+ overflow: hidden;
3441
+ white-space: nowrap;
3442
+ text-overflow: ellipsis;
3443
+ }
3444
+ .rp-slide__msdue {
3445
+ font-size: 12px;
3446
+ line-height: 16px;
3447
+ font-weight: 500;
3448
+ color: var(--slide-muted);
3449
+ }
3450
+ .rp-slide__msdue--late,
3451
+ .rp-slide__mswhen--late {
3452
+ color: var(--slide-overdue);
3453
+ }
3454
+ .rp-slide__empty--list {
3455
+ padding: 12px;
3456
+ }
3457
+ .rp-slide__itop {
3458
+ display: flex;
3459
+ align-items: center;
3460
+ justify-content: space-between;
3461
+ height: 32px;
3462
+ }
3463
+ .rp-slide__prog {
3464
+ display: flex;
3465
+ align-items: center;
3466
+ gap: 12px;
3467
+ }
3468
+ .rp-slide__track {
3469
+ width: 176px;
3470
+ height: 10px;
3471
+ overflow: hidden;
3472
+ border-radius: 9999px;
3473
+ background: var(--slide-track);
3474
+ }
3475
+ .rp-slide__fill {
3476
+ width: var(--rp-pct, 0%);
3477
+ height: 100%;
3478
+ border-radius: 9999px;
3479
+ background: var(--slide-primary);
3480
+ }
3481
+ .rp-slide__pct {
3482
+ font-size: 24px;
3483
+ line-height: 32px;
3484
+ font-weight: 700;
3485
+ }
3486
+ .rp-slide__msline {
3487
+ display: flex;
3488
+ align-items: baseline;
3489
+ gap: 8px;
3490
+ margin-top: 15px;
3491
+ padding: 8px 0;
3492
+ border-top: 1px solid var(--slide-border);
3493
+ border-bottom: 1px solid var(--slide-border);
3494
+ }
3495
+ .rp-slide__mslabel {
3496
+ flex: none;
3497
+ font-size: 12px;
3498
+ line-height: 16px;
3499
+ letter-spacing: 0.3px;
3500
+ text-transform: uppercase;
3501
+ color: var(--slide-muted);
3502
+ }
3503
+ .rp-slide__mslabel--rel {
3504
+ margin-left: 24px;
3505
+ }
3506
+ .rp-slide__msname,
3507
+ .rp-slide__mswhen {
3508
+ font-weight: 500;
3509
+ white-space: nowrap;
3510
+ }
3511
+ .rp-slide__cycles {
3512
+ display: grid;
3513
+ grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
3514
+ gap: 32px;
3515
+ margin-top: 15px;
3516
+ min-height: 0;
3517
+ }
3518
+ .rp-slide__ccol {
3519
+ display: flex;
3520
+ flex-direction: column;
3521
+ min-width: 0;
3522
+ }
3523
+ .rp-slide__chead {
3524
+ display: flex;
3525
+ align-items: baseline;
3526
+ justify-content: space-between;
3527
+ gap: 8px;
3528
+ padding-bottom: 6px;
3529
+ border-bottom: 1px solid var(--slide-border);
3530
+ }
3531
+ .rp-slide__ctitle {
3532
+ font-size: 14px;
3533
+ line-height: 20px;
3534
+ font-weight: 600;
3535
+ }
3536
+ .rp-slide__crange {
3537
+ flex: none;
3538
+ font-size: 12px;
3539
+ line-height: 16px;
3540
+ color: var(--slide-muted);
3541
+ }
3542
+ .rp-slide__items {
3543
+ display: flex;
3544
+ flex-direction: column;
3545
+ gap: 6px;
3546
+ margin-top: 8px;
3547
+ }
3548
+ .rp-slide__item {
3549
+ display: flex;
3550
+ gap: 8px;
3551
+ }
3552
+ .rp-slide__mark {
3553
+ display: flex;
3554
+ flex: none;
3555
+ align-items: center;
3556
+ justify-content: center;
3557
+ width: 10px;
3558
+ height: 16px;
3559
+ margin-top: 1px;
3560
+ }
3561
+ .rp-slide__mark--ms::before {
3562
+ content: "";
3563
+ width: 7px;
3564
+ height: 7px;
3565
+ background: var(--slide-ph-spec);
3566
+ transform: rotate(45deg);
3567
+ }
3568
+ .rp-slide__mark--open::before {
3569
+ content: "";
3570
+ box-sizing: border-box;
3571
+ width: 9px;
3572
+ height: 9px;
3573
+ border: 1.5px solid var(--slide-open);
3574
+ border-radius: 50%;
3575
+ }
3576
+ .rp-slide__mark--done {
3577
+ color: var(--slide-done);
3578
+ }
3579
+ .rp-slide__mark--done svg {
3580
+ width: 12px;
3581
+ height: 12px;
3582
+ }
3583
+ .rp-slide__itext {
3584
+ min-width: 0;
3585
+ flex: 1 1 auto;
3586
+ }
3587
+ .rp-slide__ititle,
3588
+ .rp-slide__isub {
3589
+ overflow: hidden;
3590
+ white-space: nowrap;
3591
+ text-overflow: ellipsis;
3592
+ }
3593
+ .rp-slide__ititle {
3594
+ line-height: 19.25px;
3595
+ }
3596
+ .rp-slide__item--ms .rp-slide__ititle {
3597
+ font-weight: 500;
3598
+ }
3599
+ .rp-slide__isub {
3600
+ font-size: 12px;
3601
+ line-height: 16px;
3602
+ color: var(--slide-muted);
3603
+ }
3604
+ .rp-slide__subms {
3605
+ font-weight: 500;
3606
+ color: var(--slide-ph-spec);
3607
+ }
3608
+ .rp-slide__more {
3609
+ margin-top: 0;
3610
+ font-size: 12px;
3611
+ line-height: 16px;
3612
+ font-weight: 500;
3613
+ color: var(--slide-primary);
3614
+ }
3615
+ .rp-slide__note {
3616
+ margin-top: auto;
3617
+ padding: 10px 12px;
3618
+ border: 1px solid var(--slide-border);
3619
+ border-radius: 6px;
3620
+ background: color-mix(in oklab, var(--slide-track) 60%, var(--slide-bg));
3621
+ }
3622
+ .rp-slide__note--info {
3623
+ border-color: color-mix(in oklab, var(--slide-note-info) 30%, transparent);
3624
+ background: color-mix(in oklab, var(--slide-note-info) 6%, var(--slide-bg));
3625
+ }
3626
+ .rp-slide__note--warning {
3627
+ border-color: color-mix(in oklab, var(--slide-note-warning) 35%, transparent);
3628
+ background: color-mix(in oklab, var(--slide-note-warning) 7%, var(--slide-bg));
3629
+ }
3630
+ .rp-slide__notehead {
3631
+ font-size: 12px;
3632
+ line-height: 16px;
3633
+ font-weight: 600;
3634
+ letter-spacing: 0.3px;
3635
+ text-transform: uppercase;
3636
+ color: var(--slide-muted);
3637
+ }
3638
+ .rp-slide__note--info .rp-slide__notehead {
3639
+ color: var(--slide-note-info);
3640
+ }
3641
+ .rp-slide__note--warning .rp-slide__notehead {
3642
+ color: var(--slide-note-warning);
3643
+ }
3644
+ .rp-slide__notelist {
3645
+ display: flex;
3646
+ flex-direction: column;
3647
+ gap: 2px;
3648
+ margin-top: 4px;
3649
+ }
3650
+ .rp-slide__noteli {
3651
+ padding-left: 14px;
3652
+ text-indent: -14px;
3653
+ }
3654
+ .rp-slide__noteli::before {
3655
+ content: "\2022";
3656
+ display: inline-block;
3657
+ width: 14px;
3658
+ text-indent: 0;
3659
+ color: var(--slide-muted);
3660
+ }
3661
+ .rp-slide__month {
3662
+ padding: 4px;
3663
+ font-size: 14px;
3664
+ line-height: 20px;
3665
+ font-weight: 600;
3666
+ color: var(--slide-muted);
3667
+ }
3668
+ .rp-slide__mcount {
3669
+ margin-left: 8px;
3670
+ font-weight: 400;
3671
+ color: color-mix(in oklab, var(--slide-muted) 70%, transparent);
3672
+ }
3673
+ .rp-slide__timeline {
3674
+ display: flex;
3675
+ flex-direction: column;
3676
+ margin: 8px 0 20px;
3677
+ }
3678
+ .rp-slide__entry {
3679
+ --rp-tone: var(--slide-launch);
3680
+ --rp-wash: var(--slide-launch-bg);
3681
+ position: relative;
3682
+ padding: 0 4px 28px 32px;
3683
+ }
3684
+ .rp-slide__entry:last-child {
3685
+ padding-bottom: 0;
3686
+ }
3687
+ .rp-slide__entry:not(:last-child)::after {
3688
+ content: "";
3689
+ position: absolute;
3690
+ top: 22px;
3691
+ bottom: -2px;
3692
+ left: 11px;
3693
+ width: 2px;
3694
+ background: var(--slide-primary);
3695
+ }
3696
+ .rp-slide__entry--improvement {
3697
+ --rp-tone: var(--slide-improvement);
3698
+ --rp-wash: var(--slide-improvement-bg);
3699
+ }
3700
+ .rp-slide__entry--fix {
3701
+ --rp-tone: var(--slide-fix);
3702
+ --rp-wash: var(--slide-fix-bg);
3703
+ }
3704
+ .rp-slide__entry--security {
3705
+ --rp-tone: var(--slide-security);
3706
+ --rp-wash: var(--slide-security-bg);
3707
+ }
3708
+ .rp-slide__entry--deprecation {
3709
+ --rp-tone: var(--slide-deprecation);
3710
+ --rp-wash: var(--slide-deprecation-bg);
3711
+ }
3712
+ .rp-slide__entry--beta {
3713
+ --rp-tone: var(--slide-beta);
3714
+ --rp-wash: var(--slide-beta-bg);
3715
+ }
3716
+ .rp-slide__edot {
3717
+ position: absolute;
3718
+ top: 4px;
3719
+ left: 6px;
3720
+ box-sizing: border-box;
3721
+ width: 12px;
3722
+ height: 12px;
3723
+ border: 2px solid var(--rp-tone);
3724
+ border-radius: 50%;
3725
+ background: var(--rp-tone);
3726
+ }
3727
+ .rp-slide__erow {
3728
+ display: flex;
3729
+ align-items: center;
3730
+ gap: 6px;
3731
+ }
3732
+ .rp-slide__pill {
3733
+ padding: 2px 10px;
3734
+ border-radius: 9999px;
3735
+ background: var(--rp-wash);
3736
+ color: var(--rp-tone);
3737
+ font-size: 12px;
3738
+ line-height: 16px;
3739
+ font-weight: 600;
3740
+ letter-spacing: 1.2px;
3741
+ text-transform: uppercase;
3742
+ }
3743
+ .rp-slide__area {
3744
+ font-size: 12px;
3745
+ line-height: 16px;
3746
+ font-weight: 500;
3747
+ letter-spacing: 1.2px;
3748
+ text-transform: uppercase;
3749
+ color: var(--slide-muted);
3750
+ }
3751
+ .rp-slide__edate {
3752
+ margin-left: auto;
3753
+ font-size: 12px;
3754
+ line-height: 16px;
3755
+ font-weight: 500;
3756
+ color: var(--slide-muted);
3757
+ }
3758
+ .rp-slide__eday {
3759
+ color: color-mix(in oklab, var(--slide-muted) 70%, transparent);
3760
+ }
3761
+ .rp-slide__etitle {
3762
+ margin-top: 6px;
3763
+ font-size: 16px;
3764
+ line-height: 24px;
3765
+ font-weight: 600;
3766
+ }
3767
+ .rp-slide__esum {
3768
+ margin-top: 6px;
3769
+ line-height: 22.75px;
3770
+ color: color-mix(in oklab, var(--slide-fg) 80%, transparent);
3771
+ }
3772
+ .rp-slide__change {
3773
+ display: flex;
3774
+ align-items: baseline;
3775
+ gap: 8px;
3776
+ margin-top: 4px;
3777
+ }
3778
+ .rp-slide__kind {
3779
+ flex: none;
3780
+ font-size: 11px;
3781
+ line-height: 16px;
3782
+ font-weight: 700;
3783
+ letter-spacing: 0.275px;
3784
+ text-transform: uppercase;
3785
+ color: var(--slide-improvement);
3786
+ }
3787
+ .rp-slide__kind--added {
3788
+ color: var(--slide-launch);
3789
+ }
3790
+ .rp-slide__kind--fixed {
3791
+ color: var(--slide-fix);
3792
+ }
3793
+ .rp-slide__kind--deprecated,
3794
+ .rp-slide__kind--removed {
3795
+ color: var(--slide-deprecation);
3796
+ }
3797
+ .rp-slide__kind--security {
3798
+ color: var(--slide-security);
3799
+ }
3800
+ .rp-slide__ctext {
3801
+ color: color-mix(in oklab, var(--slide-fg) 90%, transparent);
3802
+ }
3803
+
2940
3804
  @container (min-width: 720px) {
2941
3805
  .rp-cols {
2942
3806
  grid-template-columns: minmax(260px, 340px) minmax(0, 1fr);