pi-roundtable-web 0.26.0 → 0.26.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 (226) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/README.md +32 -12
  3. package/dist/chunk-account-nhpd9j90.js +1 -0
  4. package/dist/chunk-action-menu-ec9jqtxq.js +1 -0
  5. package/dist/chunk-agent-d1xfrawq.js +1 -0
  6. package/dist/chunk-arranged-rooms-bga8yk2v.js +1 -0
  7. package/dist/chunk-character-creator-k67f77w5.js +1 -0
  8. package/dist/chunk-codeeditor-jm2sm333.js +2 -0
  9. package/dist/chunk-confirm-wc5xraev.js +1 -0
  10. package/dist/chunk-connectors-mhnw6d79.js +1 -0
  11. package/dist/chunk-conversations-yjyq4g1y.js +1 -0
  12. package/dist/{chunk-drag-v41gx2mc.js → chunk-drag-nyq52ck7.js} +1 -1
  13. package/dist/chunk-entry-red1597w.js +1 -0
  14. package/dist/chunk-folder-list-x56y26yq.js +1 -0
  15. package/dist/chunk-folds-3p7s2nvx.js +1 -0
  16. package/dist/{chunk-gate-8k61stsc.js → chunk-gate-h41bv4y9.js} +1 -1
  17. package/dist/chunk-group-scene-7eb6jyev.js +1 -0
  18. package/dist/chunk-group-table-rca48kt0.js +1 -0
  19. package/dist/chunk-host-icons-x318gjqp.js +1 -0
  20. package/dist/chunk-host-picture-xswcakgy.js +1 -0
  21. package/dist/chunk-host-state-bpahvk54.js +1 -0
  22. package/dist/chunk-host-ui-tsbwwk38.js +1 -0
  23. package/dist/{chunk-index-hby0ap91.js → chunk-index-029209sy.js} +2 -2
  24. package/dist/chunk-index-066vzexw.js +2 -0
  25. package/dist/chunk-index-0h4h76kw.js +2 -0
  26. package/dist/chunk-index-0n6ja7my.js +1 -0
  27. package/dist/chunk-index-0q15ysrb.js +1 -0
  28. package/dist/chunk-index-0xj30mzw.js +13 -0
  29. package/dist/{chunk-index-rhtvcbsq.js → chunk-index-1f0j335v.js} +2 -2
  30. package/dist/chunk-index-2f5nfekb.js +8 -0
  31. package/dist/chunk-index-31ays46f.js +2 -0
  32. package/dist/chunk-index-43k1rjmx.js +2 -0
  33. package/dist/chunk-index-4gk88a0x.js +4 -0
  34. package/dist/chunk-index-4jf4jvfd.css +1 -0
  35. package/dist/chunk-index-4mf29sbx.js +2 -0
  36. package/dist/chunk-index-51n20yhb.js +2 -0
  37. package/dist/{chunk-index-014rjv9k.js → chunk-index-6tpr6r6d.js} +2 -2
  38. package/dist/{chunk-index-e5sd30xy.js → chunk-index-7bbqtdce.js} +2 -2
  39. package/dist/chunk-index-84v7j6vh.js +50 -0
  40. package/dist/chunk-index-8f9jer8r.js +2 -0
  41. package/dist/chunk-index-91z3g774.js +1 -0
  42. package/dist/{chunk-index-dhpt8qr9.js → chunk-index-934zgd18.js} +2 -2
  43. package/dist/{chunk-index-awx6nnta.js → chunk-index-9nents16.js} +2 -2
  44. package/dist/chunk-index-9w0sar6s.js +2 -0
  45. package/dist/chunk-index-a768zmp6.js +2 -0
  46. package/dist/{chunk-index-nqfkwkfp.js → chunk-index-b7jjca66.js} +2 -2
  47. package/dist/chunk-index-c5x70d9g.js +2 -0
  48. package/dist/chunk-index-cmxs5y22.js +42 -0
  49. package/dist/chunk-index-cwc1vvpw.js +2 -0
  50. package/dist/chunk-index-d85x96q0.js +2 -0
  51. package/dist/chunk-index-datrrs6b.js +2 -0
  52. package/dist/chunk-index-dep2e3f3.js +2 -0
  53. package/dist/chunk-index-dtste2ed.js +2 -0
  54. package/dist/chunk-index-ewj52be9.js +2 -0
  55. package/dist/{chunk-index-pcfhpm8v.js → chunk-index-f3b5nch2.js} +142 -18
  56. package/dist/{chunk-index-km40bhsz.js → chunk-index-frwa2fmc.js} +2 -2
  57. package/dist/chunk-index-grkczq2c.js +2 -0
  58. package/dist/chunk-index-gzvkpe3e.js +2 -0
  59. package/dist/chunk-index-kfv996qe.js +920 -0
  60. package/dist/chunk-index-kw85ajap.js +138 -0
  61. package/dist/chunk-index-satam151.js +2 -0
  62. package/dist/{chunk-index-y8rnq8zf.js → chunk-index-smw1n2pt.js} +5 -5
  63. package/dist/chunk-index-th43f690.js +2 -0
  64. package/dist/chunk-index-ths2hxpe.js +1 -0
  65. package/dist/{chunk-index-wnjp6wv0.js → chunk-index-tmx30r1w.js} +2 -2
  66. package/dist/{chunk-index-hssjbr1k.js → chunk-index-y00wke93.js} +2 -2
  67. package/dist/chunk-index-y4sqmenv.js +2 -0
  68. package/dist/{chunk-index-66nskrdj.js → chunk-index-yrhbhmxz.js} +2 -2
  69. package/dist/chunk-index-zd76pr2k.js +2 -0
  70. package/dist/chunk-lang-css-fa7c0zfj.js +1 -0
  71. package/dist/{chunk-lang-dockerfile-hrav55t7.js → chunk-lang-dockerfile-46rk929v.js} +1 -1
  72. package/dist/{chunk-lang-go-x9ahv6e5.js → chunk-lang-go-qb0qdpg7.js} +3 -3
  73. package/dist/chunk-lang-html-47mf2y0v.js +1 -0
  74. package/dist/chunk-lang-javascript-d32qrvxz.js +1 -0
  75. package/dist/{chunk-lang-json-hsemyd0r.js → chunk-lang-json-1q4fp694.js} +1 -1
  76. package/dist/{chunk-lang-markdown-zkwb4c9n.js → chunk-lang-markdown-5w7t28wa.js} +4 -4
  77. package/dist/{chunk-lang-python-tewx7006.js → chunk-lang-python-3dq0p4rf.js} +2 -2
  78. package/dist/{chunk-lang-rust-0ydx84s1.js → chunk-lang-rust-70pa0agr.js} +1 -1
  79. package/dist/{chunk-lang-shell-gq1tmdz4.js → chunk-lang-shell-4pxt7hf4.js} +1 -1
  80. package/dist/{chunk-lang-sql-xt1qyycg.js → chunk-lang-sql-kgcbh2a9.js} +2 -2
  81. package/dist/{chunk-lang-toml-0hamc5fc.js → chunk-lang-toml-99t95pab.js} +1 -1
  82. package/dist/chunk-lang-typescript-4k1d8z7s.js +1 -0
  83. package/dist/{chunk-lang-xml-wf6h5pt2.js → chunk-lang-xml-mnbv9yfa.js} +1 -1
  84. package/dist/{chunk-lang-yaml-7vk521h1.js → chunk-lang-yaml-2by9g1dy.js} +1 -1
  85. package/dist/chunk-layout-actions-cgghzj1w.js +1 -0
  86. package/dist/chunk-menu-items-24cfwawa.js +2 -0
  87. package/dist/chunk-mode-toggle-v4baz3r1.js +1 -0
  88. package/dist/chunk-note-row-72n6cqyk.js +75 -0
  89. package/dist/chunk-notes-83s3tsey.js +1 -0
  90. package/dist/chunk-notice-bell-a4ty5h1p.js +1 -0
  91. package/dist/chunk-notices-evny44be.js +1 -0
  92. package/dist/chunk-onboarding-q1avjbrx.js +1 -0
  93. package/dist/chunk-overview-42h45ehd.js +1 -0
  94. package/dist/chunk-palette-e44qepmh.js +1 -0
  95. package/dist/chunk-placement-items-v466t0sv.js +1 -0
  96. package/dist/chunk-profile-bqcgkgk4.js +1 -0
  97. package/dist/chunk-prompt-history-hgbtcn4b.js +1 -0
  98. package/dist/chunk-prompts-czs8y6r1.js +1 -0
  99. package/dist/chunk-room-confirms-h8cdj3ng.js +1 -0
  100. package/dist/chunk-room-menu-7s0feajw.js +1 -0
  101. package/dist/chunk-rooms-menu-button-gawqvpsr.js +1 -0
  102. package/dist/{chunk-schedules-2ft6xxyw.js → chunk-schedules-zba7krac.js} +1 -1
  103. package/dist/{chunk-seat-menu-d3npdtx1.js → chunk-seat-menu-ca5p4e9q.js} +1 -1
  104. package/dist/chunk-sheet-hosts-ssbz6hf2.js +1 -0
  105. package/dist/chunk-skill-editor-n0y9pd90.js +8 -0
  106. package/dist/chunk-skills-ea4vb2s4.js +1 -0
  107. package/dist/chunk-switcher-list-pj5csqr9.js +1 -0
  108. package/dist/chunk-tab-dot-4tkpxqeh.js +1 -0
  109. package/dist/chunk-table-j8nmtdnn.js +1 -0
  110. package/dist/chunk-table-seats-qeytqe0m.js +1 -0
  111. package/dist/chunk-table2d-18y029k9.js +1 -0
  112. package/dist/chunk-table3d-q2s31ae0.js +4220 -0
  113. package/dist/chunk-thread-actions-w3eadnh7.js +1 -0
  114. package/dist/chunk-thread-cards-fbpky3c9.js +1 -0
  115. package/dist/chunk-thread-list-pghe84be.js +1 -0
  116. package/dist/chunk-transcript-eqzxgqys.js +1 -0
  117. package/dist/chunk-where-ygyr4jdj.js +1 -0
  118. package/dist/chunk-workspace-h0p32ygy.js +578 -0
  119. package/dist/chunk-zh-tw-k6xx1hp2.js +1 -0
  120. package/dist/index.html +1 -2
  121. package/dist/sw.js +1 -1
  122. package/package.json +2 -2
  123. package/src/api-types.ts +63 -3
  124. package/src/app/api-http.ts +1 -1
  125. package/src/app/app.ts +5 -0
  126. package/src/app/room-log.ts +16 -4
  127. package/src/app/rooms.ts +39 -0
  128. package/src/app/routes.ts +96 -2
  129. package/src/app/socket.ts +45 -9
  130. package/src/app/surface-threads.ts +1 -1
  131. package/src/app/surface.ts +2 -1
  132. package/src/app/threads.ts +51 -2
  133. package/src/auth/authenticator.ts +18 -5
  134. package/src/auth/login-page.ts +4 -2
  135. package/src/auth/oidc-pages.ts +2 -0
  136. package/src/auth/oidc.ts +39 -1
  137. package/src/auth/sessions.ts +10 -3
  138. package/src/authz.ts +2 -1
  139. package/src/console-server.ts +32 -6
  140. package/src/host/cards.ts +18 -5
  141. package/src/host/context.ts +72 -25
  142. package/src/host/forms.ts +3 -0
  143. package/src/host/frames.ts +8 -1
  144. package/src/host/host-app.ts +6 -4
  145. package/src/host/host-routes.ts +36 -3
  146. package/src/host/room-views.ts +6 -6
  147. package/src/host/rooms-service.ts +16 -1
  148. package/src/host/views.ts +3 -0
  149. package/src/i18n/zh-tw.ts +103 -79
  150. package/src/index.ts +15 -1
  151. package/src/options.ts +37 -1
  152. package/src/page-presentation.ts +47 -2
  153. package/src/pwa.ts +32 -4
  154. package/src/web-app.ts +47 -3
  155. package/src/web-plugin.ts +32 -10
  156. package/dist/chunk-account-hw49gd0d.js +0 -1
  157. package/dist/chunk-action-menu-rm5cyqkj.js +0 -1
  158. package/dist/chunk-agent-b017vswv.js +0 -1
  159. package/dist/chunk-arranged-rooms-q5v3dm1r.js +0 -1
  160. package/dist/chunk-character-creator-5dxcvd16.js +0 -1
  161. package/dist/chunk-codeeditor-pyt09fwg.js +0 -2
  162. package/dist/chunk-confirm-521yqmta.js +0 -1
  163. package/dist/chunk-connectors-hrm06nx8.js +0 -1
  164. package/dist/chunk-conversations-e26rrf01.js +0 -1
  165. package/dist/chunk-entry-jxxb3ath.js +0 -1
  166. package/dist/chunk-folder-list-b97xk12b.js +0 -1
  167. package/dist/chunk-folds-b8q7eags.js +0 -1
  168. package/dist/chunk-group-scene-dx6wt19m.js +0 -1
  169. package/dist/chunk-group-table-e4jr8r3a.js +0 -1
  170. package/dist/chunk-host-state-g7e7c0k5.js +0 -1
  171. package/dist/chunk-host-ui-x7k6n07v.js +0 -939
  172. package/dist/chunk-index-2d0kg096.js +0 -2
  173. package/dist/chunk-index-2qd81wbx.js +0 -2
  174. package/dist/chunk-index-2stynxw6.css +0 -1
  175. package/dist/chunk-index-459drsft.js +0 -2
  176. package/dist/chunk-index-4mfj596y.js +0 -2
  177. package/dist/chunk-index-bbsytycb.js +0 -2
  178. package/dist/chunk-index-c07p8k0x.js +0 -4
  179. package/dist/chunk-index-cq1e9xdz.js +0 -2
  180. package/dist/chunk-index-d1prgfbp.js +0 -2
  181. package/dist/chunk-index-g351921r.js +0 -1
  182. package/dist/chunk-index-k2qq1gdj.js +0 -2
  183. package/dist/chunk-index-ke9ynm0n.js +0 -2
  184. package/dist/chunk-index-kpscvg85.js +0 -2
  185. package/dist/chunk-index-m0d100mg.js +0 -2
  186. package/dist/chunk-index-mb72snk9.js +0 -2
  187. package/dist/chunk-index-mjqqver5.js +0 -4
  188. package/dist/chunk-index-nwqk447w.js +0 -2
  189. package/dist/chunk-index-q8h8xzbm.js +0 -2
  190. package/dist/chunk-index-r5vszgfs.js +0 -2
  191. package/dist/chunk-index-rjv7vrwd.js +0 -13
  192. package/dist/chunk-index-v23m38p6.js +0 -50
  193. package/dist/chunk-index-va0g7d88.js +0 -1
  194. package/dist/chunk-index-xgkd15n3.js +0 -2
  195. package/dist/chunk-index-z3k18atc.js +0 -2
  196. package/dist/chunk-lang-css-6bepqpnx.js +0 -1
  197. package/dist/chunk-lang-html-8jc72zt4.js +0 -1
  198. package/dist/chunk-lang-javascript-2p2qtbnf.js +0 -1
  199. package/dist/chunk-lang-typescript-82xf7z2e.js +0 -1
  200. package/dist/chunk-layout-actions-zh7bezk7.js +0 -1
  201. package/dist/chunk-menu-items-1n9qargb.js +0 -2
  202. package/dist/chunk-notes-t15bh04m.js +0 -1
  203. package/dist/chunk-notice-bell-w3y0h0sr.js +0 -1
  204. package/dist/chunk-notices-fa3g7qze.js +0 -1
  205. package/dist/chunk-onboarding-34v3nr17.js +0 -1
  206. package/dist/chunk-overview-km5vq375.js +0 -1
  207. package/dist/chunk-palette-a8txdgd0.js +0 -1
  208. package/dist/chunk-placement-items-wgaxsbvs.js +0 -1
  209. package/dist/chunk-profile-ypxdbsk1.js +0 -1
  210. package/dist/chunk-prompt-history-wm9dsy6s.js +0 -1
  211. package/dist/chunk-prompts-7mhhq7zs.js +0 -1
  212. package/dist/chunk-room-confirms-t11a1gsw.js +0 -1
  213. package/dist/chunk-room-menu-2tm2xtfx.js +0 -1
  214. package/dist/chunk-rooms-menu-button-wxnsxjwc.js +0 -1
  215. package/dist/chunk-sheet-hosts-vngvp7wv.js +0 -1
  216. package/dist/chunk-skill-editor-65n2hsq4.js +0 -8
  217. package/dist/chunk-skills-shkdwes8.js +0 -1
  218. package/dist/chunk-switcher-list-g6hhmr1t.js +0 -1
  219. package/dist/chunk-table-1b6bsq2y.js +0 -1
  220. package/dist/chunk-table-seats-vy1qhdks.js +0 -1
  221. package/dist/chunk-table2d-n26b7gd0.js +0 -1
  222. package/dist/chunk-table3d-8aysyf56.js +0 -4220
  223. package/dist/chunk-transcript-355faceq.js +0 -1
  224. package/dist/chunk-where-j5qdt8a4.js +0 -1
  225. package/dist/chunk-workspace-vrbs6zx1.js +0 -1
  226. package/dist/chunk-zh-tw-zeg600bk.js +0 -1
@@ -0,0 +1,920 @@
1
+ import{r,e}from"./chunk-index-84v7j6vh.js";var d=!1;function nt(){if(d||typeof document>"u")return;if(d=!0,typeof CSSStyleSheet<"u"&&"adoptedStyleSheets"in Document.prototype)try{let t=new CSSStyleSheet;t.replaceSync(`
2
+ .hpic {
3
+ flex: none;
4
+ display: inline-grid;
5
+ place-items: center;
6
+ overflow: hidden;
7
+ border-radius: var(--radius-full);
8
+ background: var(--surface-3);
9
+ color: #fff;
10
+ font-weight: var(--weight-bold);
11
+ line-height: 1;
12
+ user-select: none;
13
+ }
14
+
15
+ .hpic > img {
16
+ width: 100%;
17
+ height: 100%;
18
+ object-fit: cover;
19
+ }
20
+
21
+ .unread-mark {
22
+ display: inline-flex;
23
+ align-items: center;
24
+ justify-content: center;
25
+ min-width: 1.35rem;
26
+ height: 1.35rem;
27
+ padding: 0 0.4rem;
28
+ border-radius: var(--radius-full);
29
+ background: var(--accent);
30
+ color: var(--on-accent);
31
+ font-size: var(--text-xs);
32
+ font-weight: var(--weight-bold);
33
+ font-variant-numeric: tabular-nums;
34
+ }
35
+
36
+ .room-row-top .unread-mark {
37
+ margin-left: auto;
38
+ }
39
+
40
+ .room-row-top .unread-mark + .room-row-time {
41
+ margin-left: 0;
42
+ }
43
+
44
+ .switcher-name .unread-mark {
45
+ margin-left: auto;
46
+ }
47
+
48
+ .plain {
49
+ white-space: pre-wrap;
50
+ overflow-wrap: anywhere;
51
+ }
52
+
53
+ .label-chip {
54
+ padding: 0 var(--space-2);
55
+ border-radius: var(--radius-full);
56
+ background: var(--surface-3);
57
+ color: var(--muted);
58
+ font-size: var(--text-xs);
59
+ font-weight: var(--weight-medium);
60
+ }
61
+
62
+ .message[data-author="assistant"] .bubble {
63
+ border-color: transparent;
64
+ background: var(--accent-soft);
65
+ }
66
+
67
+ .message[data-author="member"]:not([data-mine]) .bubble {
68
+ background: var(--surface-2);
69
+ }
70
+
71
+ .message[data-highlight] .bubble {
72
+ animation: host-highlight 2.4s var(--ease-out) both;
73
+ }
74
+
75
+ @keyframes host-highlight {
76
+ 0%, 60% {
77
+ box-shadow: 0 0 0 3px var(--accent);
78
+ }
79
+ }
80
+
81
+ .message-edited,
82
+ .message-expired {
83
+ margin: var(--space-1) 0 0;
84
+ color: var(--muted);
85
+ font-size: var(--text-xs);
86
+ }
87
+
88
+ .host-notice {
89
+ display: flex;
90
+ align-items: flex-start;
91
+ gap: var(--space-2);
92
+ margin: var(--space-3) auto;
93
+ max-width: min(36rem, 92%);
94
+ padding: var(--space-2) var(--space-3);
95
+ border: 1px dashed var(--border-strong);
96
+ border-radius: var(--radius-lg);
97
+ background: var(--surface-2);
98
+ color: var(--muted);
99
+ font-size: var(--text-sm);
100
+ }
101
+
102
+ .host-notice[data-highlight] {
103
+ animation: host-highlight 2.4s var(--ease-out) both;
104
+ }
105
+
106
+ .host-notice > svg {
107
+ flex: none;
108
+ margin-top: 0.2rem;
109
+ }
110
+
111
+ .host-notice time {
112
+ margin-left: auto;
113
+ padding-left: var(--space-2);
114
+ font-size: var(--text-xs);
115
+ white-space: nowrap;
116
+ }
117
+
118
+ .new-divider {
119
+ display: flex;
120
+ align-items: center;
121
+ gap: var(--space-3);
122
+ margin: var(--space-3) 0 var(--space-1);
123
+ color: var(--accent);
124
+ font-size: var(--text-xs);
125
+ font-weight: var(--weight-bold);
126
+ }
127
+
128
+ .new-divider::before,
129
+ .new-divider::after {
130
+ content: "";
131
+ flex: 1;
132
+ height: 1px;
133
+ background: var(--accent);
134
+ opacity: 0.55;
135
+ }
136
+
137
+ .seen {
138
+ display: flex;
139
+ justify-content: flex-end;
140
+ flex-wrap: wrap;
141
+ gap: var(--space-2);
142
+ padding: 0 var(--space-1);
143
+ color: var(--muted);
144
+ font-size: var(--text-xs);
145
+ }
146
+
147
+ .seen-toggle {
148
+ display: inline-flex;
149
+ align-items: center;
150
+ gap: var(--space-1);
151
+ min-height: 0;
152
+ padding: 0 var(--space-1);
153
+ border: 0;
154
+ background: none;
155
+ color: inherit;
156
+ font: inherit;
157
+ cursor: pointer;
158
+ }
159
+
160
+ .seen-toggle .hpic + .hpic {
161
+ margin-left: -0.35rem;
162
+ box-shadow: 0 0 0 1.5px var(--bg);
163
+ }
164
+
165
+ .seen-names {
166
+ flex-basis: 100%;
167
+ text-align: right;
168
+ }
169
+
170
+ .host-head-fields {
171
+ display: flex;
172
+ flex-wrap: wrap;
173
+ gap: 0 var(--space-4);
174
+ margin: 0;
175
+ padding: var(--space-1) var(--space-4);
176
+ border-bottom: 1px solid var(--border);
177
+ background: var(--surface);
178
+ font-size: var(--text-xs);
179
+ }
180
+
181
+ .host-head-fields > div {
182
+ display: flex;
183
+ gap: var(--space-2);
184
+ min-width: 0;
185
+ }
186
+
187
+ .host-head-fields dt {
188
+ color: var(--muted);
189
+ }
190
+
191
+ .host-head-fields dd {
192
+ margin: 0;
193
+ min-width: 0;
194
+ overflow-wrap: anywhere;
195
+ }
196
+
197
+ .host-banner {
198
+ margin: 0;
199
+ padding: var(--space-1) var(--space-4);
200
+ border-bottom: 1px solid var(--border);
201
+ font-size: var(--text-sm);
202
+ }
203
+
204
+ .host-banner[data-tone="warn"] {
205
+ background: var(--warn-soft);
206
+ }
207
+
208
+ .host-banner[data-tone="risk"] {
209
+ background: var(--danger-soft);
210
+ color: var(--danger);
211
+ }
212
+
213
+ .host-actions {
214
+ display: flex;
215
+ flex-wrap: wrap;
216
+ gap: var(--space-2);
217
+ }
218
+
219
+ .host-actions.bar {
220
+ flex-wrap: nowrap;
221
+ padding: var(--space-2) var(--space-4);
222
+ border-bottom: 1px solid var(--border);
223
+ overflow-x: auto;
224
+ }
225
+
226
+ .host-actions.bar > button {
227
+ flex: none;
228
+ min-height: 2.25rem;
229
+ padding: 0 var(--space-3);
230
+ font-size: var(--text-sm);
231
+ }
232
+
233
+ .host-cards {
234
+ display: flex;
235
+ flex-direction: column;
236
+ border-top: 1px solid var(--border);
237
+ background: var(--surface-2);
238
+ }
239
+
240
+ .host-cards-toggle {
241
+ display: flex;
242
+ align-items: center;
243
+ gap: var(--space-2);
244
+ min-height: 2.5rem;
245
+ padding: 0 var(--space-4);
246
+ border: 0;
247
+ border-radius: 0;
248
+ background: none;
249
+ color: var(--text);
250
+ font: inherit;
251
+ font-size: var(--text-sm);
252
+ text-align: left;
253
+ overflow: hidden;
254
+ }
255
+
256
+ .host-cards-toggle > span {
257
+ min-width: 0;
258
+ overflow: hidden;
259
+ text-overflow: ellipsis;
260
+ white-space: nowrap;
261
+ }
262
+
263
+ .host-cards-toggle > svg {
264
+ flex: none;
265
+ transition: transform var(--dur-fast) var(--ease-out);
266
+ }
267
+
268
+ .host-cards[data-open] .host-cards-toggle > svg {
269
+ transform: rotate(90deg);
270
+ }
271
+
272
+ .host-cards-body {
273
+ display: flex;
274
+ flex-direction: column;
275
+ gap: var(--space-2);
276
+ max-height: min(16rem, 34vh);
277
+ padding: 0 var(--space-4) var(--space-3);
278
+ overflow-y: auto;
279
+ }
280
+
281
+ .host-card {
282
+ display: flex;
283
+ flex-direction: column;
284
+ gap: var(--space-2);
285
+ padding: var(--space-3);
286
+ border: 1px solid var(--border);
287
+ border-left-width: 4px;
288
+ border-radius: var(--radius-lg);
289
+ background: var(--surface);
290
+ }
291
+
292
+ .host-card[data-tone="ok"] {
293
+ border-left-color: var(--success);
294
+ }
295
+
296
+ .host-card[data-tone="warn"] {
297
+ border-left-color: var(--warn);
298
+ }
299
+
300
+ .host-card[data-tone="risk"] {
301
+ border-left-color: var(--danger);
302
+ }
303
+
304
+ .host-card[data-tone="note"] {
305
+ border-left-color: var(--accent);
306
+ }
307
+
308
+ .host-card[data-state="done"],
309
+ .host-card[data-state="superseded"],
310
+ .host-card[data-state="expired"] {
311
+ opacity: 0.7;
312
+ }
313
+
314
+ .host-card header {
315
+ display: flex;
316
+ align-items: center;
317
+ gap: var(--space-2);
318
+ }
319
+
320
+ .host-card h3 {
321
+ flex: 1;
322
+ margin: 0;
323
+ font-size: var(--text-md);
324
+ }
325
+
326
+ .host-card-links {
327
+ display: flex;
328
+ flex-wrap: wrap;
329
+ gap: var(--space-1) var(--space-4);
330
+ font-size: var(--text-sm);
331
+ }
332
+
333
+ .host-cards-older {
334
+ font-size: var(--text-sm);
335
+ color: var(--muted);
336
+ }
337
+
338
+ .host-cards-older > summary {
339
+ cursor: pointer;
340
+ }
341
+
342
+ .section-icon {
343
+ margin-right: var(--space-1);
344
+ vertical-align: -2px;
345
+ }
346
+
347
+ .host-form {
348
+ display: flex;
349
+ flex-direction: column;
350
+ gap: var(--space-3);
351
+ }
352
+
353
+ .host-field {
354
+ display: flex;
355
+ flex-direction: column;
356
+ gap: var(--space-1);
357
+ min-width: 0;
358
+ }
359
+
360
+ .host-field > label,
361
+ .host-field > legend {
362
+ font-size: var(--text-sm);
363
+ font-weight: var(--weight-medium);
364
+ }
365
+
366
+ .host-field .hint {
367
+ color: var(--muted);
368
+ font-size: var(--text-xs);
369
+ }
370
+
371
+ .host-field .field-error {
372
+ color: var(--danger);
373
+ font-size: var(--text-sm);
374
+ }
375
+
376
+ .host-field fieldset {
377
+ display: flex;
378
+ flex-direction: column;
379
+ gap: var(--space-1);
380
+ margin: 0;
381
+ padding: 0;
382
+ border: 0;
383
+ max-height: 14rem;
384
+ overflow-y: auto;
385
+ }
386
+
387
+ .host-field fieldset label {
388
+ display: flex;
389
+ align-items: center;
390
+ gap: var(--space-2);
391
+ min-height: var(--touch);
392
+ }
393
+
394
+ .host-field select[size] {
395
+ min-height: 9rem;
396
+ }
397
+
398
+ .host-list {
399
+ display: flex;
400
+ flex-direction: column;
401
+ gap: var(--space-2);
402
+ margin: 0;
403
+ padding: 0;
404
+ list-style: none;
405
+ }
406
+
407
+ .host-list > li {
408
+ display: flex;
409
+ align-items: center;
410
+ gap: var(--space-3);
411
+ padding: var(--space-3);
412
+ border: 1px solid var(--border);
413
+ border-radius: var(--radius-lg);
414
+ background: var(--surface);
415
+ }
416
+
417
+ .host-list-main {
418
+ display: flex;
419
+ flex: 1;
420
+ flex-direction: column;
421
+ min-width: 0;
422
+ }
423
+
424
+ .host-list-main > a,
425
+ .host-list-main > strong {
426
+ color: var(--text);
427
+ font-weight: var(--weight-medium);
428
+ text-decoration: none;
429
+ overflow-wrap: anywhere;
430
+ }
431
+
432
+ .host-list-main > span {
433
+ color: var(--muted);
434
+ font-size: var(--text-sm);
435
+ }
436
+
437
+ .attention-dot {
438
+ flex: none;
439
+ width: 0.6rem;
440
+ height: 0.6rem;
441
+ border-radius: var(--radius-full);
442
+ background: var(--danger);
443
+ }
444
+
445
+ .kind-filter {
446
+ width: 100%;
447
+ }
448
+
449
+ .kind-row-picture {
450
+ position: relative;
451
+ display: inline-flex;
452
+ }
453
+
454
+ .kind-row-picture .attention-dot {
455
+ position: absolute;
456
+ top: -1px;
457
+ right: -1px;
458
+ box-shadow: 0 0 0 2px var(--surface);
459
+ }
460
+ `),document.adoptedStyleSheets=[...document.adoptedStyleSheets,t];return}catch{}let a=document.createElement("style");a.textContent=`
461
+ .hpic {
462
+ flex: none;
463
+ display: inline-grid;
464
+ place-items: center;
465
+ overflow: hidden;
466
+ border-radius: var(--radius-full);
467
+ background: var(--surface-3);
468
+ color: #fff;
469
+ font-weight: var(--weight-bold);
470
+ line-height: 1;
471
+ user-select: none;
472
+ }
473
+
474
+ .hpic > img {
475
+ width: 100%;
476
+ height: 100%;
477
+ object-fit: cover;
478
+ }
479
+
480
+ .unread-mark {
481
+ display: inline-flex;
482
+ align-items: center;
483
+ justify-content: center;
484
+ min-width: 1.35rem;
485
+ height: 1.35rem;
486
+ padding: 0 0.4rem;
487
+ border-radius: var(--radius-full);
488
+ background: var(--accent);
489
+ color: var(--on-accent);
490
+ font-size: var(--text-xs);
491
+ font-weight: var(--weight-bold);
492
+ font-variant-numeric: tabular-nums;
493
+ }
494
+
495
+ .room-row-top .unread-mark {
496
+ margin-left: auto;
497
+ }
498
+
499
+ .room-row-top .unread-mark + .room-row-time {
500
+ margin-left: 0;
501
+ }
502
+
503
+ .switcher-name .unread-mark {
504
+ margin-left: auto;
505
+ }
506
+
507
+ .plain {
508
+ white-space: pre-wrap;
509
+ overflow-wrap: anywhere;
510
+ }
511
+
512
+ .label-chip {
513
+ padding: 0 var(--space-2);
514
+ border-radius: var(--radius-full);
515
+ background: var(--surface-3);
516
+ color: var(--muted);
517
+ font-size: var(--text-xs);
518
+ font-weight: var(--weight-medium);
519
+ }
520
+
521
+ .message[data-author="assistant"] .bubble {
522
+ border-color: transparent;
523
+ background: var(--accent-soft);
524
+ }
525
+
526
+ .message[data-author="member"]:not([data-mine]) .bubble {
527
+ background: var(--surface-2);
528
+ }
529
+
530
+ .message[data-highlight] .bubble {
531
+ animation: host-highlight 2.4s var(--ease-out) both;
532
+ }
533
+
534
+ @keyframes host-highlight {
535
+ 0%, 60% {
536
+ box-shadow: 0 0 0 3px var(--accent);
537
+ }
538
+ }
539
+
540
+ .message-edited,
541
+ .message-expired {
542
+ margin: var(--space-1) 0 0;
543
+ color: var(--muted);
544
+ font-size: var(--text-xs);
545
+ }
546
+
547
+ .host-notice {
548
+ display: flex;
549
+ align-items: flex-start;
550
+ gap: var(--space-2);
551
+ margin: var(--space-3) auto;
552
+ max-width: min(36rem, 92%);
553
+ padding: var(--space-2) var(--space-3);
554
+ border: 1px dashed var(--border-strong);
555
+ border-radius: var(--radius-lg);
556
+ background: var(--surface-2);
557
+ color: var(--muted);
558
+ font-size: var(--text-sm);
559
+ }
560
+
561
+ .host-notice[data-highlight] {
562
+ animation: host-highlight 2.4s var(--ease-out) both;
563
+ }
564
+
565
+ .host-notice > svg {
566
+ flex: none;
567
+ margin-top: 0.2rem;
568
+ }
569
+
570
+ .host-notice time {
571
+ margin-left: auto;
572
+ padding-left: var(--space-2);
573
+ font-size: var(--text-xs);
574
+ white-space: nowrap;
575
+ }
576
+
577
+ .new-divider {
578
+ display: flex;
579
+ align-items: center;
580
+ gap: var(--space-3);
581
+ margin: var(--space-3) 0 var(--space-1);
582
+ color: var(--accent);
583
+ font-size: var(--text-xs);
584
+ font-weight: var(--weight-bold);
585
+ }
586
+
587
+ .new-divider::before,
588
+ .new-divider::after {
589
+ content: "";
590
+ flex: 1;
591
+ height: 1px;
592
+ background: var(--accent);
593
+ opacity: 0.55;
594
+ }
595
+
596
+ .seen {
597
+ display: flex;
598
+ justify-content: flex-end;
599
+ flex-wrap: wrap;
600
+ gap: var(--space-2);
601
+ padding: 0 var(--space-1);
602
+ color: var(--muted);
603
+ font-size: var(--text-xs);
604
+ }
605
+
606
+ .seen-toggle {
607
+ display: inline-flex;
608
+ align-items: center;
609
+ gap: var(--space-1);
610
+ min-height: 0;
611
+ padding: 0 var(--space-1);
612
+ border: 0;
613
+ background: none;
614
+ color: inherit;
615
+ font: inherit;
616
+ cursor: pointer;
617
+ }
618
+
619
+ .seen-toggle .hpic + .hpic {
620
+ margin-left: -0.35rem;
621
+ box-shadow: 0 0 0 1.5px var(--bg);
622
+ }
623
+
624
+ .seen-names {
625
+ flex-basis: 100%;
626
+ text-align: right;
627
+ }
628
+
629
+ .host-head-fields {
630
+ display: flex;
631
+ flex-wrap: wrap;
632
+ gap: 0 var(--space-4);
633
+ margin: 0;
634
+ padding: var(--space-1) var(--space-4);
635
+ border-bottom: 1px solid var(--border);
636
+ background: var(--surface);
637
+ font-size: var(--text-xs);
638
+ }
639
+
640
+ .host-head-fields > div {
641
+ display: flex;
642
+ gap: var(--space-2);
643
+ min-width: 0;
644
+ }
645
+
646
+ .host-head-fields dt {
647
+ color: var(--muted);
648
+ }
649
+
650
+ .host-head-fields dd {
651
+ margin: 0;
652
+ min-width: 0;
653
+ overflow-wrap: anywhere;
654
+ }
655
+
656
+ .host-banner {
657
+ margin: 0;
658
+ padding: var(--space-1) var(--space-4);
659
+ border-bottom: 1px solid var(--border);
660
+ font-size: var(--text-sm);
661
+ }
662
+
663
+ .host-banner[data-tone="warn"] {
664
+ background: var(--warn-soft);
665
+ }
666
+
667
+ .host-banner[data-tone="risk"] {
668
+ background: var(--danger-soft);
669
+ color: var(--danger);
670
+ }
671
+
672
+ .host-actions {
673
+ display: flex;
674
+ flex-wrap: wrap;
675
+ gap: var(--space-2);
676
+ }
677
+
678
+ .host-actions.bar {
679
+ flex-wrap: nowrap;
680
+ padding: var(--space-2) var(--space-4);
681
+ border-bottom: 1px solid var(--border);
682
+ overflow-x: auto;
683
+ }
684
+
685
+ .host-actions.bar > button {
686
+ flex: none;
687
+ min-height: 2.25rem;
688
+ padding: 0 var(--space-3);
689
+ font-size: var(--text-sm);
690
+ }
691
+
692
+ .host-cards {
693
+ display: flex;
694
+ flex-direction: column;
695
+ border-top: 1px solid var(--border);
696
+ background: var(--surface-2);
697
+ }
698
+
699
+ .host-cards-toggle {
700
+ display: flex;
701
+ align-items: center;
702
+ gap: var(--space-2);
703
+ min-height: 2.5rem;
704
+ padding: 0 var(--space-4);
705
+ border: 0;
706
+ border-radius: 0;
707
+ background: none;
708
+ color: var(--text);
709
+ font: inherit;
710
+ font-size: var(--text-sm);
711
+ text-align: left;
712
+ overflow: hidden;
713
+ }
714
+
715
+ .host-cards-toggle > span {
716
+ min-width: 0;
717
+ overflow: hidden;
718
+ text-overflow: ellipsis;
719
+ white-space: nowrap;
720
+ }
721
+
722
+ .host-cards-toggle > svg {
723
+ flex: none;
724
+ transition: transform var(--dur-fast) var(--ease-out);
725
+ }
726
+
727
+ .host-cards[data-open] .host-cards-toggle > svg {
728
+ transform: rotate(90deg);
729
+ }
730
+
731
+ .host-cards-body {
732
+ display: flex;
733
+ flex-direction: column;
734
+ gap: var(--space-2);
735
+ max-height: min(16rem, 34vh);
736
+ padding: 0 var(--space-4) var(--space-3);
737
+ overflow-y: auto;
738
+ }
739
+
740
+ .host-card {
741
+ display: flex;
742
+ flex-direction: column;
743
+ gap: var(--space-2);
744
+ padding: var(--space-3);
745
+ border: 1px solid var(--border);
746
+ border-left-width: 4px;
747
+ border-radius: var(--radius-lg);
748
+ background: var(--surface);
749
+ }
750
+
751
+ .host-card[data-tone="ok"] {
752
+ border-left-color: var(--success);
753
+ }
754
+
755
+ .host-card[data-tone="warn"] {
756
+ border-left-color: var(--warn);
757
+ }
758
+
759
+ .host-card[data-tone="risk"] {
760
+ border-left-color: var(--danger);
761
+ }
762
+
763
+ .host-card[data-tone="note"] {
764
+ border-left-color: var(--accent);
765
+ }
766
+
767
+ .host-card[data-state="done"],
768
+ .host-card[data-state="superseded"],
769
+ .host-card[data-state="expired"] {
770
+ opacity: 0.7;
771
+ }
772
+
773
+ .host-card header {
774
+ display: flex;
775
+ align-items: center;
776
+ gap: var(--space-2);
777
+ }
778
+
779
+ .host-card h3 {
780
+ flex: 1;
781
+ margin: 0;
782
+ font-size: var(--text-md);
783
+ }
784
+
785
+ .host-card-links {
786
+ display: flex;
787
+ flex-wrap: wrap;
788
+ gap: var(--space-1) var(--space-4);
789
+ font-size: var(--text-sm);
790
+ }
791
+
792
+ .host-cards-older {
793
+ font-size: var(--text-sm);
794
+ color: var(--muted);
795
+ }
796
+
797
+ .host-cards-older > summary {
798
+ cursor: pointer;
799
+ }
800
+
801
+ .section-icon {
802
+ margin-right: var(--space-1);
803
+ vertical-align: -2px;
804
+ }
805
+
806
+ .host-form {
807
+ display: flex;
808
+ flex-direction: column;
809
+ gap: var(--space-3);
810
+ }
811
+
812
+ .host-field {
813
+ display: flex;
814
+ flex-direction: column;
815
+ gap: var(--space-1);
816
+ min-width: 0;
817
+ }
818
+
819
+ .host-field > label,
820
+ .host-field > legend {
821
+ font-size: var(--text-sm);
822
+ font-weight: var(--weight-medium);
823
+ }
824
+
825
+ .host-field .hint {
826
+ color: var(--muted);
827
+ font-size: var(--text-xs);
828
+ }
829
+
830
+ .host-field .field-error {
831
+ color: var(--danger);
832
+ font-size: var(--text-sm);
833
+ }
834
+
835
+ .host-field fieldset {
836
+ display: flex;
837
+ flex-direction: column;
838
+ gap: var(--space-1);
839
+ margin: 0;
840
+ padding: 0;
841
+ border: 0;
842
+ max-height: 14rem;
843
+ overflow-y: auto;
844
+ }
845
+
846
+ .host-field fieldset label {
847
+ display: flex;
848
+ align-items: center;
849
+ gap: var(--space-2);
850
+ min-height: var(--touch);
851
+ }
852
+
853
+ .host-field select[size] {
854
+ min-height: 9rem;
855
+ }
856
+
857
+ .host-list {
858
+ display: flex;
859
+ flex-direction: column;
860
+ gap: var(--space-2);
861
+ margin: 0;
862
+ padding: 0;
863
+ list-style: none;
864
+ }
865
+
866
+ .host-list > li {
867
+ display: flex;
868
+ align-items: center;
869
+ gap: var(--space-3);
870
+ padding: var(--space-3);
871
+ border: 1px solid var(--border);
872
+ border-radius: var(--radius-lg);
873
+ background: var(--surface);
874
+ }
875
+
876
+ .host-list-main {
877
+ display: flex;
878
+ flex: 1;
879
+ flex-direction: column;
880
+ min-width: 0;
881
+ }
882
+
883
+ .host-list-main > a,
884
+ .host-list-main > strong {
885
+ color: var(--text);
886
+ font-weight: var(--weight-medium);
887
+ text-decoration: none;
888
+ overflow-wrap: anywhere;
889
+ }
890
+
891
+ .host-list-main > span {
892
+ color: var(--muted);
893
+ font-size: var(--text-sm);
894
+ }
895
+
896
+ .attention-dot {
897
+ flex: none;
898
+ width: 0.6rem;
899
+ height: 0.6rem;
900
+ border-radius: var(--radius-full);
901
+ background: var(--danger);
902
+ }
903
+
904
+ .kind-filter {
905
+ width: 100%;
906
+ }
907
+
908
+ .kind-row-picture {
909
+ position: relative;
910
+ display: inline-flex;
911
+ }
912
+
913
+ .kind-row-picture .attention-dot {
914
+ position: absolute;
915
+ top: -1px;
916
+ right: -1px;
917
+ box-shadow: 0 0 0 2px var(--surface);
918
+ }
919
+ `,document.head.append(a)}nt();function p(a){if(!a)return;if("file"in a)return`api/files/${encodeURIComponent(a.file)}`;if("principal"in a)return`api/people/${encodeURIComponent(a.principal)}/picture`;return}function f(a){let t=a.trim().split(/\s+/).filter(Boolean),o=[...t[0]??"?"][0]??"?";if(/[\u3400-\u9fff]/.test(o))return o;let i=t.length>1?[...t.at(-1)??""][0]:void 0;return`${o}${i??""}`.toUpperCase()}function h(a){let t=0;for(let o of a)t=(t*31+(o.codePointAt(0)??0))%360;return`hsl(${t} 42% 40%)`}function it(a){let[t,o]=r(!1),i=a.size??32,n=t?void 0:p(a.picture),s=a.picture&&"initials"in a.picture?a.picture:void 0,l=s?.initials??f(a.name),c=s?.color??h(a.name);return e("span",{className:"hpic",style:{width:i,height:i,fontSize:Math.round(i*0.4),...n?{}:{background:c}},children:n?e("img",{src:n,alt:"",loading:"lazy",decoding:"async",onError:()=>o(!0)}):e("span",{"aria-hidden":"true",children:l})})}
920
+ export{nt,it};