@bongos/core 1.21.65 → 1.21.67

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 (53) hide show
  1. package/.bongos-core.json +114 -49
  2. package/docs/copy-inventory.md +432 -405
  3. package/docs/copy-registry.json +840 -571
  4. package/docs/file-map.md +1 -0
  5. package/docs/module-api-changelog.md +4 -0
  6. package/docs/page-inventory.json +45 -13
  7. package/docs/page-readings.json +969 -917
  8. package/modules/hall-ui/public/profile.html +4 -7
  9. package/modules/hall-ui/public/profile.js +0 -5
  10. package/modules/platform-identity/routes/my-projects.js +1 -1
  11. package/modules/public-landing/public/account.html +1 -1
  12. package/modules/public-landing/public/assets/cosmos.css +12 -10
  13. package/modules/public-landing/public/contact.html +1 -1
  14. package/modules/public-landing/public/guild.html +1 -1
  15. package/modules/public-landing/public/index-cli.states.json +20 -0
  16. package/modules/public-landing/public/index.html +68 -1
  17. package/modules/public-landing/public/index.states.json +4 -4
  18. package/modules/public-landing/public/invitations-empty.states.json +56 -0
  19. package/modules/public-landing/public/invitations-picker.states.json +84 -0
  20. package/modules/public-landing/public/invitations.html +956 -0
  21. package/modules/public-landing/public/invitations.probes.json +430 -0
  22. package/modules/public-landing/public/invitations.states.json +473 -0
  23. package/modules/public-landing/public/privacy.html +1 -1
  24. package/modules/public-landing/public/projects.html +18 -543
  25. package/modules/public-landing/public/projects.probes.json +0 -29
  26. package/modules/public-landing/public/projects.states.json +0 -6
  27. package/modules/public-landing/public/terms.html +1 -1
  28. package/modules/ui-design/kit/fixtures/bongos-cli-latest-sample.json +10 -0
  29. package/modules/ui-design/kit/fixtures/featured-invitations.json +183 -0
  30. package/modules/ui-design/kit/fixtures/guilds-empty.json +1 -0
  31. package/modules/ui-design/kit/fixtures/me-guild-engagements-empty.json +1 -0
  32. package/modules/ui-design/kit/fixtures/me-guild-requests-empty.json +1 -0
  33. package/modules/ui-design/kit/fixtures/my-projects-applied.json +29 -0
  34. package/modules/ui-design/kit/fixtures/my-projects-invites-empty.json +1 -0
  35. package/modules/ui-design/kit/serve.js +5 -1
  36. package/package-lock.json +2 -2
  37. package/package.json +1 -1
  38. package/release-notes.json +16 -0
  39. package/src/module-api.js +1 -1
  40. package/src/platform-server.js +11 -0
  41. package/tests/canonical_profile_url.mjs +23 -157
  42. package/tests/hub_account_page.mjs +1 -1
  43. package/tests/hub_engagement_cards.mjs +44 -40
  44. package/tests/hub_guild_cards.mjs +24 -22
  45. package/tests/hub_invitations_page.mjs +414 -0
  46. package/tests/join_relay_outcome.mjs +1 -1
  47. package/tests/landing_legal_pages.mjs +8 -6
  48. package/tests/landing_page.mjs +125 -3
  49. package/tests/my_projects_surface.mjs +14 -6
  50. package/tests/public_landing_projects.mjs +12 -14
  51. package/tests/render_check.mjs +3 -2
  52. package/tests/ui_design_kit.mjs +3 -3
  53. package/modules/hall-ui/public/profile-canonical.js +0 -137
@@ -0,0 +1,430 @@
1
+ {
2
+ "_": "The invitations page's interaction contract for modules/ui-design/kit/probe.js (task 1004276): the door signed out, the bar's current place, the join field, and the guild cards' probes that moved here from projects.probes.json with them.",
3
+ "page": "/invitations",
4
+ "surface": "public-landing",
5
+ "probes": [
6
+ {
7
+ "name": "invitations signed out: the door, and no lists",
8
+ "auth": false,
9
+ "width": 1440,
10
+ "steps": [
11
+ [
12
+ "wait",
13
+ 300
14
+ ]
15
+ ],
16
+ "expect": {
17
+ "visible": [
18
+ "#door",
19
+ "#signin"
20
+ ],
21
+ "hidden": [
22
+ "#invtBody"
23
+ ],
24
+ "href": [
25
+ [
26
+ "#signin",
27
+ "/api/bongos/auth/web/start?return=/invitations&repos=1"
28
+ ]
29
+ ]
30
+ }
31
+ },
32
+ {
33
+ "name": "invitations signed in: the profile band names this page as the current place",
34
+ "auth": true,
35
+ "width": 1440,
36
+ "steps": [
37
+ [
38
+ "wait",
39
+ 600
40
+ ],
41
+ [
42
+ "click",
43
+ "#who"
44
+ ],
45
+ [
46
+ "wait",
47
+ 150
48
+ ]
49
+ ],
50
+ "expect": {
51
+ "open": "#menuProfile",
52
+ "count": [
53
+ [
54
+ "#menuProfile a[aria-current=\"page\"]",
55
+ 1
56
+ ]
57
+ ],
58
+ "text": [
59
+ [
60
+ "#menuProfile a[aria-current=\"page\"]",
61
+ "Invitations"
62
+ ]
63
+ ]
64
+ }
65
+ },
66
+ {
67
+ "name": "invitations: a bare host is applied for as https, and the receipt reads applied",
68
+ "continue": true,
69
+ "steps": [
70
+ [
71
+ "press",
72
+ "Escape"
73
+ ],
74
+ [
75
+ "fill",
76
+ "#joinOrigin",
77
+ "grove.cloudbongos.com"
78
+ ],
79
+ [
80
+ "click",
81
+ "#joinBtn"
82
+ ],
83
+ [
84
+ "wait",
85
+ 300
86
+ ]
87
+ ],
88
+ "expect": {
89
+ "hasClass": [
90
+ [
91
+ "#joinStatus",
92
+ "ok"
93
+ ]
94
+ ],
95
+ "text": [
96
+ [
97
+ "#joinStatus",
98
+ "Applied. The project’s owner admits new builders; once approved, sign in to enter."
99
+ ]
100
+ ]
101
+ }
102
+ },
103
+ {
104
+ "name": "invitations: an empty address is a question, not a request",
105
+ "continue": true,
106
+ "steps": [
107
+ [
108
+ "click",
109
+ "#joinBtn"
110
+ ],
111
+ [
112
+ "wait",
113
+ 100
114
+ ]
115
+ ],
116
+ "expect": {
117
+ "hasClass": [
118
+ [
119
+ "#joinStatus",
120
+ "err"
121
+ ]
122
+ ],
123
+ "text": [
124
+ [
125
+ "#joinStatus",
126
+ "Pick a project or enter its address."
127
+ ]
128
+ ]
129
+ }
130
+ },
131
+ {
132
+ "name": "guild cards (task 1002303, R27): the page lists what your guilds have going, each card with its own Apply",
133
+ "auth": true,
134
+ "width": 1440,
135
+ "url": "/invitations",
136
+ "steps": [
137
+ [
138
+ "wait",
139
+ 900
140
+ ]
141
+ ],
142
+ "expect": {
143
+ "visible": [
144
+ "#mineInvites",
145
+ "#engageList"
146
+ ],
147
+ "count": [
148
+ [
149
+ "#engageList .engageRow",
150
+ 2
151
+ ],
152
+ [
153
+ "#engageList .engageRow .mineJoinNote:not([hidden])",
154
+ 0
155
+ ]
156
+ ],
157
+ "text": [
158
+ [
159
+ "#engageList .engageRow:nth-child(1) .mineRow__name",
160
+ "Forge Crew is applying to Tidepool — apply with them?"
161
+ ],
162
+ [
163
+ "#engageList .engageRow:nth-child(2) .mineRow__name",
164
+ "Lantern Works invited Forge Crew"
165
+ ]
166
+ ]
167
+ }
168
+ },
169
+ {
170
+ "name": "guild cards: Add a note opens the card's own note; Apply sends it with the guild (the stub refuses a guild with no engagement) and the card says it went through",
171
+ "continue": true,
172
+ "steps": [
173
+ [
174
+ "click",
175
+ "#engageList .engageRow:first-child .linklike"
176
+ ],
177
+ [
178
+ "fill",
179
+ "#engageList .engageRow:first-child .mineJoinNote",
180
+ "Happy to take the migrations."
181
+ ],
182
+ [
183
+ "click",
184
+ "#engageList .engageRow:first-child .btn"
185
+ ],
186
+ [
187
+ "wait",
188
+ 400
189
+ ]
190
+ ],
191
+ "expect": {
192
+ "hidden": [
193
+ "#engageList .engageRow:first-child .mineJoinNote"
194
+ ],
195
+ "hasClass": [
196
+ [
197
+ "#engageList .engageRow:first-child .projMsg",
198
+ "ok"
199
+ ]
200
+ ],
201
+ "text": [
202
+ [
203
+ "#engageList .engageRow:first-child .btn",
204
+ "Applied"
205
+ ],
206
+ [
207
+ "#engageList .engageRow:first-child .projMsg",
208
+ "Applied. The project’s owner admits new builders; once approved, sign in to enter."
209
+ ]
210
+ ]
211
+ }
212
+ },
213
+ {
214
+ "name": "guild cards: the invited card applies on its own, with no note",
215
+ "continue": true,
216
+ "steps": [
217
+ [
218
+ "click",
219
+ "#engageList .engageRow:nth-child(2) .btn"
220
+ ],
221
+ [
222
+ "wait",
223
+ 400
224
+ ]
225
+ ],
226
+ "expect": {
227
+ "text": [
228
+ [
229
+ "#engageList .engageRow:nth-child(2) .btn",
230
+ "Applied"
231
+ ]
232
+ ],
233
+ "hasClass": [
234
+ [
235
+ "#engageList .engageRow:nth-child(2) .projMsg",
236
+ "ok"
237
+ ]
238
+ ]
239
+ }
240
+ },
241
+ {
242
+ "name": "guild invite cards (task 1004583): each says what joining shows and, before accept, that your numbers count — with the switch right there, set to count",
243
+ "auth": true,
244
+ "width": 1440,
245
+ "url": "/invitations",
246
+ "steps": [
247
+ [
248
+ "wait",
249
+ 900
250
+ ]
251
+ ],
252
+ "expect": {
253
+ "visible": [
254
+ "#guildInviteList",
255
+ "#guildInviteList .guildRow:first-child .guildCount"
256
+ ],
257
+ "count": [
258
+ [
259
+ "#guildInviteList .guildRow",
260
+ 2
261
+ ],
262
+ [
263
+ "#guildInviteList .guildRow:first-child a.linklike:not([hidden])",
264
+ 1
265
+ ],
266
+ [
267
+ "#guildInviteList .guildRow:nth-child(2) a.linklike:not([hidden])",
268
+ 0
269
+ ]
270
+ ],
271
+ "text": [
272
+ [
273
+ "#guildInviteList .guildRow:first-child .mineRow__name",
274
+ "You’re invited to join Open Hands"
275
+ ],
276
+ [
277
+ "#guildInviteList .guildRow:first-child .guildCount__what",
278
+ "Your numbers count toward this guild’s rounded totals — even while your record is hidden or your account is private. They are never shown on their own: only inside totals rounded down to a band (10+, 20+, 50+ …) and counted once a week. Leave them out of any guild you’d rather not share them with."
279
+ ]
280
+ ],
281
+ "checked": "#guildInviteList .guildRow:first-child input[value=\"on\"]"
282
+ }
283
+ },
284
+ {
285
+ "name": "guild invite: Leave them out says what that means before anything is sent",
286
+ "continue": true,
287
+ "steps": [
288
+ [
289
+ "click",
290
+ "#guildInviteList .guildRow:first-child .guildCount__opt:nth-child(2)"
291
+ ],
292
+ [
293
+ "wait",
294
+ 150
295
+ ]
296
+ ],
297
+ "expect": {
298
+ "checked": "#guildInviteList .guildRow:first-child input[value=\"off\"]",
299
+ "text": [
300
+ [
301
+ "#guildInviteList .guildRow:first-child .guildCount__what",
302
+ "Your numbers are left out of this guild’s totals, from its next weekly count."
303
+ ]
304
+ ]
305
+ }
306
+ },
307
+ {
308
+ "name": "guild invite: Accept sends the card's visibility and the switch (the stub refuses an accept without the card's visibility) and the card says where your numbers went",
309
+ "continue": true,
310
+ "steps": [
311
+ [
312
+ "click",
313
+ "#guildInviteList .guildRow:first-child .btn"
314
+ ],
315
+ [
316
+ "wait",
317
+ 400
318
+ ]
319
+ ],
320
+ "expect": {
321
+ "hasClass": [
322
+ [
323
+ "#guildInviteList .guildRow:first-child .projMsg",
324
+ "ok"
325
+ ],
326
+ [
327
+ "#guildInviteList .guildRow:first-child .btn",
328
+ "ghost"
329
+ ]
330
+ ],
331
+ "text": [
332
+ [
333
+ "#guildInviteList .guildRow:first-child .btn",
334
+ "Joined"
335
+ ],
336
+ [
337
+ "#guildInviteList .guildRow:first-child .projMsg",
338
+ "You’ve joined Open Hands, and your numbers are left out of its totals."
339
+ ]
340
+ ]
341
+ }
342
+ },
343
+ {
344
+ "name": "guild invite: Decline drops the card, silently",
345
+ "continue": true,
346
+ "steps": [
347
+ [
348
+ "click",
349
+ "#guildInviteList .guildRow:nth-child(2) .btn.ghost"
350
+ ],
351
+ [
352
+ "wait",
353
+ 400
354
+ ]
355
+ ],
356
+ "expect": {
357
+ "count": [
358
+ [
359
+ "#guildInviteList .guildRow",
360
+ 1
361
+ ]
362
+ ]
363
+ }
364
+ },
365
+ {
366
+ "name": "join request (task 1004583): the owner of Night Shift accepts one and declines the other, from the hub",
367
+ "continue": true,
368
+ "steps": [
369
+ [
370
+ "click",
371
+ "#guildRequestList .guildRow:first-child .btn"
372
+ ],
373
+ [
374
+ "wait",
375
+ 400
376
+ ],
377
+ [
378
+ "click",
379
+ "#guildRequestList .guildRow:nth-child(2) .btn.ghost"
380
+ ],
381
+ [
382
+ "wait",
383
+ 400
384
+ ]
385
+ ],
386
+ "expect": {
387
+ "count": [
388
+ [
389
+ "#guildRequestList .guildRow",
390
+ 1
391
+ ]
392
+ ],
393
+ "hasClass": [
394
+ [
395
+ "#guildRequestList .guildRow:first-child .projMsg",
396
+ "ok"
397
+ ]
398
+ ],
399
+ "text": [
400
+ [
401
+ "#guildRequestList .guildRow:first-child .btn",
402
+ "Accepted"
403
+ ],
404
+ [
405
+ "#guildRequestList .guildRow:first-child .projMsg",
406
+ "Tomás Ek is in Night Shift now."
407
+ ]
408
+ ]
409
+ }
410
+ },
411
+ {
412
+ "name": "guild cards at 320: the switch stacks and nothing scrolls sideways",
413
+ "auth": true,
414
+ "width": 320,
415
+ "url": "/invitations",
416
+ "steps": [
417
+ [
418
+ "wait",
419
+ 900
420
+ ]
421
+ ],
422
+ "expect": {
423
+ "noOverflow": true,
424
+ "visible": [
425
+ "#guildInviteList .guildRow:first-child .guildCount"
426
+ ]
427
+ }
428
+ }
429
+ ]
430
+ }