@jonsoc/console-app 1.1.34

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 (217) hide show
  1. package/.opencode/agent/css.md +149 -0
  2. package/README.md +32 -0
  3. package/package.json +49 -0
  4. package/public/apple-touch-icon-v3.png +1 -0
  5. package/public/apple-touch-icon.png +1 -0
  6. package/public/email +1 -0
  7. package/public/favicon-96x96-v3.png +1 -0
  8. package/public/favicon-96x96.png +1 -0
  9. package/public/favicon-v3.ico +1 -0
  10. package/public/favicon-v3.svg +1 -0
  11. package/public/favicon.ico +1 -0
  12. package/public/favicon.svg +1 -0
  13. package/public/opencode-brand-assets.zip +0 -0
  14. package/public/robots.txt +6 -0
  15. package/public/site.webmanifest +1 -0
  16. package/public/social-share-black.png +1 -0
  17. package/public/social-share-zen.png +1 -0
  18. package/public/social-share.png +1 -0
  19. package/public/theme.json +182 -0
  20. package/public/web-app-manifest-192x192.png +1 -0
  21. package/public/web-app-manifest-512x512.png +1 -0
  22. package/script/generate-sitemap.ts +103 -0
  23. package/src/app.css +1 -0
  24. package/src/app.tsx +27 -0
  25. package/src/asset/black/hero.png +0 -0
  26. package/src/asset/brand/opencode-brand-assets.zip +0 -0
  27. package/src/asset/brand/opencode-logo-dark.png +0 -0
  28. package/src/asset/brand/opencode-logo-dark.svg +16 -0
  29. package/src/asset/brand/opencode-logo-light.png +0 -0
  30. package/src/asset/brand/opencode-logo-light.svg +16 -0
  31. package/src/asset/brand/opencode-wordmark-dark.png +0 -0
  32. package/src/asset/brand/opencode-wordmark-dark.svg +30 -0
  33. package/src/asset/brand/opencode-wordmark-light.png +0 -0
  34. package/src/asset/brand/opencode-wordmark-light.svg +30 -0
  35. package/src/asset/brand/opencode-wordmark-simple-dark.png +0 -0
  36. package/src/asset/brand/opencode-wordmark-simple-dark.svg +22 -0
  37. package/src/asset/brand/opencode-wordmark-simple-light.png +0 -0
  38. package/src/asset/brand/opencode-wordmark-simple-light.svg +22 -0
  39. package/src/asset/brand/preview-opencode-dark.png +0 -0
  40. package/src/asset/brand/preview-opencode-logo-dark.png +0 -0
  41. package/src/asset/brand/preview-opencode-logo-light.png +0 -0
  42. package/src/asset/brand/preview-opencode-wordmark-dark.png +0 -0
  43. package/src/asset/brand/preview-opencode-wordmark-light.png +0 -0
  44. package/src/asset/brand/preview-opencode-wordmark-simple-dark.png +0 -0
  45. package/src/asset/brand/preview-opencode-wordmark-simple-light.png +0 -0
  46. package/src/asset/lander/avatar-adam.png +0 -0
  47. package/src/asset/lander/avatar-david.png +0 -0
  48. package/src/asset/lander/avatar-dax.png +0 -0
  49. package/src/asset/lander/avatar-frank.png +0 -0
  50. package/src/asset/lander/avatar-jay.png +0 -0
  51. package/src/asset/lander/brand-assets-dark.svg +10 -0
  52. package/src/asset/lander/brand-assets-light.svg +10 -0
  53. package/src/asset/lander/brand.png +0 -0
  54. package/src/asset/lander/check.svg +3 -0
  55. package/src/asset/lander/copy.svg +3 -0
  56. package/src/asset/lander/desktop-app-icon.png +0 -0
  57. package/src/asset/lander/dock.png +0 -0
  58. package/src/asset/lander/logo-dark.svg +11 -0
  59. package/src/asset/lander/logo-light.svg +11 -0
  60. package/src/asset/lander/opencode-comparison-min.mp4 +0 -0
  61. package/src/asset/lander/opencode-comparison-poster.png +0 -0
  62. package/src/asset/lander/opencode-desktop-icon.png +0 -0
  63. package/src/asset/lander/opencode-logo-dark.svg +11 -0
  64. package/src/asset/lander/opencode-logo-light.svg +11 -0
  65. package/src/asset/lander/opencode-min.mp4 +0 -0
  66. package/src/asset/lander/opencode-poster.png +0 -0
  67. package/src/asset/lander/opencode-wordmark-dark.svg +25 -0
  68. package/src/asset/lander/opencode-wordmark-light.svg +25 -0
  69. package/src/asset/lander/screenshot-github.png +0 -0
  70. package/src/asset/lander/screenshot-splash.png +0 -0
  71. package/src/asset/lander/screenshot-vscode.png +0 -0
  72. package/src/asset/lander/screenshot.png +0 -0
  73. package/src/asset/lander/wordmark-dark.svg +3 -0
  74. package/src/asset/lander/wordmark-light.svg +3 -0
  75. package/src/asset/logo-ornate-dark.svg +18 -0
  76. package/src/asset/logo-ornate-light.svg +18 -0
  77. package/src/asset/logo.svg +18 -0
  78. package/src/asset/zen-ornate-dark.svg +8 -0
  79. package/src/asset/zen-ornate-light.svg +8 -0
  80. package/src/component/dropdown.css +80 -0
  81. package/src/component/dropdown.tsx +79 -0
  82. package/src/component/email-signup.tsx +48 -0
  83. package/src/component/faq.tsx +33 -0
  84. package/src/component/footer.tsx +38 -0
  85. package/src/component/header-context-menu.css +63 -0
  86. package/src/component/header.tsx +279 -0
  87. package/src/component/icon.tsx +257 -0
  88. package/src/component/legal.tsx +20 -0
  89. package/src/component/modal.css +66 -0
  90. package/src/component/modal.tsx +24 -0
  91. package/src/component/spotlight.css +15 -0
  92. package/src/component/spotlight.tsx +820 -0
  93. package/src/config.ts +29 -0
  94. package/src/context/auth.session.ts +0 -0
  95. package/src/context/auth.ts +116 -0
  96. package/src/context/auth.withActor.ts +7 -0
  97. package/src/entry-client.tsx +4 -0
  98. package/src/entry-server.tsx +30 -0
  99. package/src/global.d.ts +5 -0
  100. package/src/lib/github.ts +38 -0
  101. package/src/middleware.ts +5 -0
  102. package/src/routes/[...404].css +130 -0
  103. package/src/routes/[...404].tsx +38 -0
  104. package/src/routes/api/enterprise.ts +47 -0
  105. package/src/routes/auth/[...callback].ts +41 -0
  106. package/src/routes/auth/authorize.ts +10 -0
  107. package/src/routes/auth/index.ts +12 -0
  108. package/src/routes/auth/logout.ts +17 -0
  109. package/src/routes/auth/status.ts +7 -0
  110. package/src/routes/bench/[id].tsx +365 -0
  111. package/src/routes/bench/index.tsx +86 -0
  112. package/src/routes/bench/submission.ts +29 -0
  113. package/src/routes/black/common.tsx +62 -0
  114. package/src/routes/black/index.tsx +108 -0
  115. package/src/routes/black/subscribe/[plan].tsx +449 -0
  116. package/src/routes/black/workspace.css +214 -0
  117. package/src/routes/black/workspace.tsx +229 -0
  118. package/src/routes/black.css +828 -0
  119. package/src/routes/black.tsx +285 -0
  120. package/src/routes/brand/index.css +555 -0
  121. package/src/routes/brand/index.tsx +252 -0
  122. package/src/routes/changelog/index.css +477 -0
  123. package/src/routes/changelog/index.tsx +147 -0
  124. package/src/routes/debug/index.ts +13 -0
  125. package/src/routes/desktop-feedback.ts +5 -0
  126. package/src/routes/discord.ts +5 -0
  127. package/src/routes/docs/[...path].ts +20 -0
  128. package/src/routes/docs/index.ts +20 -0
  129. package/src/routes/download/[platform].ts +38 -0
  130. package/src/routes/download/index.css +750 -0
  131. package/src/routes/download/index.tsx +482 -0
  132. package/src/routes/download/types.ts +4 -0
  133. package/src/routes/enterprise/index.css +578 -0
  134. package/src/routes/enterprise/index.tsx +251 -0
  135. package/src/routes/index.css +1251 -0
  136. package/src/routes/index.tsx +840 -0
  137. package/src/routes/legal/privacy-policy/index.css +343 -0
  138. package/src/routes/legal/privacy-policy/index.tsx +1512 -0
  139. package/src/routes/legal/terms-of-service/index.css +254 -0
  140. package/src/routes/legal/terms-of-service/index.tsx +512 -0
  141. package/src/routes/openapi.json.ts +7 -0
  142. package/src/routes/s/[id].ts +20 -0
  143. package/src/routes/stripe/webhook.ts +532 -0
  144. package/src/routes/t/[...path].tsx +20 -0
  145. package/src/routes/temp.tsx +172 -0
  146. package/src/routes/user-menu.css +18 -0
  147. package/src/routes/user-menu.tsx +32 -0
  148. package/src/routes/workspace/[id]/billing/billing-section.module.css +185 -0
  149. package/src/routes/workspace/[id]/billing/billing-section.tsx +240 -0
  150. package/src/routes/workspace/[id]/billing/black-section.module.css +142 -0
  151. package/src/routes/workspace/[id]/billing/black-section.tsx +269 -0
  152. package/src/routes/workspace/[id]/billing/black-waitlist-section.module.css +23 -0
  153. package/src/routes/workspace/[id]/billing/index.tsx +32 -0
  154. package/src/routes/workspace/[id]/billing/monthly-limit-section.module.css +96 -0
  155. package/src/routes/workspace/[id]/billing/monthly-limit-section.tsx +133 -0
  156. package/src/routes/workspace/[id]/billing/payment-section.module.css +93 -0
  157. package/src/routes/workspace/[id]/billing/payment-section.tsx +122 -0
  158. package/src/routes/workspace/[id]/billing/reload-section.module.css +261 -0
  159. package/src/routes/workspace/[id]/billing/reload-section.tsx +213 -0
  160. package/src/routes/workspace/[id]/graph-section.module.css +145 -0
  161. package/src/routes/workspace/[id]/graph-section.tsx +475 -0
  162. package/src/routes/workspace/[id]/index.tsx +81 -0
  163. package/src/routes/workspace/[id]/keys/index.tsx +11 -0
  164. package/src/routes/workspace/[id]/keys/key-section.module.css +197 -0
  165. package/src/routes/workspace/[id]/keys/key-section.tsx +176 -0
  166. package/src/routes/workspace/[id]/members/index.tsx +11 -0
  167. package/src/routes/workspace/[id]/members/member-section.module.css +249 -0
  168. package/src/routes/workspace/[id]/members/member-section.tsx +343 -0
  169. package/src/routes/workspace/[id]/members/role-dropdown.css +72 -0
  170. package/src/routes/workspace/[id]/members/role-dropdown.tsx +43 -0
  171. package/src/routes/workspace/[id]/model-section.module.css +173 -0
  172. package/src/routes/workspace/[id]/model-section.tsx +174 -0
  173. package/src/routes/workspace/[id]/new-user-section.module.css +143 -0
  174. package/src/routes/workspace/[id]/new-user-section.tsx +104 -0
  175. package/src/routes/workspace/[id]/provider-section.module.css +138 -0
  176. package/src/routes/workspace/[id]/provider-section.tsx +188 -0
  177. package/src/routes/workspace/[id]/settings/index.tsx +11 -0
  178. package/src/routes/workspace/[id]/settings/settings-section.module.css +94 -0
  179. package/src/routes/workspace/[id]/settings/settings-section.tsx +122 -0
  180. package/src/routes/workspace/[id]/usage-section.module.css +185 -0
  181. package/src/routes/workspace/[id]/usage-section.tsx +200 -0
  182. package/src/routes/workspace/[id].css +308 -0
  183. package/src/routes/workspace/[id].tsx +62 -0
  184. package/src/routes/workspace/common.tsx +120 -0
  185. package/src/routes/workspace-picker.css +74 -0
  186. package/src/routes/workspace-picker.tsx +122 -0
  187. package/src/routes/workspace.css +107 -0
  188. package/src/routes/workspace.tsx +38 -0
  189. package/src/routes/zen/index.css +866 -0
  190. package/src/routes/zen/index.tsx +343 -0
  191. package/src/routes/zen/util/dataDumper.ts +44 -0
  192. package/src/routes/zen/util/error.ts +13 -0
  193. package/src/routes/zen/util/handler.ts +784 -0
  194. package/src/routes/zen/util/logger.ts +12 -0
  195. package/src/routes/zen/util/provider/anthropic.ts +752 -0
  196. package/src/routes/zen/util/provider/google.ts +75 -0
  197. package/src/routes/zen/util/provider/openai-compatible.ts +546 -0
  198. package/src/routes/zen/util/provider/openai.ts +630 -0
  199. package/src/routes/zen/util/provider/provider.ts +210 -0
  200. package/src/routes/zen/util/rateLimiter.ts +41 -0
  201. package/src/routes/zen/util/stickyProviderTracker.ts +16 -0
  202. package/src/routes/zen/util/trialLimiter.ts +49 -0
  203. package/src/routes/zen/v1/chat/completions.ts +11 -0
  204. package/src/routes/zen/v1/messages.ts +11 -0
  205. package/src/routes/zen/v1/models/[model].ts +13 -0
  206. package/src/routes/zen/v1/models.ts +60 -0
  207. package/src/routes/zen/v1/responses.ts +11 -0
  208. package/src/style/base.css +21 -0
  209. package/src/style/component/button.css +102 -0
  210. package/src/style/index.css +8 -0
  211. package/src/style/reset.css +76 -0
  212. package/src/style/token/color.css +91 -0
  213. package/src/style/token/font.css +21 -0
  214. package/src/style/token/space.css +46 -0
  215. package/sst-env.d.ts +9 -0
  216. package/tsconfig.json +21 -0
  217. package/vite.config.ts +25 -0
@@ -0,0 +1,343 @@
1
+ [data-component="privacy-policy"] {
2
+ max-width: 800px;
3
+ margin: 0 auto;
4
+ line-height: 1.7;
5
+ }
6
+
7
+ [data-component="privacy-policy"] h1 {
8
+ font-size: 2rem;
9
+ font-weight: 700;
10
+ color: var(--color-text-strong);
11
+ margin-bottom: 0.5rem;
12
+ margin-top: 0;
13
+ }
14
+
15
+ [data-component="privacy-policy"] .effective-date {
16
+ font-size: 0.95rem;
17
+ color: var(--color-text-weak);
18
+ margin-bottom: 2rem;
19
+ }
20
+
21
+ [data-component="privacy-policy"] h2 {
22
+ font-size: 1.5rem;
23
+ font-weight: 600;
24
+ color: var(--color-text-strong);
25
+ margin-top: 3rem;
26
+ margin-bottom: 1rem;
27
+ padding-top: 1rem;
28
+ border-top: 1px solid var(--color-border-weak);
29
+ }
30
+
31
+ [data-component="privacy-policy"] h2:first-of-type {
32
+ margin-top: 2rem;
33
+ }
34
+
35
+ [data-component="privacy-policy"] h3 {
36
+ font-size: 1.25rem;
37
+ font-weight: 600;
38
+ color: var(--color-text-strong);
39
+ margin-top: 2rem;
40
+ margin-bottom: 1rem;
41
+ }
42
+
43
+ [data-component="privacy-policy"] h4 {
44
+ font-size: 1.1rem;
45
+ font-weight: 600;
46
+ color: var(--color-text-strong);
47
+ margin-top: 1.5rem;
48
+ margin-bottom: 0.75rem;
49
+ }
50
+
51
+ [data-component="privacy-policy"] p {
52
+ margin-bottom: 1rem;
53
+ color: var(--color-text);
54
+ }
55
+
56
+ [data-component="privacy-policy"] ul,
57
+ [data-component="privacy-policy"] ol {
58
+ margin-bottom: 1rem;
59
+ padding-left: 1.5rem;
60
+ color: var(--color-text);
61
+ }
62
+
63
+ [data-component="privacy-policy"] li {
64
+ margin-bottom: 0.5rem;
65
+ line-height: 1.7;
66
+ }
67
+
68
+ [data-component="privacy-policy"] ul ul,
69
+ [data-component="privacy-policy"] ul ol,
70
+ [data-component="privacy-policy"] ol ul,
71
+ [data-component="privacy-policy"] ol ol {
72
+ margin-top: 0.5rem;
73
+ margin-bottom: 0.5rem;
74
+ }
75
+
76
+ [data-component="privacy-policy"] a {
77
+ color: var(--color-text-strong);
78
+ text-decoration: underline;
79
+ text-underline-offset: 2px;
80
+ text-decoration-thickness: 1px;
81
+ word-break: break-word;
82
+ }
83
+
84
+ [data-component="privacy-policy"] a:hover {
85
+ text-decoration-thickness: 2px;
86
+ }
87
+
88
+ [data-component="privacy-policy"] strong {
89
+ font-weight: 600;
90
+ color: var(--color-text-strong);
91
+ }
92
+
93
+ [data-component="privacy-policy"] .table-wrapper {
94
+ overflow-x: auto;
95
+ margin: 1.5rem 0;
96
+ }
97
+
98
+ [data-component="privacy-policy"] table {
99
+ width: 100%;
100
+ border-collapse: collapse;
101
+ border: 1px solid var(--color-border);
102
+ }
103
+
104
+ [data-component="privacy-policy"] th,
105
+ [data-component="privacy-policy"] td {
106
+ padding: 0.75rem 1rem;
107
+ text-align: left;
108
+ border: 1px solid var(--color-border);
109
+ vertical-align: top;
110
+ }
111
+
112
+ [data-component="privacy-policy"] th {
113
+ background: var(--color-background-weak);
114
+ font-weight: 600;
115
+ color: var(--color-text-strong);
116
+ }
117
+
118
+ [data-component="privacy-policy"] td {
119
+ color: var(--color-text);
120
+ }
121
+
122
+ [data-component="privacy-policy"] td ul {
123
+ margin: 0;
124
+ padding-left: 1.25rem;
125
+ }
126
+
127
+ [data-component="privacy-policy"] td li {
128
+ margin-bottom: 0.25rem;
129
+ }
130
+
131
+ /* Mobile responsiveness */
132
+ @media (max-width: 60rem) {
133
+ [data-component="privacy-policy"] {
134
+ padding: 0;
135
+ }
136
+
137
+ [data-component="privacy-policy"] h1 {
138
+ font-size: 1.75rem;
139
+ }
140
+
141
+ [data-component="privacy-policy"] h2 {
142
+ font-size: 1.35rem;
143
+ margin-top: 2.5rem;
144
+ }
145
+
146
+ [data-component="privacy-policy"] h3 {
147
+ font-size: 1.15rem;
148
+ }
149
+
150
+ [data-component="privacy-policy"] h4 {
151
+ font-size: 1rem;
152
+ }
153
+
154
+ [data-component="privacy-policy"] table {
155
+ font-size: 0.9rem;
156
+ }
157
+
158
+ [data-component="privacy-policy"] th,
159
+ [data-component="privacy-policy"] td {
160
+ padding: 0.5rem 0.75rem;
161
+ }
162
+ }
163
+
164
+ html {
165
+ scroll-behavior: smooth;
166
+ }
167
+
168
+ [data-component="privacy-policy"] [id] {
169
+ scroll-margin-top: 100px;
170
+ }
171
+
172
+ @media print {
173
+ @page {
174
+ margin: 2cm;
175
+ size: letter;
176
+ }
177
+
178
+ [data-component="top"],
179
+ [data-component="footer"],
180
+ [data-component="legal"] {
181
+ display: none !important;
182
+ }
183
+
184
+ [data-page="legal"] {
185
+ background: white !important;
186
+ padding: 0 !important;
187
+ }
188
+
189
+ [data-component="container"] {
190
+ max-width: none !important;
191
+ border: none !important;
192
+ margin: 0 !important;
193
+ }
194
+
195
+ [data-component="content"],
196
+ [data-component="brand-content"] {
197
+ padding: 0 !important;
198
+ margin: 0 !important;
199
+ }
200
+
201
+ [data-component="privacy-policy"] {
202
+ max-width: none !important;
203
+ margin: 0 !important;
204
+ padding: 0 !important;
205
+ }
206
+
207
+ [data-component="privacy-policy"] * {
208
+ color: black !important;
209
+ background: transparent !important;
210
+ }
211
+
212
+ [data-component="privacy-policy"] h1 {
213
+ font-size: 24pt;
214
+ margin-top: 0;
215
+ margin-bottom: 12pt;
216
+ page-break-after: avoid;
217
+ }
218
+
219
+ [data-component="privacy-policy"] h2 {
220
+ font-size: 18pt;
221
+ border-top: 2pt solid black !important;
222
+ padding-top: 12pt;
223
+ margin-top: 24pt;
224
+ margin-bottom: 8pt;
225
+ page-break-after: avoid;
226
+ page-break-before: auto;
227
+ }
228
+
229
+ [data-component="privacy-policy"] h2:first-of-type {
230
+ margin-top: 16pt;
231
+ }
232
+
233
+ [data-component="privacy-policy"] h3 {
234
+ font-size: 14pt;
235
+ margin-top: 16pt;
236
+ margin-bottom: 8pt;
237
+ page-break-after: avoid;
238
+ }
239
+
240
+ [data-component="privacy-policy"] h4 {
241
+ font-size: 12pt;
242
+ margin-top: 12pt;
243
+ margin-bottom: 6pt;
244
+ page-break-after: avoid;
245
+ }
246
+
247
+ [data-component="privacy-policy"] p {
248
+ font-size: 11pt;
249
+ line-height: 1.5;
250
+ margin-bottom: 8pt;
251
+ orphans: 3;
252
+ widows: 3;
253
+ }
254
+
255
+ [data-component="privacy-policy"] .effective-date {
256
+ font-size: 10pt;
257
+ margin-bottom: 16pt;
258
+ }
259
+
260
+ [data-component="privacy-policy"] ul,
261
+ [data-component="privacy-policy"] ol {
262
+ margin-bottom: 8pt;
263
+ page-break-inside: auto;
264
+ }
265
+
266
+ [data-component="privacy-policy"] li {
267
+ font-size: 11pt;
268
+ line-height: 1.5;
269
+ margin-bottom: 4pt;
270
+ page-break-inside: avoid;
271
+ }
272
+
273
+ [data-component="privacy-policy"] a {
274
+ color: black !important;
275
+ text-decoration: underline;
276
+ }
277
+
278
+ [data-component="privacy-policy"] .table-wrapper {
279
+ overflow: visible !important;
280
+ margin: 12pt 0;
281
+ }
282
+
283
+ [data-component="privacy-policy"] table {
284
+ border: 2pt solid black !important;
285
+ page-break-inside: avoid;
286
+ width: 100% !important;
287
+ font-size: 10pt;
288
+ }
289
+
290
+ [data-component="privacy-policy"] th,
291
+ [data-component="privacy-policy"] td {
292
+ border: 1pt solid black !important;
293
+ padding: 6pt 8pt !important;
294
+ background: white !important;
295
+ }
296
+
297
+ [data-component="privacy-policy"] th {
298
+ background: #f0f0f0 !important;
299
+ font-weight: bold;
300
+ page-break-after: avoid;
301
+ }
302
+
303
+ [data-component="privacy-policy"] tr {
304
+ page-break-inside: avoid;
305
+ }
306
+
307
+ [data-component="privacy-policy"] td ul {
308
+ margin: 2pt 0;
309
+ padding-left: 12pt;
310
+ }
311
+
312
+ [data-component="privacy-policy"] td li {
313
+ margin-bottom: 2pt;
314
+ font-size: 9pt;
315
+ }
316
+
317
+ [data-component="privacy-policy"] strong {
318
+ font-weight: bold;
319
+ color: black !important;
320
+ }
321
+
322
+ [data-component="privacy-policy"] h1,
323
+ [data-component="privacy-policy"] h2,
324
+ [data-component="privacy-policy"] h3,
325
+ [data-component="privacy-policy"] h4 {
326
+ page-break-inside: avoid;
327
+ page-break-after: avoid;
328
+ }
329
+
330
+ [data-component="privacy-policy"] h2 + p,
331
+ [data-component="privacy-policy"] h3 + p,
332
+ [data-component="privacy-policy"] h4 + p,
333
+ [data-component="privacy-policy"] h2 + ul,
334
+ [data-component="privacy-policy"] h3 + ul,
335
+ [data-component="privacy-policy"] h4 + ul {
336
+ page-break-before: avoid;
337
+ }
338
+
339
+ [data-component="privacy-policy"] table,
340
+ [data-component="privacy-policy"] .table-wrapper {
341
+ page-break-inside: avoid;
342
+ }
343
+ }